Rule of Three: 僕のまわりではそんなことはない!

MikuHatsune2017-12-25

面白い話を教えてもらったので読んだ。
稀な事象の生起確率に関する統計的推測 Rule of Three とその周辺
ポアソン分布とRule of Three(統計学ワード)
 
上記の証拠(?)をもって「○○は存在しない!」と主張する人がときたまいるが、その人のまわりをN人探してそんな○○がいなかったとしても、別の集団のN人の中にはそんな○○が3人くらいはいるので、「ないことの証明」は超難しい、という話。これはNによらない(のはウソだが、ある程度大きなNではほとんど差がなくなる)。
 
統計学的な教訓として、absence of evidence is not evidence of absence という言葉があるが、これは意識高い系EBM 厨が、「その検査/治療が○○の予後をよくするpaper は存在しません(キリッ」ということがときたまあることについて、予後をよくするといった証拠がないという事実は、予後をよくしないという証拠にはならない、というのはよくある検査医学的なことで教わる話である。単純に、「証拠がないということはないことの証拠にはならない」のである。ないことを示すにはすべての仮説を検証する必要があるが、そんなことは不可能である。
 
概念的にはなんとなくわかったような、なるほどわからん、というような感じなので、シミュレーションしてみる。いま、N 人探したけど○○が0 人だったとすると、N 人のうち○○な人の確率はp=\frac{0}{N}=0 であるが、偶然の可能性もあるので、二項分布でN 人中0 人が○○な確率の95%信頼区間は、binom.test で計算できる。例えばN=1000 だと、95%信頼区間の上限は、0.0037 である。

binom.test(0, 1000)
	Exact binomial test

data:  0 and 1000
number of successes = 0, number of trials = 1000, p-value < 2.2e-16
alternative hypothesis: true probability of success is not equal to 0.5
95 percent confidence interval:
 0.000000000 0.003682084
sample estimates:
probability of success 
                     0 

95%信頼区間内の事象は、まあありえそう、と思って採用するので、N=1000 人観察して0 人でも、最大で0.0037 程度は確率が存在する。
ここで、別のN=1000 人の集団では平均的に0.0037*1000 = 3.7 人は最大で○○な人として観測される。
ここで、自分のまわりではもっと大きなN を探した、と主張しても、p\to0 に応じてN\to\infty となり、平均Np\to\lambda となる。これはよく見かけるポアソン分布である。
というわけで、N を増やしてみると、ポアソン分布に収束して、結局3人程度の観測を得てしまうわけである。
 

N <- 10^(1:6)
v <- mapply(function(n) binom.test(0, n, p=0.1)$conf.int[2]*n, N)
plot(log10(N), v,
     xlab=expression(10^N~"samples"),
     ylab=expression("別の"~10^N~"人の集団で観測されうる人数"),
     type="o", pch=15, lwd=3, ylim=c(0, 4))

v
[1] 3.084971 3.621669 3.682084 3.688199 3.688811 3.688873