Делать проценты строки / столбца с данными опроса в R? - PullRequest
0 голосов
/ 06 марта 2020

Я анализирую некоторые данные опроса в R. Из-за структуры выборки весь анализ должен выполняться с помощью пакета «опрос», который может принимать во внимание структуру выборки, что означает, что я не могу просто попасть в столбец или в процентах внутри строки, используя prop.table () так же, как и для данных без опроса.

Для тех, кто не знаком с терминологией процента строки / столбца, я имею в виду проценты для одной переменной, условной в указанном c строке / столбце для другой переменной. Например:

      | male | female
black | 10   | 20
white | 15   | 15
other | 10   | 15

Процент строки - это число наблюдений в ячейке, деленное на количество наблюдений в этой строке, например, процент для «мужчины» в строке «другое» составляет 40% ( 10 / (10 + 15)). Процентом столбца будет количество наблюдений в ячейке, деленное на количество наблюдений в этом столбце, например, процент для «другого» в столбце «женский» составляет 30% (15 / (20 + 15 + 15)). Обычно они легко вычисляются с помощью prop.table (), но Я не могу использовать prop.table () на этот раз, потому что он не учитывает дизайн выборки опроса.

У меня есть Я гуглил и тестировал вещи, пытаясь выяснить, как это сделать с помощью пакета «survey», и до сих пор я нашел функцию svytable () и могу заставить ее получить базовое значение -табличность подсчета (например, раса по полу), но не взвешенные по опросу проценты. Я также нашел функции svymean () и svytotal () , но пока все, что мне удалось сделать, это получить одномерные взвешенные проценты от svymean () (который, по-видимому, фиктивно кодирует каждую категорию как 0 / 1, затем взять среднее) и объединить svymean с функцией взаимодействия (например, svymean(~interaction(race,gender),...)), чтобы получить проценты клеток (например, «черные мужчины составляют XX% от общей выборки»), но я все еще не могу получить в процентах внутри строки и внутри столбца.

Как получить пакет "опрос", чтобы получить процент столбца и строки, скорректированный с учетом опроса, для перекрестной таблицы двух переменных?

1 Ответ

3 голосов
/ 06 марта 2020

Вы не предоставили выборочных данных, поэтому я буду использовать встроенные наборы данных пакета опроса:

library(survey)

data(api)
dclus1 <- svydesign(id=~dnum, weights=~pw, data=apiclus1, fpc=~fpc)
svyby(~awards, by = ~stype, design=dclus1, FUN=svymean)

  stype  awardsNo awardsYes se.awardsNo se.awardsYes
E     E 0.2291667 0.7708333  0.02904587   0.02904587
H     H 0.5714286 0.4285714  0.14564997   0.14564997
M     M 0.4800000 0.5200000  0.11663553   0.11663553

Это строка проценты или проценты по каждой категории наград (да / нет) в каждом из трех типов школ. Мы видим, что 77,1% начальных школ во всем штате Калифорния имели право на программу вознаграждений.

...