通过混淆变量调整连续变量来预测疾病的可能性

时间:2019-05-15 14:41:48

标签: r probability logistic-regression predict marginal-effects

我对R包的“边距”有疑问。我正在估算一个物流模型:

modelo1 <- glm(VD ~ VE12 + VE.cont + VE12:VE.cont + VC1 + VC2 + VC3 + VC4, family="binomial", data=data)

位置:
VD2是二分变量(1种疾病/ 0种不是疾病)
VE12是二分曝光变量(值0和1)
VE.cont连续曝光变量
VCx(其余变量)是混杂变量。

我的目标是获得VD2值的向量和每个VE.cont组的疾病预测概率(VE12),但要通过VCx变量进行调整。换句话说,我想按VD2组获得VE.contVE12之间的剂量反应线,但假设每个剂量反应线的VCx分布相同(即无混淆)。

按照本文(https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4052139/的术语),我认为我应该做一个可以使用stata进行的“边际标准化”(方法1),但是我不确定该如何处理R. 我正在使用这种语法(带有R):

cdat0 <- cplot(modelo1, x="VE.cont", what="prediction", data = data[data[["VE12"]] == 0,], draw=T, ylim=c(0,0.3))

cdat1 <- cplot(modelo1, x="VE.cont", what="prediction", data = data[data[["VE12"]] == 1,], draw=marg"add", col="blue")

但是我不确定我是否做对了,因为这种方法得到的结果与使用模型时得到的结果类似,而不会混淆变量和函数predict.glm

       modelo0 <- glm(VD2 ~ VE12 + VE.cont + VE12:VE.cont, family="binomial", data=data)

也许我应该使用margins选项,但我不理解结果,因为在VE.cont列中获得的值不在概率范围内(0到1之间)。

x <- c(1,2,3,4,5)
margins::margins(modelo1, at=list("VE.cont"=x, "VE12"=c(0,1)), type="response")

This is an example of figure that I would like to obtain:

0 个答案:

没有答案