精华内容
下载资源
问答
  • 比如说,样本点出现许多异常点时,传统的最小二乘法将不再适用,此时则可以使用稳健回归(robust regression)代替最小二乘法。操作下面的稳健回归使用的是犯罪数据,该数据来自Alan Agresti和Barbara Finlay的《社会...

    “社会科学中的数据可视化”第411篇推送

    导言

    大量的线性回归模型是基于最小二乘法实现的,但其仍存在一些局限性。比如说,样本点出现许多异常点时,传统的最小二乘法将不再适用,此时则可以使用稳健回归(robust regression)代替最小二乘法。

    操作

    下面的稳健回归使用的是犯罪数据,该数据来自Alan Agresti和Barbara Finlay的《社会科学统计方法》。变量包括美国各州编号(sid)、州名(state)、每10万人犯罪案件数量(crime)、生活在贫困线以下人口的百分比(poverty)和单亲人口百分比(single)等。我们选择使用贫穷率和单亲状况来预测犯罪率。

    获取数据use https://stats.idre.ucla.edu/stat/stata/dae/crime, clear summarize crime poverty single 导入数据,并描述各个变量的统计结果,输出表格中包含样本容量、平均数、标准差、最小值和最大值。

    OLS回归 在稳健回归之前,我们先进行OLS回归,输出结果如下。regress crime poverty single

    样本点分析 首先我们通过“lvr2plot”绘制残差杠杆图,通过识别离群点和高杠杆值点(杠杆点)进而识别强影响点。假如存在杠杆点的话,要确定哪些是bad leverage point,对于这些离群点我们要评估它对拟合模型的影响。lvr2plot, mlabel(state) 由图中我们可以看出,dc、ms、fl三个点残差较大或者杠杆值比较高。库克距离是杠杆值与残差大小的综合效应,一般而言,库克距离大于1,则可认为该样本点为强影响点。接下来我们计算各点的库克距离(Cook’s Distance),并输出结果。predict d1, cooksdclist state crime poverty single d1 if d1>4/51, noobs 由结果可以看出,dc点库克距离大于1,表明dc这一样本点对于回归结果会产生较强的影响,在之后的稳健回归中我们会对dc点进行特殊处理。 接下来我们分析数据的残差。使用rstandard这一命令,它表示标准化残差的绝对值。predict r1, rstandardgen absr1 = abs(r1)gsort -absr1clist state absr1 in 1/10, noobs

    稳健回归 我们使用“rreg”命令进行稳健回归,并输出结果如下。rreg crime poverty single, gen(weight) 对比最开始的OLS回归,我们发现两者差异较大。并且稳健回归中的样本点数量是50,OLS回归中为51,这是因为经过前面的分析,由于dc这一异常值点对回归结果影响较强,因此在稳健回归中我们将其舍去。下面的操作表明在稳健回归中,dc样本点所占权重为零。clist state weight if state =="dc", noobs 下面的命令展示了其他权重较小的观察值,一般而言,残差较大的观察值权重较小,例如我们之前提到的ms点。在OLS回归中,所有样本点的权重都是1,因此稳健回归中越多的样本点权重是1,其回归结果与OLS结果越相近。sort weightclist sid state weight absr1 d1 in 1/10, noobs 我们还可以通过绘制圆圈的方式形象地展现这一关系。下图中横坐标表示单亲率,纵坐标表示犯罪率,每一个圆圈表示一个样本点,圆心为该样本点在坐标中的位置,圆圈直径越大,表示该样本点权重越大。twoway (scatter crime single [weight=weight], msymbol(oh)) if state !="dc"

    拓展 我们在稳健回归分析之后,可以使用许多后续估计命令,比如test、margin等。下面的操作是我们控制贫困率之后,在不同的单亲率下预测犯罪率。我们发现,随着单亲率的提高,犯罪率也相应地上升。margins, at(single=(8(2)22)) vsquish

    展开全文
  • 基于稳健回归的互联电网地区电价分析,王博,何凤霞,本文以互联电网地区经济理论为基础,建立我国电力工业出厂电价指数与电能消耗量、工业总产值指数(1990-2008)的稳健回归模型。分析
  • [R语言]稳健回归

    2020-12-30 17:12:15
    原文来自:稳健回归 INTRODUCTION 我们以线性回归中的一些概念开始关于稳健回归的讨论。 残差: 预测值(基于回归方程)与实际观察值之间的差。 离群值: 在线性回归中,离群值是具有大量残差的观察值。换句话说,...

    原文来自:稳健回归

    INTRODUCTION

    我们以线性回归中的一些概念开始关于稳健回归的讨论。

    残差: 预测值(基于回归方程)与实际观察值之间的差。

    离群值: 在线性回归中,离群值是具有大量残差的观察值。换句话说,鉴于其对预测变量的价值,这是一个因变量不寻常的观察结果。离群值可能表示样本特性,或者可能表示数据输入错误或其他问题。

    杠杆: 对预测变量具有极高价值的观察点具有很高的杠杆作用。杠杆作用是对自变量偏离均值的程度的度量。高杠杆点可能会对回归系数的估计产生很大影响。

    影响: 如果删除观察结果会显着改变回归系数的估计值,则认为该观察结果具有影响力。可以将影响视为杠杆和离群值的产物。

    库克距离: 一种结合了杠杆作用和观测值残差信息的度量。

    可以在使用最小二乘回归的任何情况下使用稳健回归。在拟合最小二乘回归时,我们可能会发现一些离群值或高杠杆点。我们已经确定这些数据点不是数据输入错误,也不是来自与我们大多数数据不同的总体。因此,我们没有令人信服的理由将它们排除在分析之外。稳健的回归可能是一个很好的策略,因为这是从完全排除这些异常点与包括所有数据点OLS回归的折中方案。稳健回归的想法是根据这些观察的表现如何对观察进行不同的加权。粗略地说,它是加权和最小二乘回归的一种形式。

    在MASS包中,使用rlm在命令可以实现稳健回归的几个版本。在此,我们将展示使用 Huber 和 bisquare权重的M估计。M估计定义了权重函数,使估计方程变为i=1nwi(yixTb)xT=0\sum_{i=1}^{n} w_i (y_i - x^Tb)x^T = 0. 但是这一权重又取决于残差。这一方程使用迭代重加权最小平方法(Iteratively Reweighted Least Squares,IRLS)求解。例如,第j步迭代的稀疏矩阵为:Bj=[XTWj1X]1XTWj1YB_j =[X^TW_{j-1}X]^{-1}X^TW_{j-1}Y. 迭代重复该过程一直持续到收敛为止。在Huber加权中,残差小的观测值的权重为1,而残差越大,权重就越小。这由权重函数的定义所决定的。如果使用bisquare加权,所有具有非零残差的情况,权重都有所降低。

    示例数据说明

    对于下面的数据分析,我们将使用 Alan Agresti 和Barbara Finlay(Prentice Hall,1997)在《社会科学统计方法》第三版中出现的犯罪数据集 。变量包括各州 ID(sid),州名(state),每10万人的暴力罪犯(crime),每1,000,000人中的谋杀罪犯(murder),居住在大都市区的比例(pctmetro),白人的比例(pctwhite),高中或以上学历的人口百分比(pcths),生活在贫困线以下的人口百分比(poverty)和单亲父母的人口百分比(single)。它有51个观测值。我们将使用povertysingle预测crime.

    library(foreign)
    library(MASS)
    
    cdata <- read.dta("https://stats.idre.ucla.edu/stat/data/crime.dta")
    summary(cdata)
    

    结果为

          sid          state               crime            murder          pctmetro         pctwhite    
     Min.   : 1.0   Length:51          Min.   :  82.0   Min.   : 1.600   Min.   : 24.00   Min.   :31.80  
     1st Qu.:13.5   Class :character   1st Qu.: 326.5   1st Qu.: 3.900   1st Qu.: 49.55   1st Qu.:79.35  
     Median :26.0   Mode  :character   Median : 515.0   Median : 6.800   Median : 69.80   Median :87.60  
     Mean   :26.0                      Mean   : 612.8   Mean   : 8.727   Mean   : 67.39   Mean   :84.12  
     3rd Qu.:38.5                      3rd Qu.: 773.0   3rd Qu.:10.350   3rd Qu.: 83.95   3rd Qu.:92.60  
     Max.   :51.0                      Max.   :2922.0   Max.   :78.500   Max.   :100.00   Max.   :98.50  
         pcths          poverty          single     
     Min.   :64.30   Min.   : 8.00   Min.   : 8.40  
     1st Qu.:73.50   1st Qu.:10.70   1st Qu.:10.05  
     Median :76.70   Median :13.10   Median :10.90  
     Mean   :76.22   Mean   :14.26   Mean   :11.33  
     3rd Qu.:80.10   3rd Qu.:17.40   3rd Qu.:12.05  
     Max.   :86.60   Max.   :26.40   Max.   :22.10  
    

    使用普通最小二乘回归

    summary(ols <- lm(crime ~ poverty + single, data = cdata))
    

    结果为

    Call:
    lm(formula = crime ~ poverty + single, data = cdata)
    
    Residuals:
        Min      1Q  Median      3Q     Max 
    -811.14 -114.27  -22.44  121.86  689.82 
    
    Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
    (Intercept) -1368.189    187.205  -7.308 2.48e-09 ***
    poverty         6.787      8.989   0.755    0.454    
    single        166.373     19.423   8.566 3.12e-11 ***
    ---
    Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1
    
    Residual standard error: 243.6 on 48 degrees of freedom
    Multiple R-squared:  0.7072,	Adjusted R-squared:  0.695 
    F-statistic: 57.96 on 2 and 48 DF,  p-value: 1.578e-13
    

    我们来看一下普通最小二乘回归的诊断图

    opar <- par(mfrow = c(2,2), oma = c(0, 0, 1.1, 0))
    plot(ols, las = 1)
    

    结果如下:
    回归诊断从这些图中,我们可以确定观测值9、25和51对我们的模型可能存在问题。我们可以查看这些观察值,以了解它们所代表的状态。

    par(opar)
    cdata[c(9, 25, 51), 1:2]
    

    结果为

       sid state
    9    9    fl
    25  25    ms
    51  51    dc
    

    哥伦比亚特区,佛罗里达州和密西西比州的杠杆率很高或残差很大。我们可以显示具有较大Cook值的观测值。常规的截止点是n/4n/4nn是数据集中的观察数。我们将使用此条件来选择要显示的值。

    d1 <- cooks.distance(ols)
    r <- stdres(ols)
    a <- cbind(cdata, d1, r)
    a[d1 > 4/51, ]
    

    结果为

       sid state crime murder pctmetro pctwhite pcths poverty single        d1         r
    1    1    ak   761    9.0     41.8     75.2  86.6     9.1   14.3 0.1254750 -1.397418
    9    9    fl  1206    8.9     93.0     83.5  74.4    17.8   10.6 0.1425891  2.902663
    25  25    ms   434   13.5     30.7     63.3  64.3    24.7   14.7 0.6138721 -3.562990
    51  51    dc  2922   78.5    100.0     31.8  73.1    26.4   22.1 2.6362519  2.616447
    

    因为DC不是州,所以我们可能应该先删除DC。我们将其包括在分析中只是为了表明它具有大的Cook距离并演示如何使用rlm。现在我们来看一下残差。我们将生成一个名为的新变量absr1,它是残差的绝对值(因为残差的符号无关紧要)。然后,我们打印出具有最高绝对残差值的十个观测值。

    rabs <- abs(r)
    a <- cbind(cdata, d1, r, rabs)
    asorted <- a[order(-rabs), ]
    asorted[1:10, ]
    

    结果为

       sid state crime murder pctmetro pctwhite pcths poverty single         d1         r     rabs
    25  25    ms   434   13.5     30.7     63.3  64.3    24.7   14.7 0.61387212 -3.562990 3.562990
    9    9    fl  1206    8.9     93.0     83.5  74.4    17.8   10.6 0.14258909  2.902663 2.902663
    51  51    dc  2922   78.5    100.0     31.8  73.1    26.4   22.1 2.63625193  2.616447 2.616447
    46  46    vt   114    3.6     27.0     98.4  80.8    10.0   11.0 0.04271548 -1.742409 1.742409
    26  26    mt   178    3.0     24.0     92.6  81.0    14.9   10.8 0.01675501 -1.460885 1.460885
    21  21    me   126    1.6     35.7     98.5  78.8    10.7   10.6 0.02233128 -1.426741 1.426741
    1    1    ak   761    9.0     41.8     75.2  86.6     9.1   14.3 0.12547500 -1.397418 1.397418
    31  31    nj   627    5.3    100.0     80.8  76.7    10.9    9.6 0.02229184  1.354149 1.354149
    14  14    il   960   11.4     84.0     81.0  76.2    13.6   11.5 0.01265689  1.338192 1.338192
    20  20    md   998   12.7     92.8     68.9  78.4     9.7   12.0 0.03569623  1.287087 1.287087
    

    使用稳健回归

    现在让我们运行第一个稳健的回归。通过迭代的重新加权最小二乘法(IRLS)进行稳健的回归。运行稳定回归的指令是rlm在MASS包。有几种加权功能可用于IRLS。在本示例中,我们将首先使用Huber权重。然后,我们将查看由IRLS流程创建的最终权重。这可能非常有用。

    summary(rr.huber <- rlm(crime ~ poverty + single, data = cdata))
    

    结果为

    Call: rlm(formula = crime ~ poverty + single, data = cdata)
    Residuals:
        Min      1Q  Median      3Q     Max 
    -846.09 -125.80  -16.49  119.15  679.94 
    
    Coefficients:
                Value      Std. Error t value   
    (Intercept) -1423.0373   167.5899    -8.4912
    poverty         8.8677     8.0467     1.1020
    single        168.9858    17.3878     9.7186
    
    Residual standard error: 181.8 on 48 degrees of freedom
    

    我们来看一下各观测点的权重。

    hweights <- data.frame(state = cdata$state, resid = rr.huber$resid, weight = rr.huber$w)
    hweights2 <- hweights[order(rr.huber$w), ]
    hweights2[1:15, ]
    

    结果为

       state      resid    weight
    25    ms -846.08536 0.2889618
    9     fl  679.94327 0.3595480
    46    vt -410.48310 0.5955740
    51    dc  376.34468 0.6494131
    26    mt -356.13760 0.6864625
    21    me -337.09622 0.7252263
    31    nj  331.11603 0.7383578
    14    il  319.10036 0.7661169
    1     ak -313.15532 0.7807432
    20    md  307.19142 0.7958154
    19    ma  291.20817 0.8395172
    18    la -266.95752 0.9159411
    2     al  105.40319 1.0000000
    3     ar   30.53589 1.0000000
    4     az  -43.25299 1.0000000
    

    我们可以粗略地看到,随着绝对残差的减少,权重也会增加。换句话说,残差较大的情况倾向于权重降低。此输出向我们显示,密西西比州的观测值将被最大程度地降低权重。佛罗里达州的权重也将大大降低。上面未显示的所有观察值的权重均为1。在OLS回归中,所有情况的权重均为1。因此,稳健回归中权重接近1的案例越多,OLS和稳健回归的结果越接近。

    接下来,让我们运行相同的模型,但是使用双向平方加权函数。同样,我们可以看一下权重。

    rr.bisquare <- rlm(crime ~ poverty + single, data=cdata, psi = psi.bisquare)
    summary(rr.bisquare)
    

    结果为

    Call: rlm(formula = crime ~ poverty + single, data = cdata, psi = psi.bisquare)
    Residuals:
        Min      1Q  Median      3Q     Max 
    -905.59 -140.97  -14.98  114.65  668.38 
    
    Coefficients:
                Value      Std. Error t value   
    (Intercept) -1535.3338   164.5062    -9.3330
    poverty        11.6903     7.8987     1.4800
    single        175.9303    17.0678    10.3077
    
    Residual standard error: 202.3 on 48 degrees of freedom
    

    我们来看一下各观测点的权重:

    biweights <- data.frame(state = cdata$state, resid = rr.bisquare$resid, weight = rr.bisquare$w)
    biweights2 <- biweights[order(rr.bisquare$w), ]
    biweights2[1:15, ]
    

    结果为

       state     resid      weight
    25    ms -905.5931 0.007652565
    9     fl  668.3844 0.252870542
    46    vt -402.8031 0.671495418
    26    mt -360.8997 0.731136908
    31    nj  345.9780 0.751347695
    18    la -332.6527 0.768938330
    21    me -328.6143 0.774103322
    1     ak -325.8519 0.777662383
    14    il  313.1466 0.793658594
    20    md  308.7737 0.799065530
    19    ma  297.6068 0.812596833
    51    dc  260.6489 0.854441716
    50    wy -234.1952 0.881660897
    5     ca  201.4407 0.911713981
    10    ga -186.5799 0.924033113
    

    我们可以看到,使用bisquare 加权函数比使用Huber 加权函数给密西西比州的加权显着更低,并且这两种不同加权方法的参数估计值也不同。在比较常规OLS回归和稳健回归的结果时,如果结果非常不同,最好使用稳健回归的结果。较大的差异表明模型参数受到异常值的高度影响。不同的权函数各有利弊。Huber权重可能会遇到严重的离群值,而Bisquare权重可能会难以收敛或可能产生多个解。

    两次分析的结果有很大不同,尤其是在系数single和常数(intercept)方面。虽然通常我们对常量不感兴趣,但是如果将一个或两个预测变量居中,则该常量将很有用。另一方面,注意到这poverty两种分析在统计上都不显着,而single在两种分析中均显着。

    展开全文
  • 滑坡体稳定性的稳健回归预报建模,王坚,张继贤,基于滑坡体稳定性影响因子的,可以建立多种稳定性预报模型。但稳定性建模方法通常未考虑到因子测量中的粗差对模型的影响。本文在
  • 基于ELM的图像分类与稳健回归算法研究 论文
  • R数据分析实例:稳健回归

    千次阅读 2017-05-15 11:59:15
    按语:当数据含有离群点(Outliar)或者强影响点(influential observation)时,稳健回归(Robust Regression)会比普通最小二乘法(OLS)的表现要更优异。稳健回归也可以用来检测数据中的强影响点。 提示: 本文...
    按语:当数据含有离群点(Outliar)或者强影响点(influential observation)时,稳健回归(Robust Regression)会比普通最小二乘法(OLS)的表现要更优异。稳健回归也可以用来检测数据中的强影响点。
    提示: 本文旨在介绍与稳健回归相关的R命令,因此,并未全面覆盖稳健回归的相关知识,也不涉及数据清洗、数据检测、模型假设和模型诊断等内容。
    文档内容基于R 2.14.0,最后更新于2011年12月19日。
    简介介绍几个线性回归(linear regression)中的术语:
    残差(Residual):  基于回归方程的预测值与观测值的差。
    离群点(Outlier):  线性回归(linear regression)中的离群点是指对应残差较大的观测值。也就是说,当某个观测值与基于回归方程的预测值相差较大时,该观测值即可视为离群点。  离群点的出现一般是因为样本自身较为特殊或者数据录入错误导致的,当然也可能是其他问题。
    杠杆率(Leverage): 当某个观测值所对应的预测值为极端值时,该观测值称为高杠杆率点。杠杆率衡量的是独立变量对自身均值的偏异程度。高杠杆率的观测值对于回归方程的参数有重大影响。
    影响力点:(Influence): 若某观测值的剔除与否,对回归方程的系数估计有显著相应,则该观测值是具有影响力的,称为影响力点。影响力是高杠杆率和离群情况引起的。
    Cook距离(Cook's distance): 综合了杠杆率信息和残差信息的统计量。
    使用最小二乘回归时,有时候会遇到离群点和高杠杆率点。此时,若认定离群点或者高杠杆率点的出现并非因为数据录入错误或者该该观测值来自另外一个总体的话,使用最小二乘回归会变得很棘手,因为数据分析者因为没有充分的理由剔除离群点和高杠杆率。此时稳健回归是个极佳的替代方案。稳健回归在剔除离群点或者高杠杆率点和保留离群点或高杠杆率点并像最小二乘法那样平等使用各点之间找到了一个折中。其在估计回归参数时,根据观测值的稳健情况对观测值进行赋权。简而言之,稳健回归是加权最小二乘回归,或称文艺最小二乘回归。
    MASS 包中的 rlm命令提供了不同形式的稳健回归拟合方式。接下来,以基于Huber方法和bisquare方法下的M估计为例来进行演示。这是两种最为基本的M估计方法。在M估计中,要做的事情是在满足约束 ∑ i=1 n wi (yi-x'b) xi' = 0 时,求出使得 ∑wi2ei2 最小的参数。由于权重的估计依赖于残差,而残差的估计又反过来依赖于权重,因此需用迭代重复加权最小二乘( Iteratively Reweighted Least Squares ,IRLS)来估计参数。举例,第j次迭代得到的系数矩阵为: Bj = [ X' Wj-1 X ] -1 X' Wj-1 Y ,这里下脚标表示求解过程中的迭代次数,而不是通常的行标或者列标,持续这一过程,直到结果收敛为止。Huber方法下,残差较小的观测值被赋予的权重为1,残差较大的观测值的权重随着残差的增大而递减,具体函数为:w(e)={1  for  |e|<=kk|e|  for  |e|>k . 而bisquare方法下,所有的非0残差所对应观测值的权重都是递减的。
    数据描述下面用到的数据是Alan Agresti和Barbara Finlay所著的《Statistical Methods for Social Sciences(Third Edition,Prentice Hall, 1997)中的crime数据集。该数据集的变量分别是:
    state id (sid),
    state name (state),
    violent crimes per 100,000 people (crime),
    murders per 1,000,000 (murder),
    the percent of the population living in metropolitan areas (pctmetro),
    the percent of the population that is white (pctwhite),
    percent of population with a high school education or above (pcths),
    percent of population living under poverty line (poverty),
    percent of population that are single parents (single).
    该数据集共有51个观测值。接下来用数据集中的poverty 和 single 变量来预测 crime.
    library(foreign) cdata <- read.dta("http://www.ats.ucla.edu/stat/data/crime.dta") summary(cdata) 
        sid        state             crime       murder   
    Min.   : 1.0 Length:51       Min.   :  82 Min.   : 1.60
    1st Qu.:13.5 Class :character 1st Qu.: 326 1st Qu.: 3.90
    Median :26.0 Mode  :character Median : 515 Median : 6.80
    Mean   :26.0   Mean   : 613 Mean   : 8.73
    3rd Qu.:38.5   3rd Qu.: 773 3rd Qu.:10.35
    Max.   :51.0   Max.   :2922 Max.   :78.50
      pctmetro      pctwhite      pcths      poverty       single   
    Min.   : 24.0 Min.   :31.8 Min.   :64.3 Min.   : 8.0 Min.   : 8.4
    1st Qu.: 49.5 1st Qu.:79.4 1st Qu.:73.5 1st Qu.:10.7 1st Qu.:10.1
    Median : 69.8 Median :87.6 Median :76.7 Median :13.1 Median :10.9
    Mean   : 67.4 Mean   :84.1 Mean   :76.2 Mean   :14.3 Mean   :11.3
    3rd Qu.: 84.0 3rd Qu.:92.6 3rd Qu.:80.1 3rd Qu.:17.4 3rd Qu.:12.1
    Max.   :100.0 Max.   :98.5 Max.   :86.6 Max.   :26.4 Max.   :22.1
    稳健回归先对数据进行OLS回归,重点观察回归结果中的残差、拟合值、Cook距离和杠杆率。
    ols <- lm(crime ~ poverty + single, data = cdata) summary(ols)

    Call:
    lm(formula = crime ~ poverty + single, data = cdata)

    Residuals:
    Min 1Q Median 3Q Max
    -811.1 -114.3 -22.4 121.9 689.8
    Coefficients:
       Estimate Std. Error t value Pr(>|t|)
    (Intercept) -1368.19     187.21   -7.31  2.5e-09 ***
    poverty         6.79       8.99    0.76     0.45
    single        166.37      19.42    8.57  3.1e-11 ***
    ---
    Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 
    Residual standard error: 244 on 48 degrees of freedom
    Multiple R-squared: 0.707,        Adjusted R-squared: 0.695
    F-statistic:   58 on 2 and 48 DF,  p-value: 1.58e-13
    opar <- par(mfrow = c(2,2),oma = c(0, 0, 1.1, 0)) plot(ols, las = 1) par(opar)
    从图上看出,第 9, 第25和第5个观测值可能是离群点,看看这些观测值所属的是哪些州。
    cdata[c(9, 25, 51), 1:2]

    sid state
    9 9 fl
    25 25 ms
    51 51 dc

    可以猜测,DC, Florida 和Mississippi这三个地方所对应的观测值可能具有较大的残差或者杠杆率。下面观察一下Cook距离较大的观测值有哪些。在判断Cook距离大小的时候,通常采用过的经验分界点是Cook距离序列的4/n处,其中n是观测值的个数。
    library(MASS) d1 <- cooks.distance(ols) r <- stdres(ols) a <- cbind(cdata, d1, r) a[d1 > 4/51, ]

    sid state crime murder pctmetro pctwhite pcths poverty single d1 r
    1 1 ak 761 9 41.8 75.2 86.6 9.1 14.3 0.1255 -1.397
    9 9 fl 1206 8.9 93 83.5 74.4 17.8 10.6 0.1426 2.903
    25 25 ms 434 13.5 30.7 63.3 64.3 24.7 14.7 0.6139 -3.563
    51 51 dc 2922 78.5 100 31.8 73.1 26.4 22.1 2.6363 2.616
    本来应当先删除DC所对应的观测值,因为DC对应的并不是州。然而,由于DC所对应的Cook距离较大保留DC有助于我们进行观察。下面生成一个absr1变量, 其对应的为残差序列的绝对值,取出残差绝对值较大的观测值:
    rabs <- abs(r) a <- cbind(cdata, d1, r, rabs) asorted <- a[order(-rabs), ] asorted[1:10, ]

    sid state crime murder pctmetro pctwhite pcths poverty single d1 r rabs
    25 25 ms 434 13.5 30.7 63.3 64.3 24.7 14.7 0.61387 -3.563 3.563
    9 9 fl 1206 8.9 93 83.5 74.4 17.8 10.6 0.14259 2.903 2.903
    51 51 dc 2922 78.5 100 31.8 73.1 26.4 22.1 2.63625 2.616 2.616
    46 46 vt 114 3.6 27 98.4 80.8 10 11 0.04272 -1.742 1.742
    26 26 mt 178 3 24 92.6 81 14.9 10.8 0.01676 -1.461 1.461
    21 21 me 126 1.6 35.7 98.5 78.8 10.7 10.6 0.02233 -1.427 1.427
    1 1 ak 761 9 41.8 75.2 86.6 9.1 14.3 0.12548 -1.397 1.397
    31 31 nj 627 5.3 100 80.8 76.7 10.9 9.6 0.02229 1.354 1.354
    14 14 il 960 11.4 84 81 76.2 13.6 11.5 0.01266 1.338 1.338
    20 20 md 998 12.7 92.8 68.9 78.4 9.7 12 0.0357 1.287 1.287
    现在转向稳健回归。再提示一下,稳健回归是通过迭代重复加权最小二乘(iterated re-weighted least squares ,IRLS)来完成的。其对应的R函数是MASS包中的rlm。IRLS对应的有多个权重函数( weighting functions),首先演示一下Huber方法。 演示过程中,重点关注IRLS过程得出的权重结果。
    rr.huber <- rlm(crime ~ poverty + single, data = cdata) summary(rr.huber)

    Call: rlm(formula = crime ~ poverty + single, data = cdata)

    Residuals: 
    Min 1Q Median 3Q Max
    -846.1 -125.8 -16.5 119.2 679.9
    Coefficients:

    Value Std.Error t value
    (Intercept) -1423.037 167.59 -8.491
    poverty 8.868 8.047 1.102
    single 168.986 17.388 9.719

    Residual standard error: 182 on 48 degrees of freedom
    hweights <- data.frame(state = cdata$state, resid = rr.huber$resid, weight = rr.huber$w) hweights2 <- hweights[order(rr.huber$w), ] hweights2[1:15, ]

    state resid weight
    25 ms -846.09 0.289
    9 fl 679.94 0.3595
    46 vt -410.48 0.5956
    51 dc 376.34 0.6494
    26 mt -356.14 0.6865
    21 me -337.1 0.7252
    31 nj 331.12 0.7384
    14 il 319.1 0.7661
    1 ak -313.16 0.7807
    20 md 307.19 0.7958
    19 ma 291.21 0.8395
    18 la -266.96 0.9159
    2 al 105.4 1
    3 ar 30.54 1
    4 az -43.25 1
    容易看出来,观测值的残差绝对值越大,其被赋予的权重越小。结果表明Mississippi所对应的观测值被赋予的权重是最小的,其次是Florida所对应的观测值,而所有未被展示的观测值的权重皆为1。由于OLS回归中所有观测值的权重都为1,因此,稳健回归中权重为1的观测值越多,则稳健回归于OLS回归的分析结果越相近。
    接下来,用bisquare方法来进行稳健回归过程。
    rr.bisquare <- rlm(crime ~ poverty + single, data=cdata, psi = psi.bisquare) summary(rr.bisquare)

    Call: rlm(formula = crime ~ poverty + single, data = cdata, psi = psi.bisquare)

    Residuals:
    Min 1Q Median 3Q Max
    -906 -141 -15 115 668
    Coefficients:

    Value Std.Error t value
    (Intercept) -1535.334 164.506 -9.333
    poverty 11.69 7.899 1.48
    single 175.93 17.068 10.308
    Residual standard error: 202 on 48 degrees of freedom biweights <- data.frame(state = cdata$state, resid = rr.bisquare$resid, weight = rr.bisquare$w) biweights2 <- biweights[order(rr.bisquare$w), ] biweights2[1:15, ]

    state resid weight
    25 ms -905.6 0.007653
    9 fl 668.4 0.252871
    46 vt -402.8 0.671495
    26 mt -360.9 0.731137
    31 nj 346 0.751348
    18 la -332.7 0.768938
    21 me -328.6 0.774103
    1 ak -325.9 0.777662
    14 il 313.1 0.793659
    20 md 308.8 0.799066
    19 ma 297.6 0.812597
    51 dc 260.6 0.854442
    50 wy -234.2 0.881661
    5 ca 201.4 0.911714
    10 ga -186.6 0.924033
    与Huber方法相比,bisquare方法下的 Mississippi观测值被赋予了极小的权重,并且两种方法估计出的回归参数也相差甚大。通常,当稳健回归跟OLS回归的分析结果相差较大时,数据分析者采用稳健回归较为明智。稳健回归和OLS回归的分析结果的较大差异通常暗示着离群点对模型参数产生了较大影响。所有的方法都有长处和软肋,稳健回归也不例外。稳健回归中,Huber方法的软肋在于无法很好的而处理极端离群点,而bisquare方法的软肋在于回归结果不易收敛,以至于经常有多个最优解。
    除此之外,两种方法得出的参数结果极为不同,尤其是single变量的系数和截距项(intercept)。不过,一般而言无需关注截距项,除非事先已经对预测变量进行了中心化,此时截距项才显的有些用处。再有, 变量 poverty的系数在两种方法下都不显著,而变量 single则刚好相反,都较为显著。

    思考:
    • 稳健回归没有解决OLS回归中的异方差问题,有关这一问题可以参见sandwich包中的 lm函数。
    • 这里展示的只是在R实现M估计的一种方法,读者尚可以在rlm中发现更多方法,比如MM等。此外,robustbase包中ltsReg可以用来实现最小截平方( Least trimmed squares)。
    参考资料:
    • Li, G. 1985. Robust regression. In Exploring Data Tables, Trends, and Shapes, ed. D. C. Hoaglin, F. Mosteller, and J. W. Tukey, Wiley.
    • John Fox, Applied regression analysis, linear models, and related models, Sage publications, Inc, 1997

    展开全文
  • 稳健回归(Robustness regression)

    千次阅读 2017-05-15 11:47:30
    本文为博主原创文章,未经博主允许不得转载。 目录(?)[-] 稳健回归Robustness regression 最小二乘法的弊端稳健回归 Breakdown point RANSAC随机采样一致性算法The

    http://blog.csdn.net/daunxx/article/details/51858208  此博客有价值的机器学习文章

    稳健回归(Robustness regression)

    标签(空格分隔): 监督学习


    @ author : duanxxnj@163.com 
    @ time : 2016-07-08


    最小二乘法的弊端

    之前文章里的关于线性回归的模型,都是基于最小二乘法来实现的。但是,当数据样本点出现很多的异常点(outliers),这些异常点对回归模型的影响会非常的大,传统的基于最小二乘的回归方法将不适用。

    比如下图中所示,数据中存在一个异常点,如果不剔除改点,适用OLS方法来做回归的话,那么就会得到途中红色的那条线;如果将这个异常点剔除掉的话,那么就可以得到图中蓝色的那条线。显然,蓝色的线比红色的线对数据有更强的解释性,这就是OLS在做回归分析时候的弊端。

    8.png-6.5kB

    当然,可以考虑在做回归分析之前,对数据做预处理,剔除掉那些异常点。但是,在实际的数据中,存在两个问题:

    1. 异常点并不能很好的确定,并没有一个很好的标准用于确定哪些点是异常点
    2. 即便确定了异常点,但这些被确定为异常的点,真的是错误的数据吗?很有可能这看似异常的点,就是原始模型的数据,如果是这样的话,那么这些异常的点就会带有大量的原始模型的信息,剔除之后就会丢失大量的信息。

    再比如下面这幅图,其中红色的都是异常点,但是很难从数据中剔除出去。

    255px-Fitted_line.svg.png-8.2kB

    稳健回归

    稳健回归(Robust regression),就是当最小二乘法遇到上述的,数据样本点存在异常点的时候,用于代替最小二乘法的一个算法。当然,稳健回归还可以用于异常点检测,或者是找出那些对模型影响最大的样本点。

    Breakdown point

    关于稳健回归,有一个名词需要做解释:Breakdown point,这个名词我并不想翻译,我也没找到一个很好的中文翻译。对于一个估计器而言,原始数据中混入了脏数据,那么,Breakdown point 指的就是在这个估计器给出错误的模型估计之前,脏数据最大的比例 α,Breakdown point 代表的是一个估计器对脏数据的最大容忍度。

    举个简单的例子:有 n 个随机变量,(X1,X2,,Xn), 其对应的数据为(x1,x2,,xn),那么,我么可以求出这 n 个随机变量的均值:

    X¯¯¯=X1+X2++Xnn

    这个均值估计器的Breakdown point 为0,因为使任意一个xi变成足够大的脏数据之后,上面估计出来的均值,就不再正确了。

    毫无疑问,Breakdown point越大,估计器就越稳健。

    Breakdown point 是不可能达到 50% 的,因为如果总体样本中超过一半的数据是脏数据了,那么从统计上来说,就无法将样本中的隐藏分布和脏数据的分布给区分开来。

    本文主要介绍两种稳健回归模型:RANSAC(RANdom SAmple Consensus 随机采样一致性)和Theil-Sen estimator。

    RANSAC随机采样一致性算法

    RANSAC算法的输入是一组观测数据(往往含有较大的噪声或无效点),它是一种重采样技术(resampling technique),通过估计模型参数所需的最小的样本点数,来得到备选模型集合,然后在不断的对集合进行扩充,其算法步骤为:

    1. 随机的选择估计模型参数所需的最少的样本点。
    2. 估计出模型的参数。
    3. 找出在误差 ϵ 内,有多少点适合当前这个模型,并将这些点标记为模型内点
    4. 如果内点的数目占总样本点的比例达到了事先设定的阈值 τ,那么基于这些内点重新估计模型的参数,并以此为最终模型, 终止程序。
    5. 否则重复执行1到4步。

    RANSAC算法是从输入样本集合的内点的随机子集中学习模型。

    RANSAC算法是一个非确定性算法(non-deterministic algorithm),这个算法只能得以一定的概率得到一个还不错的结果,在基本模型已定的情况下,结果的好坏程度主要取决于算法最大的迭代次数。

    RANSAC算法在线性和非线性回归中都得到了广泛的应用,而其最典型也是最成功的应用,莫过于在图像处理中处理图像拼接问题,这部分在OpenCV中有相关的实现。

    从总体上来讲,RANSAC算法将输入样本分成了两个大的子集:内点(inliers)和外点(outliers)。其中内点的数据分布会受到噪声的影响;而外点主要来自于错误的测量手段或者是对数据错误的假设。而RANSAC算法最终的结果是基于算法所确定的内点集合得到的。

    下面这份代码是RANSAC的适用实例:

    # -*- coding: utf-8 -*-
    
    """
    author : duanxxnj@163.com
    time : 2016-07-07-15-36
    
    
    
    """
    
    import numpy as np
    import time
    from sklearn import linear_model,datasets
    
    import matplotlib.pyplot as plt
    
    # 产生数据样本点集合
    # 样本点的特征X维度为1维,输出y的维度也为1维
    # 输出是在输入的基础上加入了高斯噪声N(0,10)
    # 产生的样本点数目为1000个
    
    n_samples = 1000
    X, y, coef = datasets.make_regression(n_samples=n_samples,
                                          n_features=1,
                                          n_informative=1,
                                          noise=10,
                                          coef=True,
                                          random_state=0)
    
    # 将上面产生的样本点中的前50个设为异常点(外点)
    # 即:让前50个点偏离原来的位置,模拟错误的测量带来的误差
    n_outliers = 50
    np.random.seed(int(time.time()) % 100)
    X[:n_outliers] = 3 + 0.5 * np.random.normal(size=(n_outliers, 1))
    y[:n_outliers] = -3 + 0.5 * np.random.normal(size=n_outliers)
    
    # 用普通线性模型拟合X,y
    model = linear_model.LinearRegression()
    model.fit(X, y)
    
    # 使用RANSAC算法拟合X,y
    model_ransac = linear_model.RANSACRegressor(linear_model.LinearRegression())
    model_ransac.fit(X, y)
    inlier_mask = model_ransac.inlier_mask_
    outlier_mask = np.logical_not(inlier_mask)
    
    # 使用一般回归模型和RANSAC算法分别对测试数据做预测
    line_X = np.arange(-5, 5)
    line_y = model.predict(line_X[:, np.newaxis])
    line_y_ransac = model_ransac.predict(line_X[:, np.newaxis])
    
    print "真实数据参数:", coef
    print "线性回归模型参数:", model.coef_
    print "RANSAC算法参数: ", model_ransac.estimator_.coef_
    
    
    plt.plot(X[inlier_mask], y[inlier_mask], '.g', label='Inliers')
    plt.plot(X[outlier_mask], y[outlier_mask], '.r', label='Outliers')
    plt.plot(line_X, line_y, '-k', label='Linear Regression')
    plt.plot(line_X, line_y_ransac, '-b', label="RANSAC Regression")
    plt.legend(loc='upper left')
    plt.show()
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62

    figure_1-1.png-46.8kB

    运行结果为:

    真实数据参数: 82.1903908408
    线性回归模型参数: [ 55.19291974]
    RANSAC算法参数:  [ 82.08533159]
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    Theil-Sen Regression 泰尔森回归

    Theil-Sen回归是一个参数中值估计器,它适用泛化中值,对多维数据进行估计,因此其对多维的异常点(outliers 外点)有很强的稳健性。

    一般的回归模型为:

    y=α+βx+ϵ

    其中,α,β 模型的参数,而 ϵ 为模型的随机误差。

    Theil-Sen回归则是这么处理的:

    β=Median{yiyjxixj:xixj,i<j=1,,n}

    在实践中发现,随着数据特征维度的提升,Theil-Sen回归的效果不断的下降,在高维数据中,Theil-Sen回归的效果有时甚至还不如OLS(最小二乘)。

    在之间的文章《线性回归》中讨论过,OLS方法是渐进无偏的,Theil-Sen方法在渐进无偏方面和OLS性能相似。和OLS方法不同的是,Theil-Sen方法是一种非参数方法,其对数据的潜在分布不做任何的假设。Theil-Sen方法是一种基于中值的估计其,所以其对异常点有更强的稳健性。

    在单变量回归问题中,Theil-Sen方法的Breakdown point为29.3%,也就是说,Theil-Sen方法可以容忍29.3%的数据是outliers。

    # -*- coding: utf-8 -*-
    
    """
    
    @author : duanxxnj@163.com
    @time ;2016-07-08_08-50
    
    Theil-Sen 回归
    
    本例生成一个数据集,然后在该数据集上测试Theil-Sen回归
    
    """
    
    print __doc__
    
    import time
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn.linear_model import LinearRegression, TheilSenRegressor,\
                                     RANSACRegressor
    
    estimators = [('OLS', LinearRegression()),
                  ('Theil-Sen', TheilSenRegressor())]
    
    # 异常值仅仅出现在y轴
    np.random.seed((int)(time.time() % 100))
    n_samples = 200
    
    # 线性模型的函数形式为: y = 3 * x + N(2, .1 ** 2)
    x = np.random.randn(n_samples)
    w = 3.
    c = 2.
    noise = c + 0.1 * np.random.randn(n_samples)
    y = w * x + noise
    
    # 加入10%的异常值,最后20个值称为异常值
    y[-20:] += -20 * x[-20:]
    
    X = x[:, np.newaxis]
    plt.plot(X, y, 'k+', mew=2, ms=8)
    line_x = np.array([-3, 3])
    
    for name, estimator in estimators:
        t0 = time.time()
        estimator.fit(X, y)
        elapsed_time = time.time() - t0
        y_pred = estimator.predict(line_x.reshape(2, 1))
        plt.plot(line_x, y_pred, label='%s (fit time: %.2fs)'
                 %(name, elapsed_time))
    
    plt.axis('tight')
    plt.legend(loc='upper left')
    
    plt.show()
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54

    figure_1-1.png-32.2kB


    展开全文
  • Robust regression(稳健回归

    千次阅读 2019-06-11 21:11:58
    语法 b=robustfit(X,y) b=robustfit(X,y,wfun,tune) ...b=robustfit(X,y) 通过执行稳健回归来估计线性模型y=Xb,并返回一个由回归系数组成的向量b。X是一个n*p预测变量矩阵,y是一个n*1观测向量。...
  • 稳健回归重要通知:寒假期间 (2019年1月20日至2月23日) 将暂停推送原创文章,咨询服务照常。前言近日有朋友在《统计咨询》公众号咨询:数据中有离群值,做线性回归对结果影响大吗?答案是肯定的。我们可以通过Cook’...
  • 一般来说,在高维设置(大n_特征)中进行稳健拟合非常困难。这里的健壮模型可能在这些设置中不起作用。 RANSAC: RANdom SAmple Consensus 样本随机一致性 ransac是一种不确定的算法,只产生一个具有一定概率的合理...
  • 线性回归之稳健回归

    千次阅读 2020-01-13 11:07:11
    1、什么是线性回归? 线性回归是利用数理统计中的回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。 线性回归模型: 线性回归得出的模型不一定是一条直线,在只有一个变量的时候,模型...
  • 如果数据存在异常点或者异方差,最小二乘法估计会存在偏差,常用的处理策略就是改用稳健回归(Robust Regression)。 稳健回归就是采用更为稳健的参数估计方法来拟合模型,所谓稳健就是数据的波动对参数估计影响...
  • 注:本文是王桢罡对“R语言基础及稳健回归实现”的介绍R语言简介R是统计领域广泛使用的诞生于1980年左右的S语言的一个分支。R是一套由数据操作、计算和图形展示功能整合而成的套件。包括:有效的数据存储和处理功能...
  • M估计稳健回归(M-estimation)

    千次阅读 2019-06-25 11:03:22
    M估计稳健回归的基本思想是采用迭代加权最小二乘估计回归系数,可以将目标优化函数写为: 相较于最小二乘估计目标优化函数为: 其中,称为影响函数。 令对求偏导,并令倒数等于0,得 其中,为的导函数 ...
  • 充分考虑到冲压成形数值模拟中可能出现的不确定性波动,允许响应量中存在异常响应,提出一种基于稳健回归的随机响应面法。通过一个数学算例的计算对比,表明所提出方法不但能显著减少模拟次数而且精度与Monte Carlo法...
  • 模型:多元线性回归,稳健回归,偏最小二乘回归,岭回归,lasso回归,弹性网 语言:R语言 参考书:应用预测建模 Applied Predictive Modeling (2013) by Max Kuhn and Kjell Johnson,林荟等译 案例: ...
  • 模型:多元线性回归,稳健回归,偏最小二乘回归,岭回归,lasso回归,弹性网 语言:R语言 参考书:应用预测建模 Applied Predictive Modeling (2013) by Max Kuhn and Kjell Johnson,林荟等译 案例 #载入...
  • 调用robustfit函数作稳健回归

    千次阅读 2013-12-27 09:42:35
    调用robustfit函数作稳健回归 regress函数和regstats函数利用普通最小二乘法估计模型中的参数,参数的估计值受异常值的影响比较大。robustfit函数采用加权最小二乘法估计模型中的参数,受异常值的影响就比较小。...
  • 稳健回归效果预览: 文章目录1. 读取数据2. 调用robustfit函数作稳健回归3 .绘制残差和权重的散点图4. 绘制regress函数和robustfit函数对应的回归直线5. 拟合效果 1. 读取数据 ClimateData = xlsread('examp08_01....
  • 文章目录线性模型稳健回归:异常值和建模误差不同的场景和有用的概念RANSAC:随机样本共识算法细节泰尔-森估计量:基于广义中值的估计量理论分析Huber回归注意 线性模型 稳健回归:异常值和建模误差 稳健回归的目标是...
  • 模型:多元线性回归,稳健回归,偏最小二乘回归,岭回归,lasso回归,弹性网 语言:R语言 参考书:应用预测建模 Applied Predictive Modeling (2013) by Max Kuhn and Kjell Johnson,林荟等译 案例: ( b)在...
  • Robust regression(稳健回归) 语法 b=robustfit(X,y) b=robustfit(X,y,wfun,tune) b=robustfit(X,y,wfun,tune,const) [b,stats]=robustfit(...) 描述 b=robustfit(X,y) 通过执行稳健回归来估计线性模型y=Xb,并...
  • Sklearn实现稳健回归

    2021-01-11 14:25:16
    from matplotlib import pyplot as plt import numpy as np from sklearn.linear_model import ( LinearRegression, TheilSenRegressor, RANSACRegressor, HuberRegressor) from sklearn.metrics import mean_...
  • stats模型中的RLM仅限于M估计量。默认的Huber范数仅对y中的异常值具有鲁棒性,而在x中不具有鲁棒性,即对不良影响点不具有鲁棒性。在像bisquare这样的重定准则能够去除不好的...R有一套更广泛的稳健估计,可以处理...
  • 模型:多元线性回归,稳健回归,偏最小二乘回归,岭回归,lasso回归,弹性网 语言:R语言 参考书:应用预测建模 Applied Predictive Modeling (2013) by Max Kuhn and Kjell Johnson,林荟等译 本案例中的一些...
  • 我用统计模型测试了一些基本的类别回归:我建立了一个确定性模型Y = X + Z其中X可以取3个值(a、b或c),Z只能取2(d或e)。在那个阶段,模型是完全确定的,我为每个变量设置了如下的权重a's weight=1b's weight=2c's ...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 293
精华内容 117
关键字:

稳健回归