これはモンテカルロシミュレーションですか?


7

では、2つの正規分布を比較してみましょう

Do this x times: 

runs <- 100000
a.samples <- rnorm(runs, mean = 5) 
b.samples <- rbeta(runs, mean = 0) 
mc.p.value <- sum(a.samples > b.samples)/runs

アルファ(0.05)をxで割った値を下回るmc.p.値は、type1のエラー率になります。H0はa.samples> = b.samplesです。(https://www.countbayesie.com/blog/2015/3/3/6-amazing-trick-with-monte-carlo-simulationsに触発されて)

しかし、モンテカルロシミュレーションは次の手順に従う必要があると思いました。

アルゴリズム:

  1. データのいくつかの分布、f()またはf(θ)、およびいくつかのH0を設定します。
  2. 次の2つのステップを何度も繰り返します。(a)H0に従ってデータセットをシミュレートします(b)シミュレートしたデータを使用してT(x)を計算します
  3. サンプルデータから評価されたT(X)を追加する
  4. すべてのT(x)を注文する
  5. p値は、T(x)の割合で、サンプルデータのT(x)よりも極端または極端です

したがって、最初のコードスニペットは、真のモンテカルロシミュレーションではありませんか?これは、p値が有効であるためです。これをグラフ化すると、統計的検定で期待される5%のtype1エラー率が得られないためです。

回答:


8

これはモンテカルロシミュレーションですが、あなたが望んでいることをしているのではないかと思いますが、実際には役に立ちません。比較しているのは、10000の単一サンプル研究であり、これらの個々の観測値の平均がいくつ高いかを決定しています。したがって、コードを次の非効率的なコードとして概念化する方が良いでしょう。

runs <- 10000
result <- logical(runs)

for(i in 1:runs){
  a <- rnorm(1, mean = 0) 
  b <- rnorm(1, mean = 0)
  result[i] <- a > b
} 
mc.p.value <- mean(result)

上記のコード、分布が等しい場合、ことを示すべきであるよりも高い時間の50%が、あなたが唯一必要があるため、結果のこのタイプは、実際には、本質的に無駄である、及び統計的推論が(適用されませんつまり、サンプリングの不確実性を定量化するために利用できる各グループ内の差異はありません)。abN=2

不足しているのは、関心のある2つの要約統計量を比較して、それらのサンプリングプロパティを決定することです。これは一般に統計的推論のトピックであり、何らかの形のサンプリングの不確実性を定量化するには、少なくとも最小数のデータポイントが必要です。

現状では、これは一般に標準の独立した設定です。したがって、最初のグループの平均が2番目のグループよりも高い頻度、が結果を与える頻度(または同様に、比率がより大きい頻度など)を比較することができます。など)。ttp<α|t|

たとえば、各グループでで、分布が母集団で等しい場合、=20

runs <- 10000
n <- 20
alpha <- .05
result.p <- result.mean <- numeric(runs)

for(i in 1:runs){
  a <- rnorm(n, mean = 0) 
  b <- rnorm(n, mean = 0)
  result.mean[i] <- mean(a) > mean(b)
  result.p[i] <- t.test(a, b)$p.value
} 
mc.p.value <- mean(result.p < alpha)
mc.a_gt_b.value <- mean(result.mean)

最初のグループの平均を1に変更するなど、他のパラメーターをいじると、シミュレーションの性質が変更されます(現在のように、タイプIのエラーシミュレーションからパワースタディに変更します)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.