Octave で符号検定
対応のある 2 標本の代表値の差の検定である。
usage:
[pval, b, n] = sign_test (x, y, alt)
x, y はデータベクトル
alt はデフォルトで両側検定 "!=",片側検定は,帰無仮説が「y > x の確率が 0.5 より大きい」なら ">", その逆なら "<" で指定
戻り値を指定しない場合は p 値のみを表示する
pkg load statistics % statistics が必要
format long % 表示精度を高くする(任意)
x = [49.6; 52.5; 48.3; 50.6; 56.7; 32.8; 51.6; 46.1; 54.6; 52.0; 39.3; 49.5; 45.1; 37.1; 63.9;
48.3; 37.4; 33.4; 37.8; 51.2; 63.0; 74.3; 54.4; 60.1; 55.6; 61.2];
y = [48.7; 36.8; 51.9; 65.5; 62.6; 57.3; 43.3; 57.7; 61.4; 69.8; 48.0; 37.1; 29.8; 53.6; 49.3;
50.2; 46.1; 50.6; 51.4; 61.0; 50.8; 51.7; 52.4; 57.3; 55.4; 62.6];
median(x), median(y)
ans = 50.90000000000001
ans = 51.80000000000000
sign_test(x, y);
pval: 0.557197
[pval, b, n] = sign_test(x, y);
printf("b = %.5g, n = %d, p value = %.5g\n", b, n, pval)
b = 11, n = 26, p value = 0.5572
[pval, b, n] = sign_test(x, y, "<");
printf("b = %.5g, n = %d, p value = %.5g\n", b, n, pval)
b = 11, n = 26, p value = 0.7214
[pval, b, n] = sign_test(x, y, ">");
printf("b = %.5g, n = %d, p value = %.5g\n", b, n, pval)
b = 11, n = 26, p value = 0.2786