glm、svyglm、lrm对比----计算加权数据

#svyglm
data(api)
dstrat<-svydesign(id=~1,strata=~stype, weights=~pw, data=apistrat, fpc=~fpc)
fitsvy=svyglm(api00~ell+meals+mobility, design=dstrat)
or_svy<- exp(coef(fitsvy))[2]# OR值
lci_svy<-exp(confint(fitsvy))[2]#95%可信区间下限
uci_svy <- exp(confint(fitsvy))[6] # 95%可信区间上限
c(lci_svy, or_svy, uci_svy)

#glm
data(api)
fit_glm<-glm(api00~ell+meals+mobility, data=apistrat,weights=pw)
#使用sandwich进行调整
library(sandwich) 
se<-sqrt(diag(vcovHC(fit_glm,type="HC0")))
#计算95%CI
or_glm <- exp(coef(fit_glm))[2] # OR值
beta_glm <- coef(fit_glm)
lci_glm <- exp(beta_glm[2]-1.96*se[2])
uci_glm <- exp(beta_glm[2]+1.96*se[2])
c(lci_glm,or_glm,uci_glm)

#lrm
library(rms)
data=apistrat[,setdiff(colnames(apistrat),"flag")] 
ddist <- datadist(data)
options(datadist='ddist')
fit_lrm<-lrm(api00~ell+meals+mobility, 
             data=data,weights=pw,normwt=T,scale=F) %>% summary

svyglm的结果:

glm的结果:

lrm的结果:

可以看出来结果不相同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值