EdX R statsクラスでは、100のダイスロールのセットで '6'がロールされる割合を調べるように求められます。 100ダイスのロールから平均値の差の標準偏差を見るために、100ダイスを10,000回転がすように求められます。replicate()を使用して100回のサイコロを10000回転らせます。予期しない結果
100ダイロールの結果は予想通りです。 (1/6 = 0.1666667)
しかし、私は10,000を参照するために100回のサイコロのセットを投げるためにreplicate()をロードすると、結果は私が期待するものではありません。 z
を計算するときに、あなたがn <- 100
代わりのn <- 10000
を設定し、推測で
set.seed(1)
# get mean of 100 dice rolls
mean100dice <- function(){
n=100
x <- replicate(n, sample(1:6, n, replace=TRUE), simplify='vector')
mean(x==6)
}
mean100dice() #these come out as expected
means10k <- replicate(10000, mean100dice(),simplify='vector')
p = 1/6
z = (means10k - p)/sqrt(p*(1-p)/n)
mean(z > 2) ## I expect this to be > 0
range(means10k) ## sanity check
> mean(z > 2)
[1] 0
> range(means10k)
[1] 0.1522 0.1806
あなたのコードは 'mean100dice'関数の外側で' n'を定義していませんが、あなたはzの定義でそれを使用しています。 nにはどのような価値がありますか?実際にどのような価値があるかテストしてください。 – G5W
私はそれをしたと思います(n値)。 mean(z> 2)now 0.0227 – cumin