#r #logistic-regression #survey
Вопрос:
Я ищу совета о том, как провести взвешенный логистический регрессионный анализ, стратифицированный по полу, в R.
Для моего основного, нестратифицированного анализа я сгенерировал обратные веса вероятности (invp) и провел взвешенную логистическую регрессию следующим образом:
complete_cases_weighted <- svydesign(id=~1, weights=~invp, data=complete_cases)
svyglm(outcome ~ exposure, design=complete_cases_weighted, family="binomial")
Теперь я хочу, по существу, повторить этот анализ дважды, один раз только для женщин и один раз только для мужчин.
Как лучше всего это сделать с правильным взвешиванием? Должен ли я повторить весь процесс генерации весов и выполнения взвешенной логистической регрессии, разделив мои данные на мужчин и женщин? Или есть какая-то причудливая работа ногами, которую я могу сделать с svydesign
/ svyglm
для этого?
Комментарии:
1. это похоже на вопрос статистики, поэтому он может быть лучше подходит для stats.stackexchange.com
2. Извините, чтобы уточнить — мне ясна статистика, стоящая за этим, я просто пытаюсь понять, как лучше всего закодировать это в R. По сути, должен ли я повторять существующий код генерации и анализа веса для подмножеств данных или
svydesign
svyglm
у меня есть встроенные функции, которые справляются с этим.
Ответ №1:
От ?svyglm
library(survey)
data(api)
dstrat<-svydesign(id=~1,strata=~stype, weights=~pw, data=apistrat, fpc=~fpc)
summary(svyglm(api00~ell meals mobility, design=dstrat))
цикл через все уровни sch.wide
for( this_value in unique( apistrat$sch.wide ) ){
print( this_value )
print( summary(svyglm(api00~ell meals mobility, design=subset(dstrat,sch.wide== this_value ))))
}
Комментарии:
1. отличное решение. Спасибо, что объяснили нюансы работы с подмножествами. Только странно, что это не совпадает с результатами
svyby(formula = api00 ~ ell meals mobility, by = ~ sch.wide, design = dstrat, FUN = svyglm)
2. @YuriySaraykin да,
svyby
результат более сжатый