統計解析の初歩(t検定)
t検定について
第12週で学習したように,母集団全てを調査して得られる標準偏差のことを母標準偏差というが,この値が未知の場合(全てを調査できない場合),下の図のように,母集団の一部である標本を抜き取って母集団の特徴を推測することになる.
標本の平均値が求められたとして,この値が予め与えられた値に等しいかどうかを検定する便利な方法を学習する.この検定は「t検定」と呼ばれ,母集団が正規分布に従っているという仮定の基,標本の大きさが小さい場合に用いられる手法である.理解が難しいので,t検定の適用事例について,地盤工学実験を用いて考えてみる.
事例:バットに乾燥状態の砂を300gとり,水15ccを加えてスプーンで攪拌し,含水比を5%に調整したとする.この試料の含水比を測定するために,10個の含水比皿を用意して,無作為に数グラムづつ採取し,110℃の乾燥炉で一晩置いた.含水比を計算した結果は次の通りである.
含水比皿
1
2
3
4
5
6
7
8
9
10
含水比(%)
4.9
5.1
5.0
5.0
4.8
4.7
4.6
5.1
5.1
4.8
この土試料は正しく含水比調整されていると言えるか?
t検定の処理の方法
標本 n 個の観測データ x
1 … x
n の平均を x(バー)とする.これが母集団の平均値 μ
0 に等しいかを検定する場合,検定統計量として
t
0 を用いる.ここで,V は標本の分散を表し,標本偏差の2乗の合計を標本総度数 nから1(自由度という)を引いた値で除してある(第12週で行った分散とは異なる).
t
0 の値は,自由度 n − 1 のt分布に従い,
の場合には危険率αで x(バー)はμ
0 に等しいとは言えない.
前述の含水比の例について考えてみる.含水比調整が正しく行われているとすると,翌日測定した含水比が5%ぴったりを示さなくても,極端にプラスやマイナスに偏っていなければ正しく調整できていると判断できる.つまり,この標本データが砂試料全体の平均含水比 μ
0 = 5%からのデータとして見なせるかどうかを検定すれば良い.
早速,前述の含水比の例について,危険率 α=0.05としてt検定を行ってみる.計算の手順は次の通りである.
まずは,このデータ (xlsxファイル,14kb)をダウンロードして,エクセルで開いてみよう.標本データ,フォーマットの状態を確認してから,〜.xlsm形式 で保存することを忘れずに行うこと.これ以降は,〜.xlsm形式 のファイルを使用してコードを記述することになる.
おさらいで行ったように,VisualBasicのエディター画面を開いて,標準モジュール を追加する.
標準モジュール内で Sub ルーチン名() を入力し,エンターキーを押す.そうすると自動的に End sub も表示される.ちなみに,ルーチン名は自由にして良いが,エラーが出る場合は名前を他のものにして試すと良い.これ以降は,Sub ルーチン名() とEnd sub の間にコーディングすること.
続いて,図のような位置に「t検定」ボタンを作成して,ボタン上で右クリックして,プログラム名を登録する.
本プログラムで使用する変数 を次のようにコーディングする.自分で変数を自由に指定したい場合,後になって不要な場合は,削除・変更しても良い.
Dim i As Integer: i = 0 (これはカウンタ用変数,整数型)
Dim ave, sum As Double: ave = 0.00: sum = 0.00 (これは平均値と合計値用の変数,実数型,0.00と入力→0#と表示されるが同じ意味)
標本の最小値,最大値,平均値(相加平均)を計算するコーディングをする.計算結果はF4〜F6のセルに出力 する.計算には,次に示したワークシート関数を利用すると良い.
最小値の計算: F4セルまたは変数 = Application.WorksheetFunction.Min(Range("B4:B13"))
最大値の計算: F5セルまたは変数 = Application.WorksheetFunction.Max(Range("B4:B13"))
平均値の計算: F6セルまたは変数 = Application.WorksheetFunction.Average(Range("B4:B13"))
自由度 n - 1 を計算させるコードを記述して,F9のセルに計算結果を出力する.
一度,[t検定]ボタンを押して動作を確認すること.
次の9,10番を計算するために,繰返し文 「For i = 1 To Cells(3, 6).Value Step 1」「next i」を用意する.9,10番はfor nextの間にコーディングすること.
標本の偏差を個々に計算して,C列に出力させるコードを記述する.「個々の偏差 = B列個々の含水比−含水比の平均値のセル」 で計算すること.
続いて標本の分散を計算するコードを記述して,F7のセルに出力し,「0.032・・・ 」になっているかを確認してみる.分散は,C列個々の偏差の2乗の合計値(STEP3で登場したカウントアップのアルゴリズムを使用,アルゴリズム中の+1を+個々の偏差の2乗の値に変える)をfor 〜 next i の間で計算させて,next i の次の行で合計値を自由度で除して計算する.
統計検定量 t0 の「絶対値」を計算するコードを記述して,F10のセルに出力し,「1.588・・・ 」になっているかを確認してみる.絶対値を求める場合は,Abs(変数または数値)関数を使用すること.「F10セル = Abs((Cells(6, 6).Value - 5) / Sqr(Cells(7, 6).Value ・・・・)」とすると良い.
t分布はt分布表から読み取る例が多いが,ここでは,Excelに備わっているワークシート関数を利用する.呼び出すワークシート関数は,studentのt分布の両側逆関数 T_INV_2T(αの値,自由度)である.「F11セル = Application.WorksheetFunction.T_Inv_2T(Cells(8, 6).Value, Cells(9, 6).Value)」と記述すること.
計算結果をF11のセルに出力し,「2.262・・・ 」になっているかを確認してみる.
続いて,プログラム中で計算結果とt0 の値と比較し,砂の含水比が正しく調整されているかどうかの検定結果を,F12のセルに出力する.条件判断 には,If then else endif文を使用すること.文字列を変数やセルに挿入する場合は,文字列をダブルクオーテーションで囲むこと(ex. Dim a as string :a="テスト").
トップページに戻る