起こる可能性が0である事柄について、説得力のある哲学的議論を持つことは困難です。そこで、あなたの質問に関連するいくつかの例を紹介します。
同じ分布からの2つの巨大な独立したサンプルがある場合、両方のサンプルにはまだある程度のばらつきがあり、プールされた2サンプルt統計値は近くなりますが、正確に 0ではなく、P値は
Unif(0,1),および95%信頼区間は非常に短く、非常に近くにセンタリングされます0.
そのようなデータセットとt検定の例:
set.seed(902)
x1 = rnorm(10^5, 100, 15)
x2 = rnorm(10^5, 100, 15)
t.test(x1, x2, var.eq=T)
Two Sample t-test
data: x1 and x2
t = -0.41372, df = 2e+05, p-value = 0.6791
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.1591659 0.1036827
sample estimates:
mean of x mean of y
99.96403 99.99177
10,000のそのような状況からの結果を要約します。まず、P値の分布。
set.seed(2019)
pv = replicate(10^4,
t.test(rnorm(10^5,100,15),rnorm(10^5,100,15),var.eq=T)$p.val)
mean(pv)
[1] 0.5007066 # aprx 1/2
hist(pv, prob=T, col="skyblue2", main="Simulated P-values")
curve(dunif(x), add=T, col="red", lwd=2, n=10001)
次に、検定統計量:
set.seed(2019) # same seed as above, so same 10^4 datasets
st = replicate(10^4,
t.test(rnorm(10^5,100,15),rnorm(10^5,100,15),var.eq=T)$stat)
mean(st)
[1] 0.002810332 # aprx 0
hist(st, prob=T, col="skyblue2", main="Simulated P-values")
curve(dt(x, df=2e+05), add=T, col="red", lwd=2, n=10001)
CIの幅についても同様です。
set.seed(2019)
w.ci = replicate(10^4,
diff(t.test(rnorm(10^5,100,15),
rnorm(10^5,100,15),var.eq=T)$conf.int))
mean(w.ci)
[1] 0.2629603
仮定が満たされている場合、連続データを使用して正確なテストを実行して、単一のP値を取得することはほとんど不可能です。賢明な統計学者は、P値1を見たときに何が間違っているのかを熟考します。
たとえば、ソフトウェアに2つの同一の大きなサンプルを与えることができます。プログラミングは、これらが2つの独立したサンプルであるかのように実行され、奇妙な結果をもたらします。ただし、それでもCIの幅は0にはなりません。
set.seed(902)
x1 = rnorm(10^5, 100, 15)
x2 = x1
t.test(x1, x2, var.eq=T)
Two Sample t-test
data: x1 and x2
t = 0, df = 2e+05, p-value = 1
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.1316593 0.1316593
sample estimates:
mean of x mean of y
99.96403 99.96403