初めに
本記事は検定初学者向けに、”検定を実際にやって結果をどう見るか“について説明します。
SASでは、簡単なコードで様々な情報(集計結果)が出力されますが、今回は、”帰無仮説の棄却するか否かの判断“にポイントを絞って説明します。
「1群の母平均の検定」とは
t検定の一種であり、簡単に言うと、「データの母平均が、特定の値 m であるか?」を調べる検定です。
m は変数でなく、当事者が具体的な値を決めた上で検定を行います。
なので、仮説は下記の通りです。
帰無仮説 H_0 : μ_0 = m \\\\ 対立仮説 H_1 : μ_0 ≠ m \\\\ ※ μ_0 : (真の)母平均
※t検定については、以下の記事を参照ください。
[SAS]データ作成 / 検定実施
それではデータ作成も含め、実際に検定のコードを書いてみましょう。
実施概要
下記フローでコードを書きます。
- テストデータ作成 (標準正規分布に従う、1万件のデータ)
- 検定実施 (m = 10)
- 検定実施 (m = 0)
※上記のmは、帰無仮説で指定する想定平均値です。
検定結果の想定
上記フローの 2. と 3. (検定実施) は、結果について想定ができます。
まず前提ですが、フローの 1. より、データは標準正規分布、つまり 母平均 = 0 のデータを作成します。
なので、フローの 2. では、”母平均=10と仮定して集計した結果、(所謂)稀なデータになり、帰無仮説は棄却される”という想定ができます。
それに対して、フローの 3. は、作成データの母平均と同じ値で帰無仮説を立てるので、”集計結果は稀なデータにならず、帰無仮説が正しくないとは言えないので、帰無仮説は棄却されない”という想定ができます。
検定結果を見るための予備知識
検定結果を読み取るために下記用語を説明します。
1.と2.は必須であり、3.は参考程度の認識で大丈夫です。
- 「t値」:(t分布に従う形に)データを集計した時の値。”これが、t分布の中で稀な位置付けになってるか”を確認する。
- 「P値」:(今回の検定の場合は、)「t分布において、”t値の絶対値以上になる確率値”です。検定によって詳細は変わりますが、意味合いとしては”t値はどれ程の発生確率なのか”を示すものです。
- 「95%信頼限界」:(t分布に従う)データ集計値の確率が”平均を中心とした95%内”である時の母平均の範囲。「信頼区間」とも呼ばれる。
SASコード
上記を踏まえて、実際にコードを書いてみましょう。
/* 1. 標準正規分布のデータ作成(1,000レコード) */
data data(drop=i);
do i=1 to 1000;
x = rand('NORMAL');
output;
end;
run;
/* 2. 1群の母平均の検定 (帰無仮説:母平均=10) ※想定:帰無仮説は棄却される */
proc ttest data=data h0=10;
var x;
run;
/* 3. 1群の母平均の検定 (帰無仮説:母平均=0) ※想定:帰無仮説は棄却されない */
proc ttest data=data h0=0;
var x;
run;
[実行結果] 作成データ
下記のようなデータが作成できます。
標準正規分布に従うようにデータを作成したため、大体のデータが0に近くなっています。
x |
---|
-1.30252 |
1.71944 |
0.57042 |
… |
0.82015 |
[実行結果] 検定結果(m=10)
検定の結果として、数表と図が表示されます。
“帰無仮説の棄却するか否かの判断“においては数表を確認します。
数表は以下のようになりました。
確認すべきポイントは、一番下の表の「t値」と「Pr > |t|」です。
「t値」は上記で説明した通りであり、「Pr > |t|」は上記で説明した「P値」を指します。
なので、今回、”P値は0.01%未満“なので、”帰無仮説を仮定すると取得データは極めて稀な値となる“ため、帰無仮説を棄却します。
※棄却するか否かについて、「P値が何%未満だったら棄却するか?」を基準として設けます。その基準の%値を「有意水準」と言います。一般に、有意水準は5%や10%にします。
今回の結果は、5%よりも遥かに小さいので、有意水準の話を飛ばして棄却の旨説明しました。
[実行結果] 検定結果(m=0)
結果は下図の通りでした。
今回も同様に一番下の表の「t値」と「Pr > |t|」を見ます。
今回のP値(「Pr > |t|」)は 55.10% です。
これは、(一般に設定される)有意水準5%、10%よりも大きいです。
つまり、”帰無仮説を仮定すると取得データはそんなに稀な値ではない“ため、帰無仮説は棄却されません。
最後に
今回は標準正規分布に従うデータを用いて、”理論的に期待する検定結果が得られるか?”を検証する形で記事にまとめました。
SASでは様々な検定が、簡単なコードで実施できるので、色々調べてみてください。