手动计算逻辑回归系数

机器算法验证 回归 物流 优势比
2022-03-17 22:21:56

我从 wiki 拿这个简短的例子:https ://en.wikipedia.org/wiki/Logistic_regression

Hours   |  Pass
--------|-------
0.50    |   0
0.75    |   0
1.00    |   0
1.25    |   0
1.50    |   0
1.75    |   0
1.75    |   1
2.00    |   0
2.25    |   1
2.50    |   0
2.75    |   1
3.00    |   0
3.25    |   1
3.50    |   0
4.00    |   1
4.25    |   1
4.50    |   1
4.75    |   1
5.00    |   1
5.50    |   1

我正在尝试手动计算截距和系数。

该算法如何计算每个点的几率对数以拟合线性回归?如果我尝试计算赔率对数,我会遇到 log(0) 或 log(infinity) 的情况。有人可以帮忙吗?

1个回答

你是对的,虽然你应该能够在 logit 空间中计算 OLS 系数估计,但你不能直接这样做,因为 logit要么到另一个困难是该模型中的方差取决于g(y)=logp1py=0y=1x

逻辑回归的可能性通过称为迭代重加权最小二乘(IRLS) 的算法进行优化。Shalizi 的 Advanced Data Analysis from an Elementary Point of View中有一个很好的细分,我从中获得了以下详细信息:

  • 为了处理无限 logit 问题,围绕点进行一阶泰勒近似,使得由于的定义是,所以把它放在那里而不是并说你的有效响应g(y)pg(y)g(p)+(yp)g(p)g(p)β0+βxg(p)z=β0+βx+(yp)g(p)
  • 计算方差使用它来加权您的样本,以便您可以简单地进行加权回归。V[Z|X=x]=V[(Yp)g(p)|X=x]=g(p)2V(p)zx

此时,您可能会问自己如何使用您尝试估计的回归系数来计算有效响应你当然不能。什么是呢?这就是 IRLS 的迭代部分的用武之地:您从对的一些猜测开始,例如将它们全部设置为 0。由此您可以首先计算拟合概率,然后使用这些拟合概率和当前系数估计来计算zpβ pz

所有这一切,你得到了一个对你的的新估计,它应该更接近正确的估计,但可能不是正确的估计。所以你迭代:使用新的系数来计算新的拟合概率,计算新的有效响应,新的权重,然后再去。迟早,除非你不走运 s 会收敛到一个不错的估计。沙利兹说:ββ

上面的处理是相当启发式的,但结果证明它等效于使用牛顿法,只是使用对数似然的预期二阶导数,而不是其实际值。

总而言之:您永远不会直接使用 logit,因为正如您所指出的那样,这是不切实际的。您当然可以手动计算逻辑回归系数,但这并不好玩。