ожидание 2 x 2 в R - PullRequest
       22

ожидание 2 x 2 в R

0 голосов
/ 02 мая 2020

отношение шансов, ожидающее 2 x 2 в R. Похоже, что я создал таблицу 2 x 2 ... хм, даже prop.table () отображает данные в виде таблицы 2 x 2, так что с какой функцией отношения шансов будет работать моя таблица?

Данные:

nausea_yes <- c(98, 161, (98-161))
nausea_no <- c(264, 280, (264-280))

Таблица сформирована ОК:

tbl <- table(nausea_yes, nausea_no)
tbl.prop <- prop.table(tbl, margin=1)
          nausea_no
nausea_yes -16 264 280
       -63   1   0   0
       98    0   1   0
       161   0   0   1

Код проблемы:

library(mosaicCore)
nausea_yes <- c(98, 161, (98-161))
nausea_no <- c(264, 280, (264-280))
tbl <- table(nausea_yes, nausea_no)
tbl.prop <- prop.table(tbl, margin=1)
odds_ratio <- mosaic::oddsRatio(tbl.prop, verbose = TRUE)

Ошибка:

Error in orrr(x, conf.level = conf.level, verbose = verbose, digits = digits, : expecting something 2 x 2

Ответы [ 2 ]

2 голосов
/ 02 мая 2020

Вы должны использовать cbind для создания таблицы 2x2, а не table. Затем вы можете использовать fisher.test, чтобы получить отношение шансов, с нулем, равным 1 (без разницы).

nausea_yes <- c(98, 161)
nausea_no <- c(264, 280)
tbl <- cbind(nausea_yes, nausea_no); tbl
#     nausea_yes nausea_no
#[1,]         98       264
#[2,]        161       280

fisher.test(tbl)
#Fisher's Exact Test for Count Data

#data:  tbl
#p-value = 0.004974
#alternative hypothesis: true odds ratio is not equal to 1
#95 percent confidence interval:
# 0.4712971 0.8827141
#sample estimates:
#odds ratio 
#  0.645947

Интерпретация сложна, поскольку мы не знаем строку имена, хотя я уверен, что вы знаете. Все, что мы можем сказать, это то, что первый ряд имеет меньшие шансы "nausea_yes", чем второй ряд. Если первая строка представляла группу лечения, то мы могли бы сказать, что шансы тошноты были значительно ниже среди группы лечения.

Обратите внимание, что функция table используется для табулирования необработанных данных с целью получения частота считает. Но так как у вас уже есть значения частоты, нет необходимости использовать table здесь. Просто объедините счет с cbind (или rbind).

1 голос
/ 02 мая 2020

В соответствии с ?oddsRatio

Эта функция вычисляет отношение шансов и относительный риск для таблицы непредвиденных обстоятельств 2 x 2 и доверительный интервал (уровень по умолчанию - 95 процентов) для каждой оценки , х должен быть матрицей, фреймом данных или таблицей.

Отношение шансов рассчитывается как (Строка шансов 2) / (Строка шансов 1)


В примере ОП это таблица / матрица 3 x 3 и не 2 x 2

Если это матрица 2 x 2, она должна работать

nausea_yes <- c(98, 161)
nausea_no <- c(264, 280)
mosaic::oddsRatio(cbind(nausea_yes, nausea_no))
#[1] 1.54898
...