一、明确需求(因变量y)

二、数据清洗

  1. 缺失值处理
  2. 异常值处理:一般大于3倍标准差的值视为异常值
  3. 分类变量的处理:将分类变量改为多列进行处理
  • 备注:异常值一般不要直接处理,了解一下是什么情况再行处理,有必要的单独拎出来

三、相关分析

  • 每个自变量x都和y跑一下相关系数,画个散点图,肉眼判断一下相关性,初步筛选适合放到模型里的自变量

四、分割测试集和训练集

  • 一般为三七分或者是二八分

五、针对训练集跑回归模型并检验

  • 初步筛选的变量都放到模型里面跑
  1. F检验:所有回归系数是否为0
  2. T检验:每一个回归系数是否为0
  3. R²:一元回归直接看R²,多元回归看调整后的R²

六、模型调优

  • 对于线性回归模型,只要是满足高斯马尔科夫假设,就是理论上最优无偏的模型,对着这个假设依次调整
  1. 残差为正态分布:-检验数据是否为正态分布有两个方法(sw:主要用于样本数小于5000的检验,ks:主要用于大于5000的样本数;两个检验的原假设H0:数据集为正态分布);若残差不是正态分布:最简单有效的办法就是对因变量y取自然对数
  2. 残差是否为同方差:-BP检验、WHite检验(精确度更高,但会用掉大量的自由度,样本量足够大的时候使用,否则用BP检验);原假设都是:残差是同方差;若出现异方差也可使用对因变量Y取自然对数的方法,若效果不好还可以用加权最小二乘法(给β系数加一个权重,优点是无论多强的异方差都能消除,缺点是权重有时候算不出来)
  3. 不可以出现内生性(所谓内生性就是自变量x和残差存在线性相关):-商业领域出现内生性涉及的范围太广,一般忽略,若是一些比较精确的case则需要考虑内生性的问题
  4. 自变量x之间不能有共线性:方差膨胀因子VIF,若VIF普遍偏高又不是很高(三五左右)则需要考虑影响,使用主成份分析(奇异值分解,缺点是会改变变量的原始属性),保留原始属性使用岭回归或者lasso回归(最小二乘法的变种,优点是适用范围较广,缺点是用了这个算法预测模型一定有偏,但影响不大的情况下可以放心使用)
  5. 残差是否有序列相关性(如时间序列):可以用高弗雷检验(比dw检验更新更好)

七、模型精修

  1. 添加交互项:改变斜率,如年龄*收入
  2. 高次项:曲线相关
  3. 添加时间、季节趋势等相关系数

八、逐步回归(这一步由计算机完成)

  1. 计算出后判断哪些变量最适合往模型里放
  2. 交叉验证(所谓交叉验证举个例子:比如100个数据集,第一次随机抽取10个,剩下90个跑回归模型,再由10个测试回归模型,然后将10个数据放回,再如此循环,对比后保留预测能力最好的模型)

九、模型测试

  • 用测试集数据测试模型