本文适用对象:
- 具备数据,需要研究某个被解释变量和多个解释变量之间的关系
- 对python不太熟悉,但是具有浓厚兴趣(否则会选择更简单的工具,如Eviews,stata等)
话不多说,直接切入主题。
首先,我们要大致了解多元线性回归的一般步骤:
- 数据导入和清洗
- 首次回归
- 检测多重共线性,再次回归
- 检测异方差性,再次回归
- 最后,得到一个相对不错的结果。本人后期将更新“内生解释变量问题”的python解决
下面给大家直接上代码,里面给出了详细的注释。如有错误请私信指正!
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.formula.api import ols
#数据读取
def dataImport(fileName):
_path="D:/PythonProjects/Data/"
data=pd.read_excel(_path+fileName+'.xlsx')
return data
#方差膨胀因子检测
def vif(df,col_i):
'''
:param df: 整份数据
:param col_i: 被检测的因子
:return:方差膨胀因子
'''
cols=list(df.columns)
cols.remove(col_i)
formula=col_i+'~'+'+'.join(cols)
r2=ols(formula,df).fit().rsquared
return 1./(1.-r2)
def main():
#导入数据,并简要查看数据
df=dataImport('exercise02')
print(df.info())
print(df.head())