Я выполняю логистические регрессии с набором данных панели из данных опроса, и я хочу исправить стандартные ошибки для дизайна панели. Веса, включенные в это обследование, учитывают вероятность выборки, уровень смертности от групп и после стратификации.
Если я правильно понял Berger et al 2017 , я должен использовать кластеризованные ковариации для данных панели. Однако я не уверен, работают ли команды для данных с весами опроса.
Я начал с оценки регрессий с помощью glm
и исправления стандартных ошибок с помощью coeftest
из пакета lmtest
и vcovPL
из пакета sandwich
. Впоследствии я использовал svydesign
и svyglm
из пакета survey
для оценки взвешенной модели и снова исправил стандартные ошибки таким же образом.
В этом вопросе сэндвич-пакет R, выдающий странные результаты для устойчивых стандартных ошибок в линейной модели Zeileis пишет, что использование svyglm
объектов может привести к неверным результатам. Тем не менее, я не уверен, что это применимо только к сложному весу обследования (со стратами и т. Д.) Или к базовым весам обследования, так как здесь указано здесь , что без использования страт нет большой разницы , Однако я не совсем понимаю объяснение там. Кроме того, мне интересно, позволяют ли недавно реализованные функции, описанные в Berger et al 2017 , использовать объект svyglm
. Поэтому я не знаю, смогу ли я использовать команды из пакета sandwich
для объектов класса svyglm
, если в моем проекте нет слоев.
Вот код, который я использовал:
# not weighted
model <- glm(depend_var ~ indep_var1 + indep_var2 ,family=quasibinomial(link='logit'),data=dataset)
m_vcov <- coeftest(model,vcov. = sandwich::vcovPL(x = model, cluster = ~ id_var,order.by = ~ year ,pairwise = T))
# weighted
design.ps <- svydesign(ids=~1, weights=~wgt, data=dataset)
model_wgt <- svyglm(depend_var ~ indep_var1 + indep_var2, design=design.ps,family=quasibinomial(link='logit'),data=dataset)
mwt_vcov <- coeftest(model_wgt, vcov. = sandwich::vcovPL(x = model_wgt, cluster = ~ id_var,order.by = ~ year ,pairwise = T))
Если посмотреть на коэффициенты, представленные в тестовом коде, приведенном выше, результаты кажутся довольно разумными, в отличие от результатов, представленных здесь: Сэндвич-пакет R, выдающий странные результаты для устойчивых стандартных ошибок в линейной модели
# basic model
> summary(model)
Estimate Std. Error t value Pr(>|t|)
(Intercept) -3.68570 0.01264 -291.68 <2e-16 ***
indep_var1_test 0.37538 0.01111 33.78 <2e-16 ***
indep_var2_test 1.05226 0.01100 95.62 <2e-16 ***
# basic model with SE correction
> m_vcov
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.685702 0.176121 -20.9271 < 2.2e-16 ***
indep_var1_test 0.375380 0.049817 7.5353 4.874e-14 ***
indep_var2_test 1.052258 0.068763 15.3027 < 2.2e-16 ***
# weighted model
> summary(model_wgt)
Estimate Std. Error t value Pr(>|t|)
(Intercept) -3.89702 0.01751 -222.57 <2e-16 ***
indep_var1_test 0.42373 0.01454 29.15 <2e-16 ***
indep_var2_test 1.05291 0.01439 73.15 <2e-16 ***
# weighted model with SE correction
> mwt_vcov
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.897021 0.319932 -12.1808 < 2.2e-16 ***
indep_var1_test. 0.423732 0.075202 5.6346 1.755e-08 ***
indep_var2_test 1.052915 0.126569 8.3189 < 2.2e-16 ***
Мой вопрос: могу ли я использовать приведенные выше команды для исправления стандартных ошибок?
Я думаю, мой вопрос похож на этот без ответа:
https://stats.stackexchange.com/questions/260515/does-coeftest-correctly-use-weights-from-svydesign-in-svyglm-object?rq=1