📜  使用 statsmodels 的普通最小二乘法 (OLS)(1)

📅  最后修改于: 2023-12-03 15:36:34.449000             🧑  作者: Mango

使用 statsmodels 的普通最小二乘法 (OLS)


statsmodels 是 Python 中的一个模块,它提供了很多统计模型的分析方法,包括线性回归、时间序列分析等等。在这里,我们将介绍如何使用 statsmodels 的普通最小二乘法(OLS)来进行线性回归分析。

1. 安装 statsmodels

使用 pip 可以在命令行中安装 statsmodels。

pip install statsmodels
2. 导入模块

要使用 statsmodels,需要导入模块 statsmodels.api。

import statsmodels.api as sm
3. 准备数据

在进行线性回归分析之前,需要准备一些数据。在这里,我们使用一个简单的示例数据:

import numpy as np

# 生成随机数据
np.random.seed(0)
x = np.random.rand(100)
y = 1 + 2*x + np.random.rand(100)
4. 进行线性回归分析

使用 OLS 方法进行线性回归分析。在这里,我们只需要传递 x 和 y 作为参数即可。

# 添加常数项
x = sm.add_constant(x)

# 进行线性回归分析
model = sm.OLS(y, x).fit()
5. 分析结果

现在你已经拟合好了线性回归模型,并且可以使用 model.summary() 方法来查看分析结果。

print(model.summary())

这将会打印出如下所示的分析结果:

                            OLS Regression Results                            
==============================================================================
Dep. Variable:                      y   R-squared:                       0.797
Model:                            OLS   Adj. R-squared:                  0.795
Method:                 Least Squares   F-statistic:                     397.6
Date:                Tue, 08 Dec 2020   Prob (F-statistic):           1.58e-36
Time:                        10:10:49   Log-Likelihood:                -15.029
No. Observations:                 100   AIC:                             34.06
Df Residuals:                      98   BIC:                             39.09
Df Model:                           1                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef.        std.err      t       P>|t|     [0.025     0.975]
------------------------------------------------------------------------------
const          1.0797       0.037      29.148   0.000      1.007      1.152
x1             2.0017       0.100      19.940   0.000      1.804      2.200
------------------------------------------------------------------------------
Omnibus:                        1.044   Durbin-Watson:                   1.903
Prob(Omnibus):                  0.593   Jarque-Bera (JB):                0.940
Skew:                          -0.227   Prob(JB):                        0.625
Kurtosis:                       2.904   Cond. No.                         3.34
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
[2] The condition number is large, 3.34e+00. This might indicate that there are
strong multicollinearity or other numerical problems.

其中,你可以看到的一些重要内容如下:

  • Dep. Variable: 被解释的变量(y)
  • R-squared: 决定系数
  • Adj. R-squared: 调整决定系数
  • coef.: 系数
  • std.err: 标准误差
  • t: t 统计量
  • P>|t|: P 值
6. 结论

现在,你已经知道了如何使用 statsmodels 中的 OLS 方法来进行线性回归分析。如果你想更深入地了解该模块的用法,可以查看它的官方文档。

参考资料:

  • https://www.statsmodels.org/stable/index.html
  • https://www.statsmodels.org/stable/regression.html