★ 計算実験と理論の差 ★

977. 計算実験と理論の差 ときた 2003/11/07 (金) 22:01
└978. Re: 計算実験と理論の差 青木繁伸 2003/11/07 (金) 22:41
 └979. Re^2: 計算実験と理論の差 ときた 2003/11/07 (金) 23:01


977. 計算実験と理論の差 ときた  2003/11/07 (金) 22:01
初歩の統計の教科書に,こんな問題があります。

母平均のわからない正規母集団から,標本を9個無作為抽出し,標本分散S^2を計算するという操作を何度も繰り返すと,20回に1回の割合でS^2が1.0を越えたという。母分散はいくらか?

答えは,Z=9 S^2/σ^2が自由度8のカイ2乗と表を使って,0.58です。

ところが,
<<Statistics`NormalDistribution`
<<Statistics`DescriptiveStatistics`
rn:=Random[ NormalDistribution[0, 0.58]]
Table[Select[Map[VarianceMLE,Table[rn,{i,1000},{j,9}]],#>1&]//Length,{k,5}]
で{0,0,0,0,0}
と,5000回やっても,1.0を越えません。
rn:=Random[ NormalDistribution[0, 0.75]]
なら,{38,47,49,54,47}と,20回に1回の割合だから1000回なら50前後で,すなおな値の列です。

どう考えるべきなのでしょう。
実務家にとって,0.58と0.75はたいした問題でない??
このような有名な方法より,機械をブンブンまわした方がいい??

上の実験に思い違いがある??

     [このページのトップへ]


978. Re: 計算実験と理論の差 青木繁伸  2003/11/07 (金) 22:41
お,Mathematica ですか?

R だと,以下のような感じになります。
simulation という関数仕立てにしました。
> simulation <- function(ntimes =1000)
+ {
+     x <- matrix(rnorm(9*ntimes, sd=sqrt(0.58)), ncol=9)
+     sum(apply(x,1,var)*8/9>1)/ntimes
+ }
> simulation(1000)
[1] 0.056
> simulation(10000)
[1] 0.0477
> simulation(10000)
[1] 0.0474
> simulation(10000)
[1] 0.0507
良さそうな結果ですが?

Mathematica はよくわからないのですが,正規乱数のパラメータには,標準偏差を指定するのではないかと思います。
R では sd=sqrt(0.58) としているところです(0.58 は分散ですね?)。

     [このページのトップへ]


979. Re^2: 計算実験と理論の差 ときた  2003/11/07 (金) 23:01
さっそく,ありがとうございます。
Sqrtをわすれてました。

Rの乱数は名にし負うメルセンヌ ツイスターですね。いいな〜。

     [このページのトップへ]


● 「統計学関連なんでもあり」の過去ログ--- 026 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る