第七节 线性回归模型入门

相关和回归的区别:回归是一种趋势考察,相关是一种紧密性的考察,从散点图看,点越分散程度表现为相关性,点呈现的趋势表现为回归

线性模型的几个重要点

  独立性考察:wd检验

  正态性考察:对残差,但是也可以先看看自变量和因变量是否存在强烈偏态

  方差齐性考察:

  决定系数:即百分之多少的变异程度可由当前模型解释

  样本量的估算:经验值一般为纳入模型变量的20倍

  建模前应该先对每个因变量和自变量做散点图,观察趋势,是否呈线性,是否存在强影响点

  对于强影响点:是否数据出错,是否可以从专业性角度剔除,建立两个模型一个剔除强影响点一个不剔除看偏回归系数是否相差很大,计算杠杆率,考虑是否进行变量变换

  残差分析:如果残差图呈水平均匀带状表示没有问题,如果呈现喇叭形考虑变量变换,如果呈抛物线形则模型中可能存在高次项没有纳入模型

  从专业角度是否能解释该模型

dfreg = ccss.loc[:, ['s2', 's3', 'Qs9']]
dfreg['cons'] = 1
dfreg.replace(['', ''], [1, 2], inplace=True)  # 分类变量处理
from statsmodels.regression.linear_model import OLS
regmodel = OLS(ccss.index1, dfreg.s2, missing='drop').fit()
regmodel.summary()
OLS Regression Results
Dep. Variable: index1 R-squared: 0.853
Model: OLS Adj. R-squared: 0.853
Method: Least Squares F-statistic: 6638.
Date: Mon, 13 Apr 2020 Prob (F-statistic): 0.00
Time: 22:57:44 Log-Likelihood: -5789.6
No. Observations: 1147 AIC: 1.158e+04
Df Residuals: 1146 BIC: 1.159e+04
Df Model: 1    
Covariance Type: nonrobust    
  coef std err t P>|t| [0.025 0.975]
s2 59.3372 0.728 81.477 0.000 57.908 60.766

 

Omnibus: 106.498 Durbin-Watson: 1.752
Prob(Omnibus): 0.000 Jarque-Bera (JB): 34.103
Skew: -0.093 Prob(JB): 3.93e-08
Kurtosis: 2.176 Cond. No. 1.00

# 残差分析
resdf = pd.DataFrame({'fit':regmodel.fittedvalues,
                      'resid':regmodel.resid,
                      'zresid':regmodel.resid_pearson})  # regmodel.fittedvalues每个案列的预测值,regmodel.resid预测值和实测值之差,regmodel.resid_pearson标准化以后的残差
matplotlib.rcParams['font.sans-serif'] = ['Arial']
resdf.resid.plot.hist()
<matplotlib.axes._subplots.AxesSubplot at 0x1df81b9f898>
 
resdf.zresid.plot.hist()  # 标化后的残差在正负3之间表示没有问题,超过正负5有问题,在此之间可能存在问题
<matplotlib.axes._subplots.AxesSubplot at 0x1df86c525f8>
 
resdf.plot.scatter('fit','resid')
resdf.plot.scatter('fit', 'zresid')

猜你喜欢

转载自www.cnblogs.com/kogmaw/p/12694865.html