gpt4 book ai didi

python - scipy.stats.linregress、numpy.polynomial.polynomial.polyfit 和 statsmodels.api.OLS 之间的差异

转载 作者:太空狗 更新时间:2023-10-29 18:02:17 26 4
gpt4 key购买 nike

这三个函数似乎都可以做简单的线性回归,例如

scipy.stats.linregress(x, y)

numpy.polynomial.polynomial.polyfit(x, y, 1)

x = statsmodels.api.add_constant(x)
statsmodels.api.OLS(y, x)

我想知道这三种方法之间是否有任何真正的区别?我知道 statsmodels 是建立在 scipy 之上的,而 scipy 在很多方面都依赖于 numpy,所以我希望它们不会有太大差异,但细节决定成败。

更具体地说,如果我们使用上面的numpy方法,我们如何获得其他两种方法默认给出的斜率的p-value

我在 Python 3 中使用它们,如果这有什么不同的话。

最佳答案

对于只有一个解释变量的非常简单的例子,这三者非常不同但在参数估计方面有重叠。

通过增加通用性:

scipy.stats.linregress 仅处理带有专门代码的单个解释变量的情况,并计算一些额外的统计数据。

numpy.polynomial.polynomial.polyfit 估计单个变量的多项式的回归,但不会在额外统计方面返回太多。

statsmodels OLS 是一个通用线性模型 (OLS) 估计类。它不预先指定解释变量是什么,并且可以处理任何解释变量的多元数组,或公式和 pandas DataFrame。它不仅返回估计的参数,还返回大量的结果统计和统计推断和预测的方法。

为了在 Python 中估计线性模型的选项的完整性(贝叶斯分析之外),我们还应该考虑 scikit-learn LinearRegression 和类似的线性模型,它们很有用用于在大量解释变量中进行选择,但没有 statsmodels 提供的大量结果。

关于python - scipy.stats.linregress、numpy.polynomial.polynomial.polyfit 和 statsmodels.api.OLS 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31126698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com