逻辑回归和 logit 线性回归估计的系数何时不同?

机器算法验证 r 回归 物流
2022-03-01 08:09:08

当模拟连续比例时(例如调查样方的比例植被覆盖,或从事某项活动的时间比例),逻辑回归被认为是不合适的(例如Warton & Hui (2011) The arcsine is asinine: the analysis of ratios in Ecology)。相反,对比例进行 logit 转换后的 OLS 回归,或者可能是 beta 回归,更合适。

lm使用 R和时,logit 线性回归和逻辑回归的系数估计值在什么条件下不同glm

以下面的模拟数据集为例,我们可以假设这p是我们的原始数据(即连续比例,而不是表示):nsuccessesntrials

set.seed(1)
x <- rnorm(1000)
a <- runif(1)
b <- runif(1)
logit.p <- a + b*x + rnorm(1000, 0, 0.2)
p <- plogis(logit.p)

plot(p ~ x, ylim=c(0, 1))

在此处输入图像描述

拟合一个 logit 线性模型,我们得到:

summary(lm(logit.p ~ x))
## 
## Call:
## lm(formula = logit.p ~ x)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.64702 -0.13747 -0.00345  0.15077  0.73148 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 0.868148   0.006579   131.9   <2e-16 ***
## x           0.967129   0.006360   152.1   <2e-16 ***
## ---
## Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
## 
## Residual standard error: 0.208 on 998 degrees of freedom
## Multiple R-squared:  0.9586, Adjusted R-squared:  0.9586 
## F-statistic: 2.312e+04 on 1 and 998 DF,  p-value: < 2.2e-16

逻辑回归产生:

summary(glm(p ~ x, family=binomial))
## 
## Call:
## glm(formula = p ~ x, family = binomial)
## 
## Deviance Residuals: 
##      Min        1Q    Median        3Q       Max  
## -0.32099  -0.05475   0.00066   0.05948   0.36307  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  0.86242    0.07684   11.22   <2e-16 ***
## x            0.96128    0.08395   11.45   <2e-16 ***
## ---
## Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 176.1082  on 999  degrees of freedom
## Residual deviance:   7.9899  on 998  degrees of freedom
## AIC: 701.71
## 
## Number of Fisher Scoring iterations: 5
## 
## Warning message:
## In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!

逻辑回归系数估计相对于 logit 线性模型的估计是否总是无偏的?

2个回答

也许这可以以“反向”方式回答——即它们何时相同?

现在,逻辑回归中使用的 IRLS 算法在这里提供了一些见解。在收敛时,您可以将模型系数表示为:

β^logistic=(XTWX)1XTWz

在哪里W是第 i 项的对角权重矩阵Wii=nipi(1pi)z是具有第 i 个元素的伪响应zi=xiTβ^logistic+yinipinipi(1pi). 注意var(zixiTβ^)=Wii1这使得逻辑回归看起来与“logit 类型”数量的加权最小二乘非常相似。请注意,所有关系都隐含在逻辑回归中(例如z取决于β这取决于z)。

因此,我建议区别主要在于使用加权最小二乘(逻辑)与未加权最小二乘(逻辑上的 ols)。如果你加权 logitslog(y)log(ny)经过y(1y/n)(在哪里y是“事件”的数量和n通话中的“试验”次数),lm ()您将获得更多相似的结果。

如果我错了,请随时指出。

首先,我有话要说,在第二次合体中,你叫glm错了方式!要通过 拟合逻辑回归glm,响应应该是(二元)分类变量,但您使用p的是数字变量!我不得不说warning太温柔了,让用户知道他们的错误......

而且,正如您所料,您仅通过 COINCIDENCE 就可以通过两次拟合获得相似的系数估计值。如果换成logit.p <- a + b*x + rnorm(1000, 0, 0.2)logit.p <- a + b*x + rnorm(1000, 0, 0.7)即把误差项的方差从 改成0.20.7那么两次拟合的结果会有很大的不同,虽然第二次拟合(glm)根本没有意义……

逻辑回归用于(二元)分类,因此您应该有分类响应,如上所述。例如,响应的观察应该是一系列“成功”或“失败”,而不是像您的数据中的一系列“概率(频率)”。对于给定的分类数据集,您只能计算“response=success”或“response=failure”的一个总体频率,而不是一个系列。在您生成的数据中,根本没有分类变量,因此无法应用逻辑回归。现在您可以看到,虽然它们具有相似的外观,但对数线性回归(正如您所说的那样)只是一个普通的线性回归问题(即响应是一个数字变量),使用转换后的响应(就像 sqr 或 sqrt 转换),

通常,线性回归是通过普通最小二乘法 (OLS) 拟合的,这可以最大限度地减少回归问题的平方损失;逻辑回归通过最大似然估计 (MLE) 进行拟合,从而最大限度地减少分类问题的对数损失。这是关于损失函数Loss Function, Deva Ramanan 的参考。 在第一个示例中,您将p其视为响应,并通过 OLS 拟合一个普通的线性回归模型;在第二个示例中,您告诉R您正在通过 拟合逻辑回归模型family=binomial,因此R通过 MLE 拟合模型。如您所见,在第一个模型中,您得到 t 检验和 F 检验,它们是 OLS 的经典输出,适合线性回归。在第二个模型中,系数的显着性检验是基于z而不是t,这是逻辑回归的 MLE 拟合的经典输出。