.L, .Q., .C, .4… 逻辑回归的解释
Interpretation of .L, .Q., .C, .4… for logistic regression
我已经进行了大量的谷歌搜索,但解释要么没有任何意义,要么他们说只使用因子而不是序数数据。我知道 ``.Lis linear,
.Q` 是二次方的,...等等。但我不知道如何真正表达它的意思。例如,让我们说
Primary.L 7.73502 0.984
Primary.Q 6.81674 0.400
Primary.C -4.07055 0.450
Primary^4 1.48845 0.600
其中第一列是变量,第二列是估计值,第三列是 p 值。当变量按顺序增加时,我会说什么?这基本上是在说我将使用什么模型,所以这将是 7.73502x + 6.81674x^2 - 4.07055x^3
模型是怎样的?还是只包括二次?这一切都令人困惑。如果有人能阐明如何解释这些 .L
、.Q
、.C
等,那就太好了。
例子
> summary(glm(DEPENDENT ~ Year, data = HAVE, family = "binomial"))
Call:
glm(formula = DEPENDENT ~ Year, family = "binomial", data = HAVE)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.3376 -0.2490 -0.2155 -0.1635 3.1802
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.572966 0.028179 -126.798 < 2e-16 ***
Year.L -2.212443 0.150295 -14.721 < 2e-16 ***
Year.Q -0.932844 0.162011 -5.758 8.52e-09 ***
Year.C 0.187344 0.156462 1.197 0.2312
Year^4 -0.595352 0.147113 -4.047 5.19e-05 ***
Year^5 -0.027306 0.135214 -0.202 0.8400
Year^6 -0.023756 0.120969 -0.196 0.8443
Year^7 0.079723 0.111786 0.713 0.4757
Year^8 -0.080749 0.103615 -0.779 0.4358
Year^9 -0.117472 0.098423 -1.194 0.2327
Year^10 -0.134956 0.095098 -1.419 0.1559
Year^11 -0.106700 0.089791 -1.188 0.2347
Year^12 0.102289 0.088613 1.154 0.2484
Year^13 0.125736 0.084283 1.492 0.1357
Year^14 -0.009941 0.084058 -0.118 0.9059
Year^15 -0.173013 0.088781 -1.949 0.0513 .
Year^16 -0.146597 0.090398 -1.622 0.1049
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 18687 on 80083 degrees of freedom
Residual deviance: 18120 on 80067 degrees of freedom
AIC: 18154
Number of Fisher Scoring iterations: 7
该输出表明您的预测变量 Year
是一个 "ordered factor",这意味着 R 不仅将该变量内的观察值理解为不同的类别或组(即一个因子),而且还认为各种类别对他们有一个自然的顺序,其中一个类别被认为比另一个类别大。
在这种情况下,R 的默认设置是拟合一系列多项式函数或对比变量的水平。第一个是线性 (.L),第二个是二次 (.Q),第三个是三次 (.C),依此类推。 R 将拟合比可用级别数少一个的多项式函数。因此,您的输出表明您的数据中有 17 个不同的年份。
您可能会将输出中的那 17 个(计算截距)预测变量视为完全基于原始变量顺序的全新变量,因为 R 使用使所有新预测变量正交的特殊值创建它们(即,不相关,线性独立或不相关)彼此。
查看已使用值的一种方法是在模型对象上使用 model.matrix()
函数。
model.matrix(glm(DEPENDENT ~ Year, data = HAVE, family = "binomial"))
如果您 运行 以上内容,您会在每个新变量列中发现一堆重复的数字,其中重复的变化对应于原始 Year
预测器切换类别的位置。特定值本身对您没有任何实际意义,因为它们 chosen/computed 由 R 使所有对比度彼此线性独立。
因此,您在 R 输出中的模型将是:
logit(p) = -3.57 + -2.21 * Year.L + -0.93 * Year.Q + ... + -0.15 * 年^16
其中 p 是感兴趣特征的存在概率,logit 变换定义为对数赔率,其中赔率 = p / (1 - p) 并且对数赔率 = ln(odds)。因此 logit(p) = ln(p / (1 - p)).
然后将特定 Beta 测试的解释概括为:哪些对比有助于显着解释因变量中水平之间的差异?因为您的 Year.L
预测变量显着且为负,这表明多年来 logit 呈线性下降趋势,并且由于您的 Year.Q
预测变量显着且为负,这表明在 logit 模式中可检测到减速趋势跨年。三阶多项式模型 jerk, and fourth order polynomials model jounce (a.k.a., snap)。但是,我会停止围绕这个顺序和更高顺序进行解释,因为它很快就会变得对实际的人来说毫无意义。
同样,解释特定的 beta 估计值对我来说有点荒谬,但与在给定的对比水平(例如,二次方)下,您的结果中切换类别的几率减去一个单位等于对 beta 估计取幂的几率比。对于您示例中的二次对比,比值比为 exp(-0.9328)
= 0.3935,但我说这有点荒谬,因为这些单位没有什么实际意义,因为它们是由 R 选择的,以使预测变量彼此线性独立.因此,我更喜欢关注给定对比测试的解释,而不是这种情况下的系数。
如需进一步阅读,这里是 UCLA 精彩的 IDRE 上的一个网页,其中讨论了 how to interpret odds ratios in logistic regression, and here is a crazy cool but intense stack exchange answer that walks through how R chooses the polynomial contrast weights。
我已经进行了大量的谷歌搜索,但解释要么没有任何意义,要么他们说只使用因子而不是序数数据。我知道 ``.Lis linear,
.Q` 是二次方的,...等等。但我不知道如何真正表达它的意思。例如,让我们说
Primary.L 7.73502 0.984
Primary.Q 6.81674 0.400
Primary.C -4.07055 0.450
Primary^4 1.48845 0.600
其中第一列是变量,第二列是估计值,第三列是 p 值。当变量按顺序增加时,我会说什么?这基本上是在说我将使用什么模型,所以这将是 7.73502x + 6.81674x^2 - 4.07055x^3
模型是怎样的?还是只包括二次?这一切都令人困惑。如果有人能阐明如何解释这些 .L
、.Q
、.C
等,那就太好了。
例子
> summary(glm(DEPENDENT ~ Year, data = HAVE, family = "binomial"))
Call:
glm(formula = DEPENDENT ~ Year, family = "binomial", data = HAVE)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.3376 -0.2490 -0.2155 -0.1635 3.1802
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.572966 0.028179 -126.798 < 2e-16 ***
Year.L -2.212443 0.150295 -14.721 < 2e-16 ***
Year.Q -0.932844 0.162011 -5.758 8.52e-09 ***
Year.C 0.187344 0.156462 1.197 0.2312
Year^4 -0.595352 0.147113 -4.047 5.19e-05 ***
Year^5 -0.027306 0.135214 -0.202 0.8400
Year^6 -0.023756 0.120969 -0.196 0.8443
Year^7 0.079723 0.111786 0.713 0.4757
Year^8 -0.080749 0.103615 -0.779 0.4358
Year^9 -0.117472 0.098423 -1.194 0.2327
Year^10 -0.134956 0.095098 -1.419 0.1559
Year^11 -0.106700 0.089791 -1.188 0.2347
Year^12 0.102289 0.088613 1.154 0.2484
Year^13 0.125736 0.084283 1.492 0.1357
Year^14 -0.009941 0.084058 -0.118 0.9059
Year^15 -0.173013 0.088781 -1.949 0.0513 .
Year^16 -0.146597 0.090398 -1.622 0.1049
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 18687 on 80083 degrees of freedom
Residual deviance: 18120 on 80067 degrees of freedom
AIC: 18154
Number of Fisher Scoring iterations: 7
该输出表明您的预测变量 Year
是一个 "ordered factor",这意味着 R 不仅将该变量内的观察值理解为不同的类别或组(即一个因子),而且还认为各种类别对他们有一个自然的顺序,其中一个类别被认为比另一个类别大。
在这种情况下,R 的默认设置是拟合一系列多项式函数或对比变量的水平。第一个是线性 (.L),第二个是二次 (.Q),第三个是三次 (.C),依此类推。 R 将拟合比可用级别数少一个的多项式函数。因此,您的输出表明您的数据中有 17 个不同的年份。
您可能会将输出中的那 17 个(计算截距)预测变量视为完全基于原始变量顺序的全新变量,因为 R 使用使所有新预测变量正交的特殊值创建它们(即,不相关,线性独立或不相关)彼此。
查看已使用值的一种方法是在模型对象上使用 model.matrix()
函数。
model.matrix(glm(DEPENDENT ~ Year, data = HAVE, family = "binomial"))
如果您 运行 以上内容,您会在每个新变量列中发现一堆重复的数字,其中重复的变化对应于原始 Year
预测器切换类别的位置。特定值本身对您没有任何实际意义,因为它们 chosen/computed 由 R 使所有对比度彼此线性独立。
因此,您在 R 输出中的模型将是:
logit(p) = -3.57 + -2.21 * Year.L + -0.93 * Year.Q + ... + -0.15 * 年^16
其中 p 是感兴趣特征的存在概率,logit 变换定义为对数赔率,其中赔率 = p / (1 - p) 并且对数赔率 = ln(odds)。因此 logit(p) = ln(p / (1 - p)).
然后将特定 Beta 测试的解释概括为:哪些对比有助于显着解释因变量中水平之间的差异?因为您的 Year.L
预测变量显着且为负,这表明多年来 logit 呈线性下降趋势,并且由于您的 Year.Q
预测变量显着且为负,这表明在 logit 模式中可检测到减速趋势跨年。三阶多项式模型 jerk, and fourth order polynomials model jounce (a.k.a., snap)。但是,我会停止围绕这个顺序和更高顺序进行解释,因为它很快就会变得对实际的人来说毫无意义。
同样,解释特定的 beta 估计值对我来说有点荒谬,但与在给定的对比水平(例如,二次方)下,您的结果中切换类别的几率减去一个单位等于对 beta 估计取幂的几率比。对于您示例中的二次对比,比值比为 exp(-0.9328)
= 0.3935,但我说这有点荒谬,因为这些单位没有什么实际意义,因为它们是由 R 选择的,以使预测变量彼此线性独立.因此,我更喜欢关注给定对比测试的解释,而不是这种情况下的系数。
如需进一步阅读,这里是 UCLA 精彩的 IDRE 上的一个网页,其中讨论了 how to interpret odds ratios in logistic regression, and here is a crazy cool but intense stack exchange answer that walks through how R chooses the polynomial contrast weights。