Octave で 2 群の比率の差の検定
2 群それぞれで,成功回数と試行回数を与え,成功比率に差があるかどうかを検定する。
usage:
[pval, z] = prop_test_2 (x1, n1, x2, n2, alt)
x1, n1 は第 1 群の成功回数と試行回数
x2, n2 は第 2 群の成功回数と試行回数
alt は両側検定(デフォルト)のとき "!="
「第 1 群の成功母比率が第 2 群の成功母比率より低いという片側検定のときは "<"
「第 1 群の成功母比率が第 2 群の成功母比率より高いという片側検定のときは ">"
戻り値を指定しない場合は p 値のみを表示する
戻り値を指定した場合は,後で変数を使用すること(表示するなど)ができる
pkg load statistics % statistics が必要
format long % 表示精度を高くする(任意)
戻り値を変数に代入しない場合には $p$ 値のみが表示される。
このプログラムでは,連続性の補正をしない検定結果が示される。連続性の補正をするオプションはない。
prop_test_2(3, 12, 5, 10);
pval: 0.224839
戻り値を変数に代入すれば結果を自由に表示できる。
[pval, z] = prop_test_2(3, 12, 5, 10);
printf("z = %.5g, p value = %.5g\n", z, pval)
z = -1.2138, p value = 0.22484
両側検定は,成功回数,失敗回数の行列を chisquare_test_independence()
に与えることで,同じ結果になる($|\text{z}| \equiv \sqrt{\text{chisq}}$,$p$ 値は同じ)。
[pval, chisq, df] = chisquare_test_independence([3 9; 5 5]);
printf("chisq = %.5g, df = %d, p value = %.5g\n", chisq, df, pval)
printf("z = %.5g\n", sqrt(chisq))
chisq = 1.4732, df = 1, p value = 0.22484
z = 1.2138
[pval, z] = prop_test_2(3, 12, 5, 10, "<");
printf("z = %.5g, p value = %.5g\n", z, pval)
z = -1.2138, p value = 0.11242
[pval, z] = prop_test_2(3, 12, 5, 10, ">");
printf("z = %.5g, p value = %.5g\n", z, pval)
z = -1.2138, p value = 0.88758