2つのデータに対してKS検定をする場合
% x=rnorm(10, mean = 1) % y=rnorm(10, mean = 1) % x [1] 0.91430534 1.59262261 1.52565219 1.68065990 2.35755910 1.91386531 [7] -2.26359817 0.08465784 0.06163455 -0.10943752 % y [1] 2.2200235 2.2241460 1.0733582 0.8002340 1.6228854 0.2652880 [7] 1.4286084 -0.6869875 0.1918104 2.2083442 % ks.test(x, y) Two-sample Kolmogorov-Smirnov test data: x and y D = 0.3, p-value = 0.7869 alternative hypothesis: two-sided
1つのデータに対した正規分布のKS検定をする場合
% x=rnorm(10, mean = 1) % ks.test(x, pnorm) One-sample Kolmogorov-Smirnov test data: x D = 0.43645, p-value = 0.02996 alternative hypothesis: two-sided
2つの引数は、比較したい分布を指定する文字列、正規分布なら pnorm、ポアソン分布なら ppois、一様分布の場合 punif を指定できる
正規分布の場合だと、平均と分散も指定可能
% ks.test(x=vx,y="pnorm",mean=mean(vx),sd=sd(vx)) One-sample Kolmogorov-Smirnov test data: vx D = 0.13793, p-value = 0.9196 alternative hypothesis: two-sided
片側検定/両側検定の切り替えはalternativaで行う
デフォルトでは両側検定になっている
% ks.test(x, y, , alternative="t") Two-sample Kolmogorov-Smirnov test data: x and y D = 0.3, p-value = 0.7869 alternative hypothesis: two-sided % ks.test(x, y, , alternative="l") Two-sample Kolmogorov-Smirnov test data: x and y D^- = 0.1, p-value = 0.9048 alternative hypothesis: the CDF of x lies below that of y % ks.test(x, y, , alternative="g") Two-sample Kolmogorov-Smirnov test data: x and y D^+ = 0.3, p-value = 0.4066 alternative hypothesis: the CDF of x lies above that of y
検定結果からp値を取り出したいときは、
結果をなにかに代入して、namesで中身を調べる→ p値のみを取り出す
% out <- ke.test(x, y) % names(out) [1] "statistic" "p.value" "alternative" "method" "data.name" % out$p.value [1] 0.7869298