У меня есть трехэтапная схема стратифицированной выборки национального обследования. У меня есть код в 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?