0

T_{i,j} という統計の行列があります。次に、1000 サンプルをシミュレートしました。1000 個のサンプルを使用して分布を構築し、観測された T_{i,j} の p 値を計算したいと考えています。

サンプルの T_{i,j} 行列は次のようになります。

         V12         V13        V22        V23       V117       V146
V12  0.009900990 0.008281829 0.01490863 0.01548161 0.01342882 0.01287918
V13  0.008281829 0.031250000 0.04367911 0.04597988 0.03876530 0.03182001
V22  0.014908629 0.043679113 0.50000000 0.36522152 0.45404452 0.09666729
V23  0.015481606 0.045979882 0.36522152 0.50000000 0.47827009 0.10272845
V117 0.013428819 0.038765301 0.45404452 0.47827009 0.50000000 0.09810254
V146 0.012879176 0.031820011 0.09666729 0.10272845 0.09810254 0.09090909

私がやりたいことは、可能なエントリごとに p 値を簡単に取得することです。上記のマトリックスには、対角線より下のすべてが上のすべての転置にすぎないため、21 の個別の統計があります。

for ループを使用して、すべてのサンプルの各 (i,j) エントリを調べ、それらを並べ替えて、観察した場所を特定できることはわかっていますが、R でもっと簡単な方法があるのではないかと考えていました。

ここにデータのサンプルセットを入れました (dput を介して出力されたデータ): http://temp-share.com/show/3YgF5Ww2x

4

1 に答える 1

2

LT が T のようないくつかの帰無仮説シミュレートされた行列のリストであり、片側検定 (たとえば上記) を実行したい場合、T の各要素が上記の値以上になった回数を数えることができます。シミュレーションの関連値。reduce を使用して、lapply から返された 1000 の行列を合計しています。

ct <- Reduce("+", lapply(LT,function(x) x >= T))

結果は、LT の行列の対応する要素が T の要素を超えた (または等しい) 回数をカウント (ct) する、T と同じサイズの行列です。この行列をシミュレーションのサンプル サイズ (シミュレーションの数) で割ります。

p <- ct / length(LT)

p は、帰無仮説シミュレーションが少なくとも観察されたデータと同じくらい (上限で) 極端である確率を表す近似 p 値の行列です。いずれかの p < alpha の場合、観察の特定の要素の場合、帰無仮説は不適切なモデルであると言えます。

テスト "x >= T" を調整して、実際に実行したいテストを実行します。これは両側テストである可能性があります。

于 2013-03-11T11:33:36.557 に答える