Постстратификация R опросов: проблемы с функцией опроса

Я здесь новичок и новичок в R. Мне интересно, правильно ли я использовал пакет опроса R для публикации стратификации моих данных. Ниже вы можете увидеть структуру данных моего фрейма данных (df).

utype gender age regzeit finanz sfeld sindex
pri female 23 ja s ARG 5
sta male 23 nein f ARG -7
sta female 21 ja ARG 11
pri male 28 ja t ARG 1

Я произвел избыточную выборку женщин для переменной пола и студентов для переменной utype и теперь хочу скорректировать распределение в популяции. Мой n = 383 был передискретизирован до n = 477 Предполагаемые распределения моего моего образца n = 383:

utype male female Sum
pri 54 68 122
sta 128 133 261
Sum 187 196 383

design <- svydesign(id = ~utype+gender, data = df)

Предупреждающее сообщение: в svydesign.default (id = ~ utype + gender, data = df): веса или вероятности не указаны, предполагая равную вероятность

pop.types <- data.frame(utype=c("sta","pri"), Freq=c(261,122))

designp <- postStratify(design, ~utype, pop.types)

postStratify(design, ~utype, pop.types)

svymean(~sindex, design)
среднее | SE
sindex 0.48008 | 0,0192
svymean(~sindex, designp)
среднее | SE
sindex 0.47692 | 0

Теперь мой вопрос заключается в том, верен ли приведенный ниже код и как я могу postStratify для обеих переменных utype и пола в моем коде или мне нужно дважды запускать команду postStratify. Меня особенно беспокоит то, что стандартная ошибка равна нулю в моей взвешенной выборке, а также из-за предупреждающего сообщения. И соответствуют ли значения Freq тому, что я здесь пытаюсь сделать?

Последнее, что я пытался выяснить, это как получить функции svymean, svyhist или svyboxplot для sindex, но только для наблюдений с utype == pri, то есть в основном по группам. Все это должно применяться к взвешенным значениям sindex.

Надеюсь, я соблюдаю все правила. Спасибо заранее!


person LiamWPY    schedule 14.01.2021    source источник


Ответы (1)


Вы не хотите дважды пост-стратифицировать (это принесет вам выгоду). Вы хотите пост-стратифицировать один раз, используя постстратную переменную, которая представляет собой комбинацию ваших двух переменных пола, как в вашей таблице 2x2. То есть,

designp <- update(designp, combined_var = interaction(gender,utype))

Теперь вы указываете аргумент pop.types=, который имеет желаемые частоты для каждого из четырех уровней этой новой переменной.

Имея только четыре перечисленных вами наблюдения, вы получите нулевые стандартные ошибки, потому что нет никаких изменений ни в одном из постстрат.

person Thomas Lumley    schedule 26.01.2021