如果我执行命令
my_reg = LinearRegression()
lin.reg.fit(X,Y)
我训练我的模型。据我了解,训练模型是计算系数估计量。
我真的不明白这和例如之间的区别
scipy.stats.linregress(X,Y)
计算一个“正态”回归,它也给了我系数估计量和与之相关的所有其他统计数据。
谁能告诉我这里有什么区别?
如果我执行命令
my_reg = LinearRegression()
lin.reg.fit(X,Y)
我训练我的模型。据我了解,训练模型是计算系数估计量。
我真的不明白这和例如之间的区别
scipy.stats.linregress(X,Y)
计算一个“正态”回归,它也给了我系数估计量和与之相关的所有其他统计数据。
谁能告诉我这里有什么区别?
它们都解决了完全相同的目标,即最小化均方误差。然而,第二种方法可以回答“斜率不为零的自信程度,即 与 ?” 通过 p 值。
详细
让我们将数据表示为 . 回归为.
返回的额外数量scipy.stats.linregress(X,Y)是:rvalue () 和 pvalue ()。
在统计中,(称为r-squared)测量“拟合优度”。也就是说,作为回归更接近观察,越来越接近. 因为它是一个函数和,也可以用第一种方法计算。所以这里没有区别。
然而,特定于第二种方法。scipy.stats.linregress(X,Y)向噪声添加正态假设,即假设在哪里
例如,假设估计的斜率是对于这两种方法,我们仍然无法判断这个斜率是否显着或实际上是独立于. 除非我们看价值. 例如,对于我们有信心(在显着性水平) 那 与 , 但对于我们不能自信,即斜率可能是由于机会和可能独立于.
此链接提供了有关如何在第二种方法中实际计算 p 值的更多详细信息。
在概念意义上没有区别 - 两种方法都计算线性回归系数。不同之处在于界面 - 通过scipy.stats您直接获得系数(并且由您将它们放入方程来计算预测),scikit-learn将它们包装到模型对象中,以便您可以以类似的方式使用它其他 ML 模型,例如决策树。(实际上,您可以使用 获得拟合scikit-learn模型的回归系数my_reg.coef_。)