r - R epiDisplay 软件包和其他流行病学软件包不适用于调查加权 glm?
问题描述
我正在使用 R Studio 并拥有来自使用分层、权重和嵌套的调查的数据。因此,我使用library(survey)
svydesign 设置了一个 svydesign,然后使用 svyglm 使用所述 svydesign 完成所需的逻辑回归(保存为 output2)。
当我尝试library(epiDisplay)
在 R 上使用 或任何其他流行病学软件包时,我收到以下错误:
逻辑显示(输出2)逻辑显示(输出2)中的错误:模型不是来自逻辑回归
该软件包适用于使用 glm 而不是 svyglm 的回归结果。我如何结合我的调查设计并仍然获得流行病学结果?有没有可以同时做这两个的包?
编辑
免费数据示例(仅用于示例目的):NHANES 2011-2012 溴化阻燃剂 (BFR) - 血清 - 混合样品 (BFRPOL_G)。
可在此处下载:https ://wwwn.cdc.gov/Nchs/Nhanes/2011-2012/BFRPOL_G.XPT
下载后,设置库(调查),并创建
BROM <- svydesign(id =new$SDMVPSU, strata = new$SDMVSTRA, weights =
new$WTSMSMPA, nest = TRUE, data = BFRPOL_G)
现在(无意义的)回归,但它仍然证明了问题:
output2<-svyglm(RIAGENDR~RIGAGGRP+LBDBR66C, family = binomial, data=BFRPOL_G, design = BROM, maxit=100)
library(epiDisplay)
logistic.display(output2)
结果?
> logistic.display(output2)
> Error in logistic.display(output2) : Model not from logistic regression
这里还有另一个 Stack Exchange 问题/答案(Edward 提供的页面底部):https ://stats.stackexchange.com/questions/8661/logistic-regression-in-r-odds-ratio 显示了 EpiDesign 的简洁程度包可以显示结果。
通过逻辑回归,它可以提供粗 OR & 95% CI、调整后的 OR & 95% CI、Wald 检验和 LR 检验。它还显示了观察次数和 AIC。
如果没有这个包,我不知道如何从我的回归中获取所有这些信息。还有其他流行病学图书馆,但我不知道有哪一个可以让我纳入调查权重/设计。
解决方案
里面的代码logistic.display
有
if (length(class(model)) == 1) {
stop("Model not from logistic regression")
}
if (class(model)[1] != "glm" | class(model)[2] != "lm" |
model$family$family != "binomial") {
stop("Model not from logistic regression")
}
所以它故意排除仅继承自的对象glm
。您可能必须联系epiDisplay
包作者 - 可能是该函数本质上无法处理具有抽样权重的逻辑回归,或者可能是作者没有足够的想象力。
推荐阅读
- python - 索引和列表 - 索引超出范围
- javascript - Convert Special Quoations to Normal Quoations
- javascript - 如何打印包含与用户输入数据相对应的数据的数组?
- http - Get result from chilkatHttp.PostUrlEncodedAsync in VB6
- selenium - 为什么手动访问和通过 ChromeDriver 和 Chrome 通过 Selenium 访问时 robots.txt 的内容不同
- mongodb - 如何在组查询中正确使用 toDate
- python - 函数 addFunc 在 0x10fae4f28
- python - 如何在python中生成2个不相关的列表?
- python - Python字典单键可能有多个值?
- c# - 如何应用 C# LINQ 消除 foreach 循环?