R:计算并解释logistic回归中的优势比
我无法解释逻辑回归的结果。我的结果变量是R:计算并解释logistic回归中的优势比,r,probability,logistic-regression,R,Probability,Logistic Regression,我无法解释逻辑回归的结果。我的结果变量是Decision,是二进制变量(0或1,分别不是take或take产品)。 我的预测变量是thinks并且是连续的,可以是正的,也可以是负的,并且四舍五入到第二个小数点。 我想知道当思维发生变化时,接受产品的概率是如何变化的 逻辑回归方程为: glm(Decision ~ Thoughts, family = binomial, data = data) 根据这个模型,思想s对决策的概率有显著影响(b=0.72,p=0.02)。要确定决策与想法的比值比:
Decision
,是二进制变量(0或1,分别不是take或take产品)。我的预测变量是
thinks
并且是连续的,可以是正的,也可以是负的,并且四舍五入到第二个小数点。我想知道当思维发生变化时,接受产品的概率是如何变化的 逻辑回归方程为:
glm(Decision ~ Thoughts, family = binomial, data = data)
根据这个模型,思想
s对决策的概率
有显著影响(b=0.72,p=0.02)。要确定决策
与想法
的比值比:
exp(coef(results))
优势比=2.07
问题:
想法的增加(或减少)0.01会影响服用(或不服用)产品的几率0.07或
思想增加(减少)0.01,服用(不服用)产品的几率增加(减少)约2个单位
想法的优势比
转换为决策的估计概率
?或者我只能在某个
想法
分数上估计决策
的概率(即当想法==1时计算服用产品的估计概率)
r中逻辑回归返回的系数是一个logit,或赔率的对数。要将logits转换为优势比,您可以像上面所做的那样将其指数化。要将logit转换为概率,可以使用函数
exp(logit)/(1+exp(logit))
。然而,关于这个过程,有一些事情需要注意
首先,我将使用一些可复制的数据来说明
library('MASS')
data("menarche")
m<-glm(cbind(Menarche, Total-Menarche) ~ Age, family=binomial, data=menarche)
summary(m)
我们可以将其解释为:0岁时发生月经初潮的几率为.0000000000。或者,基本上不可能。年龄系数的指数化告诉我们每个年龄单位月经初潮几率的预期增加。在这种情况下,它刚刚超过五倍。优势比为1表示没有变化,而优势比为2表示加倍,等等
你的优势比为2.07,意味着“想法”增加1个单位,服用该产品的几率将增加2.07倍。
如何将想法的优势比转换为决策的估计概率?
您需要对选定的思想值执行此操作,因为正如您在上面的图中所看到的,在x值范围内,变化不是恒定的。如果你想知道思想的某个价值的概率,那么得到如下答案:
exp(intercept + coef*THOUGHT_Value)/(1+(exp(intercept+coef*THOUGHT_Value))
赔率和概率是两种不同的衡量标准,它们都旨在衡量事件发生的可能性。他们不应该相互比较,而应该相互比较
虽然使用“优势比”(odds1/odds2)比较两个预测值的优势(同时保持其他值不变),但相同的概率程序称为“风险比”(概率1/2) 一般来说,当涉及到比率时,几率优先于概率,因为概率限制在0和1之间,而几率的定义是从-inf到+inf 要轻松计算优势比(包括其置信区间),请参阅
oddsratio
软件包:
library(oddsratio)
fit_glm <- glm(admit ~ gre + gpa + rank, data = data_glm, family = "binomial")
# Calculate OR for specific increment step of continuous variable
or_glm(data = data_glm, model = fit_glm,
incr = list(gre = 380, gpa = 5))
predictor oddsratio CI.low (2.5 %) CI.high (97.5 %) increment
1 gre 2.364 1.054 5.396 380
2 gpa 55.712 2.229 1511.282 5
3 rank2 0.509 0.272 0.945 Indicator variable
4 rank3 0.262 0.132 0.512 Indicator variable
5 rank4 0.212 0.091 0.471 Indicator variable
库(oddsratio)
将上述公式拟合到logits到概率,exp(logit)/(1+exp(logit)),可能没有任何意义。此公式通常用于将赔率转换为概率。然而,在逻辑回归中,优势比更像是两个优势值之间的比率(碰巧已经是比率)。使用上述公式如何定义概率?相反,可能更正确的做法是从优势比中减去1,找到一个百分比值,然后将该百分比解释为给定预测值的结果增加/减少x%的几率。我发现这个epiDisplay软件包工作正常!这可能对其他人有用,但请注意,您的置信区间或确切结果将根据所使用的软件包而有所不同,因此最好阅读软件包的详细信息,并选择适合您的数据的软件包
下面是一个示例代码:
library(epiDisplay)
data(Wells, package="carData")
glm1 <- glm(switch~arsenic+distance+education+association,
family=binomial, data=Wells)
logistic.display(glm1)
库(epiDisplay)
数据(Wells,package=“carData”)
非常感谢你!您的附加示例确实有助于将您的解释置于上下文中。@SudyMajd欢迎使用SO!如果您接受特里德尔的答案,请单击答案旁边的绿色标记。这样做,你会尊敬回答问题的人,并将问题标记为已解决。这是一个非常彻底的回答。如果您在建模之前已经对协变量进行了缩放,那么对解释有什么影响?在检查优势比之前,你是否应该“不标度”它们,这是否有效?@Emily如果你有标度预测因子,那么解释是相同的,除了“一个单位的变化”意味着1个标准差。如果你想得到有标度和无标度的预测值,最好只拟合两个单独的模型:一个有标度,一个没有标度。截距和年龄系数的指数不是优势比。只有与因子变量项相关的指数系数才能被视为优势比。这个答案是错误的。我发现这个软件包非常有用,我想你应该使用或_glm
而不是calc.oddsratio.glm
谢谢,我更新了代码。很高兴你发现这个包很有用!没想到你是作者!非常感谢您提供!你说“赔率是从-inf到+inf定义的”,但它们不是被限制在0到inf之间吗?负优势比意味着什么?谢谢!增量在这里是什么意思?我试着运行这段代码,但我不知道如何选择增量的值。有汽车公司吗
exp(intercept + coef*THOUGHT_Value)/(1+(exp(intercept+coef*THOUGHT_Value))
library(oddsratio)
fit_glm <- glm(admit ~ gre + gpa + rank, data = data_glm, family = "binomial")
# Calculate OR for specific increment step of continuous variable
or_glm(data = data_glm, model = fit_glm,
incr = list(gre = 380, gpa = 5))
predictor oddsratio CI.low (2.5 %) CI.high (97.5 %) increment
1 gre 2.364 1.054 5.396 380
2 gpa 55.712 2.229 1511.282 5
3 rank2 0.509 0.272 0.945 Indicator variable
4 rank3 0.262 0.132 0.512 Indicator variable
5 rank4 0.212 0.091 0.471 Indicator variable
library(epiDisplay)
data(Wells, package="carData")
glm1 <- glm(switch~arsenic+distance+education+association,
family=binomial, data=Wells)
logistic.display(glm1)