アプリ版:「スタンプのみでお礼する」機能のリリースについて

データの分析の仮説検定です。
8面サイコロを使う理由がわからないです。解説お願いします。

「データの分析の仮説検定です。 8面サイコ」の質問画像

A 回答 (17件中1~10件)

> 8面サイコロにした理由を考えてみたのですが、前回の選挙で支持者の割合が有権者数全体の1/8であったから、支持するか否かの確率(支持する確率)もそれに基づいて1/8にした。



はい、そのとおりです。1/8を帰無仮説にしたとき、帰無仮説どおりなら出現数の範囲がどうなるか知りたいので、1/8で出現するツールを用いて確認実験をした訳です。

もし、支持する者の確率が人口の1/10であれば、数値実験も1/10の確率で当たりが発生する10面の「鉛筆転がし」のようなツールを使う必要があります。

また、なぜそのような数値実験が必要なのか、ですが、

1/8になったのは、たまたまその1回のアンケートの結果です。それを何度も何度も繰り返すと、その都度、観測数が異なるはずです。サンプリングばらつきがあるからです。

そこで、1/8という数をまずは正しいとして(帰無仮説)、何度も何度も100人アンケートを繰り返したとき(800回)、帰無仮説どおりなら、実際には100人中何人支持者が表れるか、そのばらつき範囲を知りたいので、1/8のサイコロで数値実験をしています。

その範囲の上側5%が帰無仮説の棄却域になります。
    • good
    • 1
この回答へのお礼

ありがとうございました

お礼日時:2022/11/24 07:29

No.16ミスタイプ修正。

下から2行目

誤: P(r | r/n) = B(n,r/n,k)

正: P(k | r/n) = B(n,r/n,k)
    • good
    • 0

No.6における「たとえば」の部分に関してコメントします。

(質問者氏には無用の話であろうかとは思いますが、一応。)

 ある事象Xが確率pで生じるとき、n回試行してXがr回発生する確率は
  P(k | p) = B(n,p,r)
ここにB(n,p,r)は二項分布
  B(n,p,r) = (nCk)(p^r)((1-p)^(n-r))
です。このご質問の場合には事象Xは「8面体サイコロを100回振った時に18回以上1の目が出る」です。

(X自身もまた、たまたま二項分布に関わる事象だ、という事情があるために、混乱する人も出るかもしれませんね。)

 さて、あらかじめpが分かってはいないとしましょう。それでも、Xがn=800回中r=52回発生した、という実験結果から、 p≈r/n であろう、ということが推測できますね。実は、その推測にはキチンとした根拠があります。すなわち:

 以下のようにしてベイズ推定を行うことによって、pについて「ある程度」のことがわかるんです。ベイズ推定では、pを1個の数値と思うのではなくて、p自身がある確率分布に従う確率変数であると考えます。サイコロを振る実験をする前にはpは全くわからないんで、確率密度が
  φ[0](p) =「0〜1の範囲の一様分布」
の分布に従うものと仮定します。で、Xが生じるかどうかの(つまり8面体サイコロを100回振振って、8回以上1の目が出たかどうかの)実験を1回やるたびに、以下のようにして確率密度関数φを更新していきます:

 j回目の実験の結果が
  Yesだったなら φ[j}(p) = K (p φ[j-1](p)),
  Noだったなら φ[j}(p) = K ((1-p) φ[j-1](p))
ただし Kは
  ∫{0~1} φ[j}(p) dp = 1
となるように調整します。この更新を地道にn=800回繰り返せばいいんです。
(この更新は、ベイズの定理に基づいていますが、詳細はワカル人にとっては簡単ですし、ここに書くには長すぎるので、どうしてこうやればいいかの説明は省略します。)
(さて、実はそんな大変な計算をやるまでもありません。何回目にYesになったかには関係なく、n回中r回Yesであったなら
  φ[n](p) = B(n,p,r)
になることが容易に証明できるからです。ここにも二項分布が(3度目!)出てきますが、本質的ではありません。なお、二項分布B(n,p,r)を見たら、大抵の場合はそれを「nとpが既知で、rが確率変数」と思って読むわけですが、この場合にはφ[n](p)なのですから、「nとrが既知で、pが確率変数」と読むんだということには注意が必要です。それはさておき)
 このようにして、pについて「ある程度」のことが分かったわけです。いや、「ある程度」とは言いながら、実はn=800回も更新を繰り返すとφ[n](p)は非常に細いピークが1個だけある分布になり、そのピークの位置は p = r/n のごく近くにあります。したがって、事実上「p ≈ r/n である」ということがわかる。
(このように、pが従う確率密度関数に基づいて、pを特定の値に絞って推定することを「点推定」と言います。これは厳密な意味では論理的に飛躍しているけれども、実用上は尤もな推定です。というわけで)
 以上が、事象Xの発生確率pをp≈ r/n だと推定することの妥当性の説明です。

 というわけで、事象Xが確率r/nで生じるとすると、n回試行してXがちょうどk回発生する確率は
  P(r | r/n) = B(n,r/n,k)
である。ここでn=800, r=52 としたのがNo.6の計算です。
    • good
    • 1

それに、大きい方から数えるとき、表の23のところにある1は、1個目じゃなく、0個目だしね。



その矛盾にも気づかないだろうなあ。

やっぱり、高一のレベルじゃないですね。
    • good
    • 0
この回答へのお礼

お手数をおかけしてすみません。恐らく物凄く初歩的なところで躓いていると思うのですが、支持するか否かであれば確率は1/2で、使うとすれば、2面サイコロじゃないかという質問です。8面サイコロにした理由を考えてみたのですが、前回の選挙で支持者の割合が有権者数全体の1/8であったから、支持するか否かの確率(支持する確率)もそれに基づいて1/8にした。文章にしてみてもいまいちしっくりと来ないのですが、これで合っていますでしょうか?

お礼日時:2022/11/21 17:03

私は、二項分布の累積度数表を掲載することには反対です。



高一のレベルなら、正規分布近似の累積確率を示した方がまだ良いです。
あるいは、800個のデータから考えよ、が良いのでは。

添付図の、

緑のプロットは二項分布の(小さい方からの)累積確率です。

赤い線は、前から述べているように、実測データから連続性補正点を出して曲線にしたもの。
青い線は、μ=np、σ=np(1-p)から正規分布近似して累積確率を曲線化したもの。

緑のプロットは正しい累積確率にはなっていません。キチンと棄却域を決めるには、このままでは間違えます。

「(小さい方から数えて760番目の値) + 1」のプラス1の発想ができれば良いですが・・・

小さい方から数えるときと大きい方から数えるときとに食い違いが生じることに気づけば良いですが。

これは、高一の統計の知識レベルでは無理じゃないでしょうか。
「データの分析の仮説検定です。 8面サイコ」の回答画像13
    • good
    • 0

単純に、表の ((小さい方から数えて760番目の値) + 1) を棄却限界とすると、支持率は上がったとは言えない結果になります。



この場合の第一種の過誤の確率を、R(https://www.R-project.org/)を使ってシミュレーションにより推定してみたところ、4.071% となりました。
5%を超えるかと思っていましたがそうでもなかったので、有意水準5%の検定としては間違いとは言えません。

もっとも、No.6さんの言うように素直に二項分布の累積度数表を(適切な精度で)掲載すればいいだけだと思いますが。


###### 使用したスクリプト #####

fn <- function(r) {
x <- rbinom(r, 100, 1/8)
y <- matrix(rbinom(r*800, 100, 1/8), nrow = r)
z <- apply(y, 1, function(w) sort(w)[760] + 1)
cnt <- sum(x >= z)
return(binom.test(cnt, r))
}

(x <- fn(100000))

###### 使用したスクリプト(ここまで) #####


###### 実行結果 #####

Exact binomial test

data: cnt and r
number of successes = 4071, number of trials = 1e+05, p-value <
2.2e-16
alternative hypothesis: true probability of success is not equal to 0.5
95 percent confidence interval:
0.03949351 0.04195322
sample estimates:
probability of success
0.04071
    • good
    • 0

#10です。



ちなみに、統計ソフトで二項分布の累積確率の数値解を求めてプロットするとどうなるか、を示します。(緑色のプロット)

Rという統計ソフトで、

pbinom(d, 100, 1/8, lower.tail = TRUE)

として、引き数dには、3~24まで、0.1刻みで代入しています。

確率は離散的であるということが分かると思います。つぎの出現数になるまでは、一定値を続けるのです。言い換えれば、中間の確率値を出すためには、正規分布のような連続関数で近似する必要があるのです。

正規分布以外で近似をするときは、連続性補正が必要であることも分かります。階段状ですからね。曲線はどこを通すかが重要です。
「データの分析の仮説検定です。 8面サイコ」の回答画像11
    • good
    • 0

もしかして、何面のサイコロかは別として、「なんで二項分布でやらせないのか」が疑問なのでしょうか。



それは計算が破綻するからです。
小数点以下の数値を合わせて100乗と言った時点で破綻することは分かりますよね。桁落ちします。

実測を示しているのは、そのためです。

大学生になれば、統計ソフトを使ってやるでしょう。けど、それすらベータ関数で近似して計算しています。
    • good
    • 0

#5です。



実測表の誤差を考慮すべき、というご指摘があり、もっともだと思いましたので、累積確率グラフに95%信頼限界を入れました。青い線です。

方法は、各連続性補正点で「ClopperとPearsonの正確信頼区間」による計算を行い、スプライン曲線で結んであります。

この結果から、注目すべき横軸18の箇所の、
・95%信頼上限=0.9653747
・95%信頼下限=0.9345315
でした。

つまり、

この実験が、たとえ正確なサイコロが使われているとしても、何万回もやったわけではないので、不確かさが残ります。
そこで、95%信頼区間から判定することにします。
「今回は支持率が上がった」とぬか喜びしないために、95%信頼下限を用いると、0.9345315であり、棄却域に入りません。

「支持率が上がったとは言えない」

という結論になります。
「データの分析の仮説検定です。 8面サイコ」の回答画像9
    • good
    • 0

あと、気になったんですが、分布のパラメータ(グラフの横方向のσ)と、確率の誤差(グラフの縦方向のσ)をごっちゃにしていませんか?



私の理解不足でしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!