Условные вероятности в двоичной матрице заданы парой значений в качестве условия - PullRequest
0 голосов
/ 12 мая 2018

Мои данные получены из вопроса с несколькими вариантами ответов, в котором респонденты могли выбрать более одного варианта (пять вариантов выбора - это разные роли, которые они выполняли, например, Роль 1 - участник комитета по ИТ или Роль 2 - участник бюджетного комитета , так далее.). Я преобразовал роли в двоичные переменные, где «1» означает, что респондент выбрал эту роль, а «0» означает, что они не выбрали ее.

Вот пример данных:

structure(list(Role1 = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 0, 1), Role2 = c(0, 1, 1, 1, 1, 0, 1, 1, 1, 
1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1), Role3 = c(1, 0, 0, 0, 0, 1, 
0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1), Role4 = c(0, 1, 0, 
1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0), Role5 = c(0, 
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1)), row.names = c(NA, 
-20L), class = c("tbl_df", "tbl", "data.frame"))

Используя пакет bindata, его функция condprob вычисляет вероятность того, что респондент занимал какую-либо из ролей, если он выполнял другую роль.

library(bindata)
# Returns a matrix containing the conditional probabilities, and converts the matrix to a data frame
condlTable.df <- as.data.frame(condprob(SOdata))

Мой программный вопрос: как R может взять любую случайную пару ролей и вычислить условную вероятность любой из других ролей? Например, если респондент выбрал Role1 и Role2, пару ролей, какова вероятность того, что они также выбрали Role3, Role4 или Role5? Идеальный результат был бы похож на результат condprob, но для пар выбора.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 13 мая 2018

Может ли функция prop.table дать вам то, что вам нужно?

Например:

prop.table(condlTable.df)

Это дает вам пропорции по строкам: Role1 Role2 Role3 Role4 Role5 Role1 0.07097829 0.05977119 0.02241420 0.01867850 0.007471399 Role2 0.07097829 0.07097829 0.01774457 0.01330843 0.008872286 Role3 0.06083853 0.04055902 0.07097829 0.02027951 0.020279510 Role4 0.07097829 0.04258697 0.02839131 0.07097829 0.000000000 Role5 0.04731886 0.04731886 0.04731886 0.00000000 0.070978286

добавление CondlTable.df за мой комментарий / вопрос ниже. Role1 Role2 Role3 Role4 Role5 Role1 1.0000000 0.8421053 0.3157895 0.2631579 0.1052632 Role2 1.0000000 1.0000000 0.2500000 0.1875000 0.1250000 Role3 0.8571429 0.5714286 1.0000000 0.2857143 0.2857143 Role4 1.0000000 0.6000000 0.4000000 1.0000000 0.0000000 Role5 0.6666667 0.6666667 0.6666667 0.0000000 1.0000000

Вот ваши исходные данные:

   Role1 Role2 Role3 Role4 Role5
1      1     0     1     0     0
2      1     1     0     1     0
3      1     1     0     0     0
4      1     1     0     1     0
5      1     1     0     0     0
6      1     0     1     1     0
7      1     1     0     0     0
8      1     1     0     0     1
9      1     1     0     0     0
10     1     1     1     0     0
11     1     1     0     0     0
12     1     0     0     1     0
13     1     1     1     0     0
14     1     1     0     0     0
15     1     1     0     0     0
16     1     1     0     0     0
17     1     1     1     1     0
18     1     1     0     0     0
19     0     0     1     0     1
20     1     1     1     0     1
...