1

2x2 の分割表があり、内部のペアが大きく異なるかどうかを計算したいと考えています。次のような raw_matrix という名前のマトリックスを作成しました

          CNS random
Not_H3K4  343  28825
H3K4      11   2014

したがって、この行列を作成します。

raw_matrix = structure(c(343, 11, 28825, 2014), 
    .Dim = c(2L, 2L), .Dimnames = list(
    c("NotH3K", "H3K"), c("CNS", "Random")))

私が検索したように、Barnard や Boschloo の正確検定のような無条件の正確検定は、この目的のための最も強力な検定です。「Exact」パッケージをインストールし、次のコマンドを使用してテストを実行しようとしました:

exact.test(raw_matrix)

64GB RAM と 3.5 GH CPU コンピューターで 30 分以上かかり、最終的に次のエラーが発生しました。

    Error: cannot allocate vector of size 42.0 Gb
In addition: Warning messages:
1: In matrix(A[xTbls + 1, ] * B[yTbls + 1, ], ncol = length(int)) :
  Reached total allocation of 61417Mb: see help(memory.size)
2: In matrix(A[xTbls + 1, ] * B[yTbls + 1, ], ncol = length(int)) :
  Reached total allocation of 61417Mb: see help(memory.size)
3: In matrix(A[xTbls + 1, ] * B[yTbls + 1, ], ncol = length(int)) :
  Reached total allocation of 61417Mb: see help(memory.size)
4: In matrix(A[xTbls + 1, ] * B[yTbls + 1, ], ncol = length(int)) :
  Reached total allocation of 61417Mb: see help(memory.size)

次に、「Exact2x2」パッケージをインストールし、次のコマンドを使用してテストを行いました。

exact2x2(raw_matrix)

これにより、次の結果が得られました。

    Two-sided Fisher's Exact Test (usual method using minimum likelihood)

data:  raw_matrix
p-value = 0.006433
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
 1.2028 4.2424
sample estimates:
odds ratio 
  2.178631 

しかし、「Exact」パッケージのチュートリアルで読んだように、条件付きの正確なテストであるフィッシャーの正確なテストはそれほど強力ではありません。最後に、コマンド chisq.test(raw.matrix) を使用して通常のカイ二乗検定を実行しました。これにより、フィッシャー テストの結果とは異なる次の結果が得られました。

    Pearson's Chi-squared test with Yates' continuity correction

data:  test_1
X-squared = 6.2045, df = 1, p-value = 0.01274

私は遺伝学者であり、統計の専門家ではありません。このテストを行うための最良の戦略を誰か教えていただければ幸いです

4

1 に答える 1