Тест Макнемара в R - разреженные данные
Я пытаюсь запустить набор данных хорошего размера через 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
Я также запустил mcnemar.test с опцией факторного объекта, которая выдает мне ту же ошибку, поэтому я предполагаю, что она делает нечто подобное. Мне интересно, есть ли способ заставить табличную функцию генерировать 2-й столбец, несмотря на отсутствие наблюдений, которые подпадают под одну из этих категорий, или есть ли способ заставить тест пропустить эти пропущенные данные?
1 ответ
Возможно, есть лучший способ сделать это, но вы можете заставить R построить разреженную таблицу непредвиденных обстоятельств, убедившись, что табулированные факторы имеют одинаковые levels
атрибут и что есть точно 2 различных указанных уровня.
# 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