深入解读Logistic回归结果(一):回归系数,OR

本文介绍了Logistic回归的基本原理及其应用场景,通过实例详细解读了回归系数的意义,并解释了odds与OR的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

​​​​​​​

转载地址:http://blog.sina.com.cn/s/blog_44befaf60102vznn.html

Logistic回归虽然名字叫”回归” ,但却是一种分类学习方法。使用场景大概有两个:第一用来预测,第二寻找因变量的影响因素。 

一 从线性回归到Logistic回归

线性回归和Logistic回归都是广义线性模型的特例。

假设有一个因变量y和一组自变量x1, x2, x3, ... , xn,其中y为连续变量,我们可以拟合一个线性方程:

y =β0 +β1*x1 +β2*x2 +β3*x3 +...+βn*xn

并通过最小二乘法估计各个β系数的值。

如果y为二分类变量,只能取值0或1,那么线性回归方程就会遇到困难: 方程右侧是一个连续的值,取值为负无穷到正无穷,而左侧只能取值[0,1],无法对应。为了继续使用线性回归的思想,统计学家想到了一个变换方法,就是将方程右边的取值变换为[0,1]。最后选中了Logistic函数:

y = 1 / (1+e-x)

这是一个S型函数,值域为(0,1),能将任何数值映射到(0,1),且具有无限阶可导等优良数学性质。

我们将线性回归方程改写为:

y = 1 / (1+e-z),

其中,z =β0 +β1*x1 +β2*x2 +β3*x3 +...+βn*xn

此时方程两边的取值都在0和1之间。

进一步数学变换,可以写为:

Ln(y/(1-y)) =β0 +β1*x1 +β2*x2 +β3*x3 +...+βn*xn

Ln(y/(1-y))称为Logit变换。我们再将y视为y取值为1的概率p(y=1),因此,1-y就是y取值为0的概率p(y=0),所以上式改写为:

p(y=1) = ez/(1+ez),

p(y=0) = 1/(1+ez),

其中,z =β0 +β1*x1 +β2*x2 +β3*x3 +...+βn*xn.

接下来就可以使用”最大似然法”估计出各个系数β。

二 odds与OR复习

      odds: 称为几率、比值、比数,是指某事件发生的可能性(概率)与不发生的可能性(概率)之比。用p表示事件发生的概率,则:odds = p/(1-p)。

      OR:比值比,为实验组的事件发生几率(odds1)/对照组的事件发生几率(odds2)。 

三 Logistic回归结果的解读

      我们用一个例子来说明,这个例子中包含200名学生数据,包括1个自变量和4个自变量:

      因变量:  hon,表示学生是否在荣誉班(honors class),1表示是,0表示否;

      自变量:

      female :性别,分类变量,1=女,0=男

      read: 阅读成绩,为连续变量

      write: 写作成绩,为连续变量

      math:数学成绩,为连续变量 

      1、不包含任何变量的Logistic回归

      首先拟合一个不包含任何变量的Logistic回归,

      模型为 ln(p/(1-p) =β0

      回归结果如下(结果经过编辑):

hon

系数β

标准误

P

截距

-1.12546

0.164

0.000

      这里的系数β就是模型中的β0 = -1.12546,

      我们用p表示学生在荣誉班的概率,所以有ln(p/(1-p) =β0 = -1.12546,

      解方程得:

      p = 0.245。

      odds = p/1-p = 0.3245

      这里的p是什么意思呢?p就是所有数据中hon=1的概率。

      我们来统计一下整个hon的数据:

hon

例数

百分比

0

151

75.5%

1

49

24.5%

      hon取值为1的概率p为49/(151+49) = 24.5% = 0.245,我们可以手动计算出ln(p/(1-p) = -1.12546,等于系数β0。可以得出关系:

      β0=ln(odds)。

      2、包含一个二分类因变量的模型

      拟合一个包含二分类因变量female的Logistic回归,

      模型为 ln(p/(1-p)  =β0 +β1* female.

      回归结果如下(结果经过编辑):

hon

系数β

标准误

P

female

0.593

.3414294

0.083

截距

-1.47

.2689555

0.000

      在解读这个结果之前,先看一下hon和female的交叉表:

hon

female

Total

Male

Female

0

74

77

151

1

17

32

49

Total

91

109

根据这个交叉表,

对于男性(Male),其处在荣誉班级的概率为17/91,处在非荣誉班级的概率为74/91,所以其处在荣誉班级的几率odds1=(17/91)/(74/91) = 17/74 = 0.23;

相应的,女性处于荣誉班级的几率odds2 = (32/109)/(77/109)=32/77 = 0.42。女性对男性的几率之比OR = odds2/odds1 = 0.42/0.23 = 1.809。我们可以说,女性比男性在荣誉班的几率高80.9%。

回到Logistic回归结果。截距的系数-1.47是男性odds的对数(因为男性用female=0表示,是对照组),ln(0.23) = -1.47。变量female的系数为0.593,是女性对男性的OR值的对数,ln(1.809) = 0.593。

所以我们可以得出关系: OR = exp(β),或者β= ln(OR)(exp(x)函数为指数函数,代表e的x次方)。

      3、包含一个连续变量的模型

      拟合一个包含连续变量math的Logistic回归,

      模型为 ln(p/(1-p)  =β0 +β1* math.

      回归结果如下(结果经过编辑):

hon

系数β

标准误

P

math

.1563404

.0256095

0.000

截距

-9.793942

1.481745

0.000

      这里截距系数的含义是在荣誉班中math成绩为0的odds的对数。我们计算出odds = exp(-9.793942) = .00005579,是非常小的。因为在我们的数据中,没有math成绩为0的学生,所以这是一个外推出来的假想值。

      怎么解释math的系数呢?根据拟合的模型,有:

      ln(p/(1-p)) =  - 9.793942  + .1563404*math

      我们先假设math=54,有:

      ln(p/(1-p))(math=54) = - 9.793942 + .1563404 *54

      然后我们把math提高提高一个单位,令math=55,有:

      ln(p/(1-p))(math=55) = - 9.793942 + .1563404 *55

      两者之差:

      ln(p/(1-p))(math=55) - ln(p/1-p))(math = 54) = 0.1563404.

      正好是变量math的系数。

      由此我们可以说,math每提高1个单位,odds(即p/(1-p),也即处于荣誉班的几率)的对数增加0.1563404。

      那么odds增加多少呢?根据对数公式:

      ln(p/(1-p))(math=55) - ln(p/1-p))(math = 54) = ln((p/(1-p)(math=55)/ (p/(1-p)(math=54))) = ln(odds(math=55)/ odds(math=54)) = 0.1563404.

      所以:

      odds(math=55)/ odds(math=54)  =  exp(0.1563404) = 1.169.

      因此我们可以说,math每升高一个单位,odds增加16.9%。且与math的所处的绝对值无关。

      聪明的读者肯定发现,odds(math=55)/ odds(math=54)不就是OR嘛!

      4、包含多个变量的模型(无交互效应)

      拟合一个包含female、math、read的Logistic回归,

      模型为 ln(p/(1-p) = β0 +β1* math+β2* female+β3* read.

      回归结果如下(结果经过编辑):

hon

系数β

标准误

P

math

.1229589

0.000

female

0.979948

0.020

read

.0590632

0.026

截距

-11.77025

0.000

      该结果说明:

     (1) 性别:在math和read成绩都相同的条件下,女性(female=1)进入荣誉班的几率(odds)是男性(female=0)的exp(0.979948) = 2.66倍,或者说,女性的几率比男性高166%。

     (2) math成绩:在female和read都相同的条件下,math成绩每提高1,进入荣誉班的几率提高13%(因为exp(0.1229589) = 1.13)。

     (3)read的解读类似math。

      5、包含交互相应的模型

      拟合一个包含female、math和两者交互相应的Logistic回归,

      模型为 ln(p/(1-p)  =β0 +β1* female+β2* math+β3* female *math.

      所谓交互效应,是指一个变量对结果的影响因另一个变量取值的不同而不同。

      回归结果如下(结果经过编辑):

hon

系数β

标准误

P

female

-2.899863

0.349

math

.1293781

0.000

female*math

.0669951

0.210

截距

-8.745841

0.000

      注意:female*math项的P为0.21,可以认为没有交互相应。但这里我们为了讲解交互效应,暂时忽略P值,姑且认为他们是存在交互效应的。

      由于交互效应的存在,我们就不能说在保持math和female*math不变的情况下,female的影响如何如何,因为math和female*math是不可能保持不变的!

      对于这种简单的情况,我们可以分别拟合两个方程,

      对于男性(female=0):

      log(p/(1-p))= β0 + β2*math.

      对于女性(female=1):

      log(p/(1-p))= (β0 + β1) + (β2 + β3 )*math.

      然后分别解释。

<think>嗯,用户之前已经问过关于R语言polr()模型结果解释的问题,现在又问了有序Logistic回归结果解读。看起来用户可能是在做有序分类变量的分析,可能是在学术研究或者数据分析项目中遇到了需要解释模型结果的情况。用户之前得到了关于polr()函数的详细解释,现在想进步了解有序Logistic回归结果解读,可能是在实际应用中遇到了具体的问题,或者希望更深入理解模型输出的各个部分。 首先,我需要确认有序Logistic回归和polr()模型的关系。polr()函数就是用来进行有序Logistic回归的,所以用户的问题其实是在同主题下的进步询问。之前的回答已经涵盖了模型公式、输出结构、关键结果解释步骤、示例和注意事项等。现在用户可能希望得到更简洁或更针对结果解读的指导,或者可能想确认自己是否正确地理解了之前的内容。 接下来,用户的需求可能包括: 1. 如何解读回归系数的方向和大小? 2. 如何计算优势比(OR值)及其意义? 3. 如何判断变量的显著性? 4. 如何理解阈值(截距项)? 5. 模型假设的检验,比如比例优势假设。 此外,用户可能在实际操作中遇到了输出结果中的某些特定部分,比如t值、p值的计算,或者如何应用brant包来检验假设。需要确保回答涵盖这些方面,并且以逐步解释的方式呈现,帮助用户系统地理解结果。 还要注意用户可能对统计术语不太熟悉,需要用更易懂的语言解释概念,例如“对数累积优势比”、“优势比”、“比例优势假设”等。同时,用户可能需要具体的代码示例来计算OR值和p值,因为R的polr()默认不直接提供p值,这在实际操作中是个常见的困惑点。 另外,用户可能关心如何将统计结果转化为实际结论,例如如何根据系数方向判断变量的影响,或者如何报告结果中的显著性水平。需要强调结合领域知识来解释结果的重要性,而不仅仅是统计显著性。 最后,可能需要提醒用户注意样本量要求、模型假设的验证以及结果的可视化,这些都是确保分析可靠性的重要步骤。确保回答结构清晰,分步骤解释,并包含示例代码和实际应用中的注意事项,以帮助用户全面理解和应用有序Logistic回归结果解读。</think>### R语言有序Logistic回归(`polr`模型)结果解释指南 有序Logistic回归(Proportional Odds Model)适用于因变量为**有序分类变量**(如“不满意、般、满意”或“Ⅰ级、Ⅱ级、Ⅲ级”)的场景。以下是模型结果的详细解读方法,结合R语言`polr()`函数输出。 --- #### **、模型核心公式** 有序Logistic回归的累积概率公式为: $$ P(Y \leq j) = \frac{1}{1 + e^{-(\theta_j - \beta X)}} $$ - $Y$:有序因变量(类别为$1,2,...,K$,且$1 < 2 < ... < K$) - $\theta_j$:第$j$个类别的**截距阈值**(Threshold/Cutpoint) - $\beta$:自变量的回归系数 - $X$:自变量向量 --- #### **二、模型输出解读** 使用`summary(model)`查看结果,主要关注以下部分: ##### **1. 截距阈值(Threshold Coefficients)** ```r Threshold coefficients: 1|2 2|3 -1.23 0.56 ``` - **含义**: - `1|2`:区分类别1和2的阈值($\theta_1$) - `2|3`:区分类别2和3的阈值($\theta_2$) - **关键点**: - 阈值需满足$\theta_1 < \theta_2 < ... < \theta_{K-1}$(自动排序) - 阈值是模型分割不同类别的“分界线”,但本身无实际意义。 --- ##### **2. 回归系数(Coefficients)** ```r Coefficients: Value Std. Error t value age 0.0456 0.0123 3.71 genderM -0.6789 0.0892 -7.61 ``` - **解读方向**: - **正系数**(如`age=0.0456`):自变量增加时,因变量趋向更高类别。 - 例:年龄越大,疾病严重程度(轻→中→重)可能越高。 - **负系数**(如`genderM=-0.6789`):自变量增加时,因变量趋向更低类别。 - 例:男性(vs 女性)满意度(低→中→高)可能更低。 - **解读强度**: - 系数绝对值越大,自变量对因变量的影响越强。 --- ##### **3. 优势比(Odds Ratio, OR)** 将回归系数指数化,得到OR值: ```r exp(coef(model)) ``` 输出示例: ```r age genderM 1.0467 0.5072 ``` - **解读**: - `age=1.0467`:年龄每增加1岁,**累积优势比**增加4.67%。 - 即年龄越大,因变量处于更高类别的概率更高。 - `genderM=0.5072`:男性的累积优势比是女性的50.72%(即男性处于高类别的概率更低)。 --- ##### **4. 显著性检验(P值)** R默认不输出P值,需手动计算: ```r # 计算t值对应的P值(双侧检验) coef_table <- coef(summary(model)) p_values <- 2 * pnorm(abs(coef_table[, "t value"]), lower.tail = FALSE) ``` - **判断标准**: - 若P值<0.05,说明自变量对因变量有显著影响。 - 例:若`age`的P值=0.001,表明年龄对结果的影响显著。 --- #### **三、完整案例演示** ##### **背景** 研究教育水平(`edu`,单位:年)和收入(`income`,单位:万元)对工作满意度(`satisfaction`:1=低, 2=中, 3=高)的影响。 ##### **模型代码** ```r library(MASS) model <- polr(satisfaction ~ edu + income, data = survey_data, Hess = TRUE) summary(model) exp(coef(model)) # 计算OR值 ``` ##### **输出结果** ```r Coefficients: Value Std. Error t value edu 0.19876 0.05673 3.504 income 0.00345 0.00102 3.382 Threshold coefficients: 1|2 2|3 -2.345 1.678 ``` ##### **逐步解释** 1. **系数方向**: - `edu`和`income`均为正,说明教育年限和收入越高,满意度趋向更高类别(如从“中”升到“高”)。 2. **OR值计算**: ```r exp(coef(model)) # edu: 1.219, income: 1.003 ``` - `edu=1.219`:教育年限每增加1年,满意度处于更高类别的优势增加21.9%。 3. **显著性判断**: - `edu`的P值=0.0005(通过计算),远小于0.05,影响显著。 - `income`的P值=0.0007,同样显著。 --- #### **四、重要注意事项** 1. **比例优势假设(Proportional Odds Assumption)** 要求所有自变量的系数在不同类别间相同。检验方法: ```r library(brant) brant::brant(model) # 若P值>0.05,假设成立 ``` - 若假设不成立,需改用**部分比例优势模型**(如`VGAM`包的`vglm()`函数)。 2. **样本量要求** - 每个因变量类别的样本量建议≥10,避免模型不稳定。 3. **结果可视化** - 使用`effects`包绘制累积概率曲线: ```r library(effects) plot(Effect(focal.predictors = "edu", model)) ``` --- #### **五、总结** 有序Logistic回归结果的解释重点: - **系数方向**:判断自变量如何影响因变量类别。 - **OR值**:量化影响强度。 - **显著性**:确认影响的统计学意义。 - **阈值**:理解类别分割点(通常无需单独解释)。 通过结合领域知识验证结果合理性,并始终检查模型假设是否满足。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值