Как применять веса, связанные с NIS (Национальная стационарная выборка) в R - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь применить веса, указанные для данных NIS, с помощью пакета R "опрос", но мне это не удалось. Я новичок в R и командах опроса.

Это то, что я пробовал:

# Create the unweighted dataset
d <- read.dta13(path) 

# This produces the correct weighted amount of cases I need.
sum(d$DISCWT) # This produces the correct weighted amount of cases I need.

library(survey)

# Create survey object
dsvy <- svydesign(id = ~ d$HOSP_NIS, strata = ~ d$NIS_STRATUM, weights = ~ d$DISCWT, nest = TRUE, data = d) 
d$count <- 1
svytotal(~d$count, dsvy)

Однако после выполнения общего опроса я получаю следующую ошибку:

Error in onestrat(x[index, , drop = FALSE], clusters[index], nPSU[index][1],  : 
 Stratum (1131) has only one PSU at stage 1

Любая помощь будет принята с благодарностью, спасибо!

1 Ответ

0 голосов
/ 19 мая 2020

Ошибка указывает на то, что вы указали план, в котором одна из страт имеет только одну первичную единицу выборки. Невозможно получить объективную оценку дисперсии для такого дизайна: вклад страты 1131 в конечном итоге составит 0/0. разумно вероятное объяснение состоит в том, что данные или выражение svydesign неверны. Иногда, как здесь, это не то, что вам нужно, и глобальная опция «survey.lonely.psu» описывает другие способы ответа. Вы хотите установить

options(survey.lonely.psu = "adjust")

Этот и другие параметры задокументированы по адресу help(surveyoptions)

...