情報処理概論Ⅰ 6・7 回目 「簡単な統計処理を行う」 2011 年 5 月 26 日および 6 月 2 日 溝端 1.今回と次回の内容 前回と同様,3 列目の CTD 塩分値を使って,簡単な統計処理を行ってみる. 5 月 26 日の目標は平均値,分散,標準偏差(シグマ)の算出. 6 月 2 日の目標はある水深の範囲,かつ平均値±シグマ以内のデータの抽出. ※1 回目~7 回目のプログラムは下記アドレスに添付にて送ること. そのときの注意事項は, 件名:「2011 情報処理概論 学籍番号 名前」 とすること. メールアドレス:[email protected] 2.平均値(5 月 26 日) 前回使った「DO ループ」を使用する.平均値は言うまでもなく, 「合計(総和)/データ数」 で計算され,前回はデータの合計を行っているのでかなり簡単なはず. 3.分散・標準偏差 (5 月 26 日) 標準偏差は分散の平方根なので,分散の計算がわかっていればよい.分散は「平均か らどれだけ離れているか」というデータの散らばり具合の指標である.まず残差平方 和を求め,さらに分散を計算する.残差平方和とはその名の通り,(データ-平均値) の 2 乗の総和である.分散を求めた後はその平方根を求めるだけで,標準偏差が求ま る. 残差平方和 分散 塩分値 塩分平均値 残差平方和 標準偏差 ---(1) ---(2) データの個数 ---(3) 分散 数式にするとかなりあっさりする.(1)式を DO ループで制御してやればよい. (2)式の「データの個数」であるが,データの総数である「n」を代入する場合と「n-1」 を代入する場合では意味が異なる.前者では得られた分散を「標本分散」 ,後者では得 られた分散を「不偏分散または母分散」という. 不偏分散により(3)式から得られるものは,標準誤差と呼ばれる.詳しくは統計の教科 書に譲る. 5 月 26 日のお題は平均値および(1)~(3)を求めるプログラムを書くこと. 1 情報処理概論Ⅰ 6・7 回目 「簡単な統計処理を行う」 2011 年 5 月 26 日および 6 月 2 日 溝端 (5 月 26 日分のヒント) 1)残差平方和の計算 平均値はすでに計算され,変数 heikin に代入されているとする. 新たな変数を宣言する.残差平方和なのに real(8) bunsan bunsan としているのは,残差平方和を後で使う do k=1,ic のではなく,分散が保存できていればいいから. bunsan=(csal(k) – heikin)**2 enddo **2で二乗を表す. 4.標準偏差によるデータの品質管理(6 月 2 日) 標準偏差はデータのばらつきを表す指標であり,データの品質管理を行う際に用いる. 25 20 頻度 15 500-1000m水深における 塩分データの頻度分布 確率密度分布はある程度 正規分布に従う. 例えば 平均±1シグマ※の 範囲のデータだけを 抽出するなど 頻度が少ないデータは 確率的に怪しいとして データから排除する 場合がある. ※シグマとは前に 求めた標準偏差のこと 10 5 0 図1:500~1000m 水深の塩分データのみを抽出し,頻度分布を描いたもの.点線はデー タの確率密度分布.ある程度は正規分布している.シグマ(σ)とは標準偏差のこと. 2 情報処理概論Ⅰ 6・7 回目 「簡単な統計処理を行う」 2011 年 5 月 26 日および 6 月 2 日 溝端 図 2:正規分布曲線の例.95%は 平均値±2σに入る.例えば,平 均値から 2σ以上離れているもの を異常値として扱い,排除するな どして,データの品質管理を行 う.ちなみに2σ,3σというの は自分がデータのばらつきをど こまで許容するかで決定する. 参照:http://homepage1.nifty.com/QCC/sqc2/gauss3.gif 6 月 2 日のお題は ① まず水深 500~1000m の CTD 塩分値だけ抽出する. ② ①で抽出した塩分値から平均値・標準偏差(シグマ,もしくはσ)を求める. ③ ①で抽出したデータから,平均±2σのデータのみの抽出を行う. の 3 点. (6 月 2 日分のヒント) 1) 水深 500~1000m の CTD 塩分値を抽出したいので,まずは抽出した CTD 塩分値 のための変数を宣言する. real(8) csal2(345) ← 本当は 345 個入る変数は必要ないが,いくつあるのかわから ないのでとりあえず最大値にしておく. 2) DO ループと IF 文で,指定した水深のデータを抽出する. ic2=1 do k=1,ic if(dpt(k).○○.500.and.dpt(k).□□.1000)then csal2(ic2)=csal(k) 変数 dpt が 500 以上で 1000 以下 という条件文を書く ic2=ic2+1 endif enddo a) ○○,□□の部分は前回の資料から調べてみること. b) 変数 ic2 は csal2 に新しく書き込む毎に一つずつ増えていく.概念図は 次ページにある.コンセプトは 2 回目の時に説明した, 「もうひとつの ファイルの読み方」と同じ. 3 情報処理概論Ⅰ 6・7 回目 「簡単な統計処理を行う」 2011 年 5 月 26 日および 6 月 2 日 溝端 c) 「変数宣言していないのになぜ ic2 が使えるのか?」という疑問は抱か な い だ ろう か ?こ れは暗 黙 の 型宣 言 とい うもの で あ る. 頭 文字 が i,j,k,l,m,n の場合は,整数型の変数だというルールがある. 3) 抽出した CTD 塩分値である変数 csal2 の平均値・標準偏差(σ)を求める. 前回やった残差平方和~標準偏差を求める方法を応用すればよい. 4) また DO ループと IF 文を使って,平均値±2σの範囲内のデータを抽出する. 4
© Copyright 2024 Paperzz