ょゎさんの「なんで確率は 0 以上 1 以下なのさ」について.
こんな解釈はどうでしょう.
この感覚を定式化できないか?
一つの案は, 「確率 q と確率 p との見分けやすさ」を測ることです. ちゃんと言うと,
確率 q で表が, 確率 (1-q) で裏が出るコインを n 回投げたとき, 表の割合が「たまたま」 p になる確率 S は?
というのを計算して, それにもとづいて「見分けやすさ」を定義しようという方針です.
この計算はふつうに二項分布で,
S = C(n, np) q^{np} q'^{np'} ここに C(n, np) = n! / ((np)! (np')!), p' = 1 - p, q' = 1 - q
と答えられます(np も np' も整数ということにしておきます).
回数 n が十分大きいときを想定 すれば*1, Stirling の公式
N >> 1 のとき log(N!) 〜 N log N - N
を使って,
log S = log(n!) - log((np)!) - log((np')) + np log q + nq' log q' 〜 - n (p log p - p log q) - n (p' log p' - p' log q')
と近似値を見れば十分でしょう(0 < q < 1 ということにしておきます). 得られた結論をざっくり言うと,
本当の確率が q なのに, たまたま p みたいなサンプルが出てしまう確率は, おおよそ exp(- n D(p←q)) である. ここに, n はサンプル数で, D(p←q) = (p log p - p log q) + (p' log p' - p' log q')
この結論を見ると,
ということに気づきます. このことから, D(p←q) を「q と p との見分けやすさ」とみなすのは妥当でしょう. 十分な精度で見分けるために必要となるサンプル数が, D で決まるからです. この D は Kullback-Leibler divergence と呼ばれます (ただし, D(p←q) でなく D(p||q) という記号がふつうは使われます).
D は次の性質を持ちます.
最初に挙げた「解釈」と照らしても雰囲気が出ていますね. 実際, 計算してみると
D(0.5←0.4) = 0.0204 D(0.2←0.1) = 0.0444
となり, D(0.5←0.4) < D(0.2←0.1) も成り立っています.
ruby -e 'include Math; def d(p,q); p*log(p/q)+(1-p)*log((1-p)/(1-q)); end; p d(0.5,0.4); p d(0.2,0.1)'
気分としては, 「D は p, q 間の距離みたいなものだ」と思ってください. ただし, 「距離だ」と言い切ってしまうのはちょっと差しさわりがあります.
という, 距離にしては妙な性質を D は持っているからです. (実はもう一つ差しさわりがあって, D は本当は, 距離というよりも「距離の自乗」に 相当します. D の性質をもっといろいろ調べるとそのことが見えてきます.)
\memo{まだ: 検定論で云々. 情報理論で典型列が云々. 大偏差原理云々. 局所的に二次形式で近似するとフィッシャー計量でクラメル・ラオが云々. 情報幾何が云々.}
ついでに, 同ページの「キミの言う90%は、本当に90%なの?」についても関連ネタ.
仲間内で, 「出欠の確率は?」という聞き方をときどきします. そのとき, でたらめな申告を防ぐには, 申告と合わない行動から罰金を とればよいでしょう. では, 罰金をどう設定したら合理的か?
一つの案は, 出席確率を q と申告した場合,
これなら「正直に申告するのが最適解」になります.
実際, 本当の出席確率を p としたら, 罰金の期待値
f(q) = - p log q - (1-p) log(1-q)
が最小になるのは
df/dq = - p / q + (1-p) / (1-q) = 0
のとき. つまり q = p と申告したときです.
もし「出席確率 1」と申告して欠席したりすれば, 罰金無限大!
コメントはプログラミングのための確率統計へ
*1 正確には, 「np >> 1 かつ np' >> 1」という想定
Keyword(s):
References:[Pr.Comment]