zoukankan      html  css  js  c++  java
  • 我的SAS菜鸟之路9

    ------------------------非典型线性回归---------------------------

    1.基础知识

    • 线性模型的自变量的的类型

      • 一个分类自变量,一般线性模型就是 t 检验或单因素方差分析
      • 两个或多个分类自变量,就是多因素的方差分析
      • 个定量自变量,一般线性模型就是简单线性回归
      • 两个或多个定量自变量,就是多重线性回归
      • 一个分类自变量和一个连续自变量,一般线性模型就转化为协方差分析
    • 线性回归的分析思路

      • 1.前提条件考察

        • 是否符合线性、独立、方差齐、正态性条件
      • 2.准备工作——自变量变换

        • 如果自变量与因变量是非线性关系,考虑适当的变换
          • 对数变换、指数变换、
      • 3.单因素分析

        • 排除意义不大的变量
        • 初步探索自变量与因变量的大致关系
        • 其检验标准可以适当放宽,可设为0.1、0.15、0.2均可
      • 4.多因素分析

        • 校正了其他自变量的影响,能反映出自变量对因变量的“纯”的影响作用
        • 变量筛选的方法有:向前选择法、向后剔除法以及逐步法
      • 5.模型评价——模型对实际数据的拟合效果评价

        • 决定系数(R2)
        • 校正决定系数(R2adj
        • 残差
        • 均方根误差(RMSE)
        • 赤池信息准则(AIC)
      • 6.模型诊断

        • 共线性诊断

          • 多重共线性——多个自变量之间存在高度相关

            • 可能导致,参数估计结果有偏,方差增大
          • 共线性诊断指标

            • 方差扩大因子(VIF):大于10,表示共线性很强

            • 容忍度(TOL):VIF的倒数,小于0.1表示共线性很强

            • 条件指数:大于10:存在共线性;大于30:存在严重的共线性,

              • 如果某几个自变量的变异比列同时比较大,则这几个变量之间存在较强的共线性

                (看条件指数的数据,不必拘泥于同一行,而是可以跨行,找出比较大的几个就可以)

        • 异常点诊断

          • 离群点
            • 检测指标:学生残差
            • 判断标准:绝对值大于2,考虑可能是离群点
          • 高杠杆点
            • p检测指标:hii,即H矩阵对角线的值
            • p判断标准:大于(k+1)/n,k为自变量个数
          • 强影响点
            • DFBETA
            • 判断标准:大于2/n
            • DFFITS,判断标准:太复杂不再赘述
            • Cook’D
            • 判断标准:大于4/(n-k-1),k为自变量个数
      • 7.模型修饰及在评价

      • 8.建立模型

        • 模型的建立需要结合统计学和专业知识
        • 允许有多个模型的存在

    2.非线性回归(曲线拟合)

    • 1.散点图——判断是否符合线性回归

      • 主要是对自变量进行变换
      /*简单散点图*/
      Proc sgplot;
      Scatter x= y=;
      Run;
      
      /*偏残差图*/
      Proc reg;
      Model y=自变量/partial;/*partial 为校正变量,可输出综合效应*/
      Run;
      
      
      • 根据散点图的形状来判断
      • image-20200630150644946
    • 2.利用Box-Cox变换 ——主要是对因变量进行变换

      • p如果对因变量变换,不清楚应该用何种形式,可以用proc transreg过程进行探索

        proc transreg;
        model boxcox(因变量)=identity(自变量);
        run;
        /*
        当λ=2,  二次变换
        当λ=1,  线性变换
        当λ=0.5,平方根变换
        当λ=0,  对数变换
        当λ=-1, 倒数变换
        */
        
    • 如何确定哪种变量变换方式更好

      • 决定系数(越大越好)、均方根误差(越小越好)、标准化残差(越小越好)等

    3.加权最小二乘回归

    • 应用场景——异方差

      • 递增方差
      • 递减方差
    • 判断异方差的方法

      • 1.残差图

        • 是否随机分布于直线的两侧
      • 2.散点图

        image-20200630153817565

      • 3.White检验

        • 是检验异方差的经典方法之一

          PROC REG;
          MODEL y=x/spec;         
          /*spec选项,执行验证方差齐性的White检验*/
          
          /*当P<0.05,可以拒绝方差齐性的无效假设,
          认为方差不齐
          */
          
          
    • 加权最小二乘法的SAS实现

      • 1.如果已知方差,可直接用方差的倒数作为权重

        data aa;
        input m y x var; /*var为方差*/
        wt=1/var; /*wt为方差的倒数*/
        cards;
        1	4.320	-0.300	26.098
        2	2.011	1.371	4.041
        3	9.024	6.343	66.021
        4	20.381	12.586	322.494
        5	30.561	20.714	521.314
        6	31.671	25.000	505.093
        7	22.966	27.557	223.634
        8	9.474	26.643	44.062
        9	9.120	22.400	68.796
        10	8.246	15.371	67.415
        11	5.506	9.229	10.281
        12	3.799	1.800	6.016
        ;
        proc reg;
        model y=x;
        weight wt;
        run;
        
        
      • 2.如果方差未知,可用残差绝对值或平方的倒数

        proc reg;
        model y=x;
        output out=bb residual=res; /*产生数据集bb,包含残差变量*/-
        run;
        data res;
        set bb;
        wt=1/(res)**2;
        proc reg data=res;
        model y=x;
        weight wt;
        run;
        
        

    4.偏最小二乘回归

    • 应用场景

      • 解决多重共线性问题
      • 自变量存在严重的相关性
      • 适用于样本量较小的情形
    • 偏最小二乘回归的SAS实现

      • 1.共线性检查
      data fh;
      input height weight cir xin;
      cards;
      95 	14 	54 	50 
      92 	13 	52 	42 
      89 	13 	53 	36 
      158 52 	79 	99 
      119 20 	55 	68 
      113 18 	53 	61 
      125 22 	59 	67 
      91 	14 	48 	36 
      93 	13 	50 	44 
      92 	11 	53 	32 
      154 55 	80 	95 
      163 54 	82 	87 
      130 25 	59 	63 
      98 	17 	51 	51 
      99 	15 	51 	54 
      ;
      proc reg;
      model xin=height weight cir/collin tol vif;
      run;
      
      • 2.进行回归分析
      PROC PLS cv=one method=pls cvtest;      
      /*调用PLS程序*/ 
      /* cv=one 表示采用舍一法进行交叉确认
      /* method=pls 表示采用偏最小二乘回归法提取因子
      /* cvtest 表示对留一交叉确认进行统计学检验。*/
      MODEL xin=height weight cir/solution;       
      /*Solution 选项给出模型的回归系数,包括中心化系数和原始变量系数*/
      RUN;
      
      
      • 3.结果解读
      • image-20200630221443788
      • 最后方程的拟合用参数估计的系数(此处与最小二乘法不一样)
      • 4.变量的筛选
        • 可利用VIP指标进行筛选
          • PROC PLS cv=one method=pls cvtest plots=vip
          • 当变量的VIP非常接近,表明三个自变量对因变量的影响大小差不多,很难确认删除哪个

      5.稳健回归

      • 基本概念

        • 失效点:所选的估计方法在数据有多少异常点时仍可保持模型的稳健,失效点越高,表明估计方法越稳健
        • 相对效率:与各条件都满足的线性回归相比,各稳健估计量的效率
      • 应用场景

        • 当回归的原始数据存在很多异常点时,且自变量之间不存在严重的共线性时
      • 常用估计方法

        • M估计,较早的一种估计方法,当存在高杠杆点时估计效果较差,失效点为0,相对效率为95%
        • LTS估计,失效点较高(0.5),但相对效率较低(8%),通常作为其它估计的初始估计
        • S估计,对M估计的一种改进,失效点可达到0.5,但相对效率也较低(33%)
        • MM估计,用多个M估计程序来计算最终的估计,该法同时具有较高的失效点(0.5)和相对效率(95%),可能是目前最流行的一种方法
      • SAS程序实现

        DATA example7_10;
        INPUT x y;
        CARDS;
        6.8  746
        7.8  553
        8.7  562
        8.7  563
        8.9  570
        19.5 575
        10.1 581
        10.2 605
        10.3 607
        10.4 621
        11.1 624
        12.4 626
        13.3 632
        13.1 640
        13.2 656
        ;
        proc sgplot; /*画散点图*/
        scatter x=x y=y;
        run;
        
        proc reg;
        model y=x/r influence;/*异常点的检测*/
        run;
        
        proc robustreg method=mm;
        /*调用稳健回归命令,方法选择MM估计*/
        model y=x/diagnostics leverage;
        /*对变量进行异常点和杠杆点诊断*/
        run;
        
        • 结果解读

          • image-20200630233512269

            • 标准差与MAD差值大,提示可能存在异常值
            • 对于数据集中异常值的处理比标准差更具有弹性
          • image-20200630233713388

            • 最高的可能失效点(breakdown value)为0.2667
            • 估计效率(efficiency)为0.85
          • image-20200630233833094

            • 杠杆点主要根据稳健MCD距离(robust MCD distance)判断,当该值大于诊断界值(cutoff)时,即判断为杠杆点,并以“*”标识;

            • 离群点主要根据稳健残差(robust residual)判断,当该值的绝对值

              大于诊断界值(cutoff)时,即判断为离群点,并以“*”标识

          • image-20200630234015092

            • 拟合优度“Goodness - of - Fit”评价的四个指标中,R- Square 取值越大、另三个评价指标取值越小,

              并且,回归系数的“标准误”越小越好,该估计方法的拟合效果就越好

    6.分位回归

    1.应用场景

    • 模型残差不满足正态性时

    2.SAS语句

    • Proc quantreg ci=;

    • Model 因变量=自变量/quantile= plot=quantplot;

    • Run;

    • 选项ci=指定置信区间的估计方法,常用的是resampling,即重复抽样法

    • 选项quantile指定分位数,如quantile=0.5,拟合中位数回归;quantile=0.1 0.5,分别拟合10%和50%的分位数回归

    • Plot=quantplot绘制分位数拟合图

    3.结果解读

    • 我也不太明白

    ---------------------------------总结-------------------------------------------

    应用条件 应用判断方式 特点
    非线性回归 自变量与因变量关系不满足线性的时候 散点图/偏残差图 需根据经验判断 或利用Box-Cox变换对变量进行转换
    加权最小二乘回归 不同x值所对应的方差随着变大或减少时 1.残差图 2.White检验:当P<0.05,可以拒绝方差齐性的无效假设,认为方差不齐 已知方差时可直接用方差的倒数作为权重,未知时,可用残差绝对值或平方的倒数作为权重
    偏最小二乘回归 自变量存在严重相关性;尤其适用于样本含量较小的情形。适合当预测矩阵比观测的有更多变量,以及X的值中有多重共线性的时候 容忍度(tolerance)均小于0.1,方差扩大因子(Variance Inflation)均大于10,条件指数有两个大于30 适用于存在严重相关性和存在多重共线性的资料;集主成分分析、典型相关分析和多元线性回归分析3种分析方法的优点于一身;可以避免数据非正态分布、因子结构不确定性 和模型不能识别等潜在问题
    稳健回归 有异常点的情况 离群点(稳健残差) 高杠杆点(稳健MCD距离) 强影响点 最小二乘估计条件不满足时,其结果优于最小二乘估计;m估计和mm估计等估计的运用;对于不同的数据赋予不同的权重
    分位数回归 模型残差不满足正态性,需要得到不同分位数下的回归模型时 残差的正态概率图或残差的正态性检验。 全面的描述被解释变量条件分布;估计结果对离群值则表现的更加稳健,而且对误差项并不要求很强的假设条件,更适用于非正态分布
  • 相关阅读:
    有关多线程的一些技术问题
    Remoting VS WCF 传输效率对比
    中英文术语对照表
    WCF配置文件全攻略
    架构设计之分布式文件系统
    Rails性能优化简明指南 (转载)
    不要活在别人的生活里(摘自开复网)
    find 命令 使用 (转载)
    turbo C BGI 基本图形接口的 例子
    如何编写Ruby控制台程序(一)
  • 原文地址:https://www.cnblogs.com/yangzilaing/p/13216787.html
Copyright © 2011-2022 走看看