Воспроизведение проекта Stata национальной многоступенчатой ​​выборки в пакете исследований R - PullRequest
1 голос
/ 28 октября 2019

У меня есть трехэтапная схема стратифицированной выборки национального обследования. У меня есть код в Stata для взвешивания, но я пытаюсь воспроизвести его с помощью пакета опросов R.

Конструкция выборки следующая. Вселенная выборки разделена на 49 слоев. В каждом слое отбор проб осуществляется в три этапа. (1) PPS выбор участка. (2) Случайный систематический отбор домохозяйства с использованием техники случайных маршрутов, в основном. (3) Случайный систематический отбор респондента в домохозяйстве с использованием некоторой модификации метода Киша.

Существует весовой код Stata, который, как предполагается, хорошо работает:

svyset precinct [pweight=indwt], strata(strt) fpc(npsu) singleunit(certainty) || qnum, fpc(nhh) || _n, fpc(nhhm)

Здесь precinct - это числовые номера, strt - коды страт. Размеры населения, используемые для FPC: npsu - количество блоков питания (то есть участков) на слой, nhh - количество домохозяйств в блоке питания, nhhm - количество правомочных членов в домохозяйстве. qnum - уникальные номера вопросника, которые одинаковы как для отдельных домохозяйств, так и для респондентов.

Я пытаюсь воспроизвести его с помощью следующего кода R.

library(survey)
options("survey.lonely.psu" = "certainty")
svy_data <- svydesign(ids = ~precinct + qnum,
                      strata = ~strt,
                      weights = ~indwt,
                      fpc = ~npsu + nhh,
                      data = data)

Я не могу сделатьfpc = ~npsu + nhh + nhhm, потому что тогда я получаю сообщение об ошибке:

Ошибка во всплывающем <размер выборки: несовместимые массивы. </p>

Результирующие доверительные интервалы через confint(svymean(...)) в R donне соответствуют доверительным интервалам Stata через пакет tabout ado. Они близки, но немного смещены в R.

Я предполагаю, что я должен сделать то, что делает термин Stata _n, и получить 3-этапный дизайн вместо 2-этапного. Как я мог это сделать?

Или есть что-то еще, что я могу попытаться улучшить в своем R-коде, чтобы он соответствовал Stata?

...