1

McNemar 検定を使用して、R を介して適切なサイズのデータ​​セットを実行しようとしています。ペアのサンプルで、ある方法で検出されたオブジェクトの割合に違いがあるかどうかを判断します。2x2 のテーブルがある場合、テストが正常に機能することに気付きました

   test1
   y    n
y  34   2
n  12   16

しかし、次のようなものを実行しようとすると:

34   0
12   0

「x」と「y」は同じレベル数 (最小 2) でなければならないというエラーが表示されます。

ワイド データ セットでテーブル関数を使用してワイド データを 2x2 行列に変換しようとしたことを明確にする必要があります。

test1
    y
y  34
n  12

factor object オプションを使用して mcnemar.test も実行しましたが、同じエラーが発生したため、同様のことが行われると想定しています。これらのカテゴリのいずれかに該当する観測がないにもかかわらず、テーブル関数に 2 番目の列を強制的に生成させる方法があるかどうか、またはテストでこの欠落データを見落とす方法があるかどうか疑問に思っています。

4

1 に答える 1

1

おそらくこれを行うためのより良い方法がありますが、集計された要因が同じlevels属性を持ち、正確に2つの異なるレベルが指定されていることを確認することにより、Rに疎な分割表を作成させることができます.

# Example data
x1 <- c(rep("y", 34), rep("n", 12))
x2 <- rep("n", 46)

# Set levels explicitly
x1 <- factor(x1, levels = c("y", "n"))
x2 <- factor(x2, levels = c("y", "n"))

table(x1, x2)
#    x2
# x1   y  n
#   y  0 34
#   n  0 12

mcnemar.test(table(x1, x2))
#
#  McNemar's Chi-squared test with continuity correction
#
# data:   table(x1, x2)
# McNemar's chi-squared = 32.0294, df = 1, p-value = 1.519e-08
于 2015-05-01T21:19:04.520 に答える