zoukankan      html  css  js  c++  java
  • 第七节 线性回归模型入门

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

    线性模型的几个重要点

      独立性考察: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    
      coefstd errtP>|t|[0.0250.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')
  • 相关阅读:
    Java类变量和成员变量初始化过程
    Linux命令学习笔记
    gitlab本地部署方法(ubuntu16.04+gitlab9.5.5)
    Hanoi塔
    求递归算法时间复杂度:递归树
    最大堆/最小堆
    Matlab中plot基本用法
    这是一篇叼炸天的博客
    c++ static理解
    经典排序算法+文件操作~c语言实现
  • 原文地址:https://www.cnblogs.com/kogmaw/p/12694865.html
Copyright © 2011-2022 走看看