线性回归

具有独立同分布误差的线性模型,以及具有异方差性或自相关性的误差。该模块允许通过普通最小二乘法(OLS)、加权最小二乘法(WLS)、广义最小二乘法(GLS)以及具有自相关AR(p)误差的可行广义最小二乘法进行估计。

查看模块参考以获取命令和参数。

示例

# Load modules and data
In [1]: import numpy as np

In [2]: import statsmodels.api as sm

In [3]: spector_data = sm.datasets.spector.load()

In [4]: spector_data.exog = sm.add_constant(spector_data.exog, prepend=False)

# Fit and summarize OLS model
In [5]: mod = sm.OLS(spector_data.endog, spector_data.exog)

In [6]: res = mod.fit()

In [7]: print(res.summary())
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  GRADE   R-squared:                       0.416
Model:                            OLS   Adj. R-squared:                  0.353
Method:                 Least Squares   F-statistic:                     6.646
Date:                   三, 16 10 2024   Prob (F-statistic):            0.00157
Time:                        18:43:13   Log-Likelihood:                -12.978
No. Observations:                  32   AIC:                             33.96
Df Residuals:                      28   BIC:                             39.82
Df Model:                           3                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
GPA            0.4639      0.162      2.864      0.008       0.132       0.796
TUCE           0.0105      0.019      0.539      0.594      -0.029       0.050
PSI            0.3786      0.139      2.720      0.011       0.093       0.664
const         -1.4980      0.524     -2.859      0.008      -2.571      -0.425
==============================================================================
Omnibus:                        0.176   Durbin-Watson:                   2.346
Prob(Omnibus):                  0.916   Jarque-Bera (JB):                0.167
Skew:                           0.141   Prob(JB):                        0.920
Kurtosis:                       2.786   Cond. No.                         176.
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

详细的示例可以在这里找到:

技术文档

假设统计模型为

\(Y = X\beta + \epsilon\), 其中 \(\epsilon\sim N\left(0,\Sigma\right).\)

根据\(\Sigma\)的属性,我们目前有四个类别可用:

  • GLS : 广义最小二乘法用于任意协方差 \(\Sigma\)

  • OLS : 普通最小二乘法用于独立同分布误差 \(\Sigma=\textbf{I}\)

  • WLS : 异方差误差的加权最小二乘法 \(\text{diag}\left (\Sigma\right)\)

  • GLSAR : 具有自相关AR(p)误差的可行广义最小二乘法 \(\Sigma=\Sigma\left(\rho\right)\)

所有回归模型定义了相同的方法并遵循相同的结构,可以以相似的方式使用。其中一些模型包含额外的特定于模型的方法和属性。

GLS 是其他回归类的超类,除了 RecursiveLS、RollingWLS 和 RollingOLS。

参考文献

回归模型的通用参考:

  • D.C. Montgomery 和 E.A. Peck. “线性回归分析导论”。第2版,Wiley,1992年。

回归模型的计量经济学参考资料:

  • R.Davidson 和 J.G. MacKinnon。《计量经济学理论与方法》,牛津,2004年。

  • W.格林。 “计量经济学分析”,第5版,培生教育,2003年。

属性

以下是对属性更为详细的描述,这些属性大多适用于所有回归类

pinv_wexogarray

白化设计矩阵的 p x n Moore-Penrose 伪逆。 它近似等于 \(\left(X^{T}\Sigma^{-1}X\right)^{-1}X^{T}\Psi\),其中 \(\Psi\) 定义为 \(\Psi\Psi^{T}=\Sigma^{-1}\)

cholsimgainvarray

满足 \(\Psi\Psi^{T}=\Sigma^{-1}\)n x n 上三角矩阵 \(\Psi^{T}\)

df_modelfloat

模型的自由度。这等于p - 1,其中p是回归变量的数量。请注意,截距在这里不被视为使用了一个自由度。

df_residfloat

残差的自由度。这等于n - p,其中n是观测值的数量,p是参数的数量。请注意,截距在这里被视为使用了一个自由度。

llffloat

拟合模型的似然函数值。

nobsfloat

观测值的数量 n

normalized_cov_paramsarray

一个 p x p 的数组,等于 \((X^{T}\Sigma^{-1}X)^{-1}\)

sigmaarray

误差项的 n x n 协方差矩阵: \(\epsilon\sim N\left(0,\Sigma\right)\)

wexogarray

白化的设计矩阵 \(\Psi^{T}X\)

wendogarray

白化的响应变量 \(\Psi^{T}Y\)

模块参考

模型类

OLS(endog[, exog, missing, hasconst])

普通最小二乘法

GLS(endog, exog[, sigma, missing, hasconst])

广义最小二乘法

WLS(endog, exog[, weights, missing, hasconst])

加权最小二乘法

GLSAR(endog[, exog, rho, missing, hasconst])

具有AR协方差结构的一般最小二乘法

yule_walker(x[, order, method, df, inv, demean])

使用Yule-Walker方程从序列中估计AR(p)参数。

burg(endog[, order, demean])

计算Burg的AP(p)参数估计量。

QuantReg(endog, exog, **kwargs)

分位数回归

RecursiveLS(endog, exog[, constraints])

递归最小二乘法

RollingWLS(endog, exog[, window, weights, ...])

滚动加权最小二乘法

RollingOLS(endog, exog[, window, min_nobs, ...])

滚动普通最小二乘法

GaussianCovariance()

使用高斯核的ProcessCovariance实现。

ProcessMLE(endog, exog, exog_scale, ...[, cov])

拟合一个高斯均值/方差回归模型。

SlicedInverseReg(endog, exog, **kwargs)

切片逆回归 (SIR)

PrincipalHessianDirections(endog, exog, **kwargs)

主海森方向 (PHD)

SlicedAverageVarianceEstimation(endog, exog, ...)

切片平均方差估计(SAVE)

结果类

拟合线性回归模型会返回一个结果类。OLS有一个特定的结果类,相比于其他线性模型的结果类,它具有一些额外的方法。

RegressionResults(model, params[, ...])

此类总结了线性回归模型的拟合情况。

OLSResults(model, params[, ...])

OLS模型的结果类。

PredictionResults(predicted_mean, ...[, df, ...])

预测结果的类。

RegularizedResults(模型, 参数)

使用正则化估计模型的结果

QuantRegResults(model, params[, ...])

QuantReg模型的结果实例

RecursiveLSResults(model, params, filter_results)

用于保存递归最小二乘模型拟合结果的类。

RollingRegressionResults(模型, 存储, ...)

滚动回归的结果

ProcessMLEResults(model, mlefit)

高斯过程回归模型的结果类。

DimReductionResults(model, params, eigs)

用于降维回归的结果类。


Last update: Oct 16, 2024