概率和普通最小二乘回归输出之间的差异

数据挖掘 机器学习 线性回归
2021-09-30 19:10:10

如果我执行命令

my_reg = LinearRegression()
lin.reg.fit(X,Y)

我训练我的模型。据我了解,训练模型是计算系数估计量。

我真的不明白这和例如之间的区别

scipy.stats.linregress(X,Y)

计算一个“正态”回归,它也给了我系数估计量和与之相关的所有其他统计数据。

谁能告诉我这里有什么区别?

2个回答

它们都解决了完全相同的目标,即最小化均方误差。然而,第二种方法可以回答“斜率不为零的自信程度,即YX?” 通过 p 值。

详细

让我们将数据表示为 (X,Y)={(xn,yn)|xnRD,ynR}. 回归为y^=Ax+B.

返回的额外数量scipy.stats.linregress(X,Y)是:rvalue (r) 和 pvalue (p)。

在统计中,r2(称为r-squared)测量“拟合优度”。也就是说,作为回归y^=Ax+B更接近观察y,r2越来越接近1. 因为它是一个函数yy^,也可以用第一种方法计算。所以这里没有区别。

然而,p特定于第二种方法。scipy.stats.linregress(X,Y)向噪声添加正态假设,即假设ϵN(0,σ2)在哪里

ϵ=yAx+By^
在这个假设的基础上,它可以回答一个额外的问题:“斜率不为零的信心有多大?”。第一种方法无法回答这个问题。

例如,假设估计的斜率是2.1对于这两种方法,我们仍然无法判断这个斜率是否显着或Y实际上是独立于X. 除非我们看价值p. 例如,对于p<0.01我们有信心(在显着性水平0.01) 那YX, 但对于p>0.1我们不能自信,即斜率2.1可能是由于机会和Y可能独立于X.

此链接提供了有关如何在第二种方法中实际计算 p 值的更多详细信息。

在概念意义上没有区别 - 两种方法都计算线性回归系数。不同之处在于界面 - 通过scipy.stats您直接获得系数(并且由您将它们放入方程来计算预测),scikit-learn将它们包装到模型对象中,以便您可以以类似的方式使用它其他 ML 模型,例如决策树。(实际上,您可以使用 获得拟合scikit-learn模型的回归系数my_reg.coef_。)