Pandas 用Data Frame进行OLS回归分析
在本文中,我们将介绍如何使用Pandas Data Frame进行OLS(普通最小二乘回归)分析。
阅读更多:Pandas 教程
OLS回归的基本概念
OLS回归是一种广泛使用的线性回归方法,它试图最小化实际观测值和模型预测值之间的残差和。OLS回归的基本方程式是:
y = \alpha + \beta_1x_1 + \beta_2x_2 + … + \beta_nx_n + \epsilon
其中,y是因变量,x_i是自变量,\alpha是截距,\beta_i是自变量系数,\epsilon是误差项。
使用Pandas Data Frame进行OLS回归
在Python中,我们可以使用Pandas Data Frame来构建OLS回归模型。首先,我们需要导入必要的库:
import pandas as pd
import statsmodels.api as sm
然后,我们需要准备用于回归分析的数据。在本例中,我们将使用一个简单的数据集,其中包含两个变量“Salary(工资)”和“Experience(工作经验)”。假设我们要分析这两个变量之间的关系。
# 创建数据框
data = {'Salary': [50, 60, 70, 80, 90],
'Experience': [1, 2, 3, 4, 5]}
df = pd.DataFrame(data)
接下来,我们需要定义因变量和自变量:
# 定义因变量和自变量
y = df['Salary']
X = sm.add_constant(df['Experience'])
在这里,我们使用了add_constant()
函数为自变量添加了一个常数项,以便OLS模型计算截距。
然后,我们可以使用statsmodels
库中的OLS()
函数来创建一个OLS模型,并使用fit()
方法来拟合数据:
# 创建OLS模型并拟合数据
model = sm.OLS(y, X).fit()
最后,我们可以使用summary()
方法来查看回归模型的摘要:
# 查看回归模型摘要
print(model.summary())
运行以上代码,最后将得到类似于以下的输出:
OLS Regression Results
==============================================================================
Dep. Variable: Salary R-squared: 0.975
Model: OLS Adj. R-squared: 0.960
Method: Least Squares F-statistic: 65.38
Date: Wed, 15 Sep 2021 Prob (F-statistic): 0.0173
Time: 14:47:23 Log-Likelihood: -5.3717
No. Observations: 5 AIC: 14.74
Df Residuals: 3 BIC: 13.74
Df Model: 1
Covariance Type: nonrobust
================================================================================
coef std err t P>|t| [0.025 0.975]
--------------------------------------------------------------------------------
const 45.0000 1.118 40.257 0.000 41.144 48.856
Experience 10.0000 1.236 8.078 0.017 3.727 16.273
==============================================================================
Omnibus: nan Durbin-Watson: 2.400
Prob(Omnibus): nan Jarque-Bera (JB): 0.515
Skew: -0.203 Prob(JB): 0.773
Kurtosis: 1.511 Cond. No. 6.00
==============================================================================
Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
[2] The condition number is large, 6. This might indicate that there are
strong multicollinearity or other numerical problems.
从上面的输出中,我们可以获得以下信息:
- 通常情况下,我们会查看R平方值和调整R平方值来判断模型的拟合程度。在本例中,R平方为0.975,调整R平方为0.960,这表明该模型可以很好地解释工资与工作经验之间的变化。
- F值(65.38)和F检验(0.0173)也是衡量模型质量的指标,它们表明该模型具有显著性。
- 截距项与自变量系数的值也给出了关于回归模型的信息,例如在本例中,截距项(常数项)的值为45,表明在工作经验为0时,工资的预期值为45。自变量系数的值为10,表明每增加一年的工作经验,工资预期增加10。
我们还可以使用model.summary2()
方法查看更详细和美观的输出。
总结
本文介绍了如何使用Pandas Data Frame进行OLS回归分析。我们首先介绍了OLS回归的基本概念,然后展示了如何使用Python中的Pandas Data Frame和statsmodels库来构建和评估OLS回归模型。在实际应用中,我们可以根据数据集和研究问题定制适当的OLS模型。