线性回归

线性模型,其误差独立同分布,并适用于具有异方差或自相关性的误差。此模块允许通过普通最小二乘 (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:                Thu, 03 Oct 2024   Prob (F-statistic):            0.00157
Time:                        16:15:31   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 版。Ed., Wiley, 1992。

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

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

  • W.Green。“计量经济学分析”,第 5 版,Pearson,2003 年。

属性

以下是对所有回归类大多通用的属性的更详细说明

pinv_wexogarray

白化设计矩阵的 p x n 摩尔-彭罗斯伪逆。它近似等于 \(\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)

主Hessian方向 (PHD)

SlicedAverageVarianceEstimation(endog, exog, ...)

切片平均方差估计 (SAVE)

结果类

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

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

此类概括了线性回归模型的拟合结果。

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

OLS 模型的结果类。

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

预测结果类。

RegularizedResults(model, params)

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

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

QuantReg 模型的结果实例

RecursiveLSResults(model, params, filter_results)

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

RollingRegressionResults(model, store, ...)

滚动回归的结果

ProcessMLEResults(model, mlefit)

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

DimReductionResults(model, params, eigs)

降维回归的结果类。


最后更新时间:2024 年 10 月 3 日