我尝试在R中进行逻辑回归,然后计算优势比。我有两组人,第一组比第二类更容易接触污染物,第一组更常发生某种疾病。 我只是在这里使用一组玩具数据。生成模型并估计污染物暴露对疾病发展的影响的重要性很容易:
df <- data.frame(disease = as.factor(c(rep(1,100),rep(0,500))),
exposure=c(rnorm(100, mean = 200, sd = 50),
rnorm(500, mean = 100, sd = 20)))
model <- glm(formula = disease ~ exposure, data=df,
family = binomial(link = "logit"))
summary <-summary(model)
OR <- exp(cbind(OddRatio = coef(model), confint(model)))
在R中,优势比基于自变量的一个单位变化,例如,将污染物浓度改为1mg / ml,在该实施例中产生的比值比约为1.1比1。
我现在的问题是,如何根据几个单位变化的变化重新计算比值比? (在整个污染物暴露范围内)
我的第一个猜测是新范围的OR是一个单位的OR变化到单位范围大小的幂。
range <- max(df$exposure)-min(df$exposure)
ORRange <- (OR["exposure",1])^range
在玩具数据中,范围约为300.而1.1 ^ 300约为2x10 ^ 13,这是相当多的。
这个计算是正确的,还是必须乘以(1.1 x 300)? 什么是证明计算的数学基础?
答案 0 :(得分:0)
这不是你如何计算不同变化单位的比值比。首先,将logit量表上的系数(即R报告的数据)乘以,然后然后使用exp
函数。以下是计算1,2和3个变化单位的优势比的示例
unit.change = c(1,2,3)
exp(coef(model)["exposure"]*unit.change)