[RsR] How does "rlm" in R decide its "w" weights for each IRLSiteration?

Maheswaran Rohan mroh@n @end|ng |rom doc@govt@nz
Mon Jul 23 22:51:53 CEST 2012


Your code is running for M-estimator, but not for MM (I don't know the
reason).
See the results here.

>  set.seed(123)
>  xr=rpois(100,lambda=3)
>  xn=rnorm(100)
>  xf =as.factor(xr)
>  yn=rnorm(100)+xn+xr
>  form=yn~xn+xf
> library(MASS)

> rlm(form,method="MM")
Error: lqs failed: all the samples were singular

> rlm(form,method="M")
Call:
rlm(formula = form, method = "M")
Converged in 7 iterations

Coefficients:
(Intercept)          xn         xf1         xf2         xf3         xf4 
  0.2017169   0.8708498   0.4001550   2.0120847   2.7285940   3.2854743 
        xf5         xf6         xf7         xf8 
  4.9677143   6.0077015   6.4267159   9.8351416 

Degrees of freedom: 100 total; 90 residual
Scale estimate: 0.713

Regards
Rohan




-----Original Message-----
From: Dr. Peter Ruckdeschel
[mailto:peter.ruckdeschel using itwm.fraunhofer.de] 
Sent: Tuesday, 24 July 2012 2:07 a.m.
To: r-sig-robust using r-project.org
Cc: Valentin Todorov; Maheswaran Rohan; S.Ellison using lgcgroup.com
Subject: Re: [RsR] How does "rlm" in R decide its "w" weights for each
IRLSiteration?

To what it's worth:

Valentin very well knows about the MM implementation of rlm;

it is simply that lmrob is a more recent implementation which has
taken up _very_ recent current research results on this field and
also includes the combined case (i.e. factors  and numerics as
regressors) (see ?lmrob) or try

set.seed(123)
 xr=rpois(100,lambda=3)
 xn=rnorm(100)
 xf =as.factor(xr)
 yn=rnorm(100)+xn+xr
 form=yn~xn+xf
 rlm(form,method="MM")
Error: lqs failed: all the samples were singular
> lmrob(form,method="MM")

Call:
lmrob(formula = form, method = "MM")

Coefficients:
(Intercept)           xn          xf1          xf2          xf3         
xf4 
     0.2260       0.8957       0.3633       1.9949       2.6660      
3.2966 
        xf5          xf6          xf7          xf8 
     4.9415       5.9208       6.4388       9.8285 

Hth, best, Peter

Am 23.07.2012 15:19, schrieb S Ellison:
> rlm includes an MM estimator.
>
> S Ellison 
>
>> -----Original Message-----
>> From: Maheswaran Rohan [mailto:mrohan using doc.govt.nz] 
>> Sent: 22 July 2012 23:08
>> To: Valentin Todorov; S Ellison
>> Cc: r-sig-robust using r-project.org; r-help
>> Subject: RE: [RsR] How does "rlm" in R decide its "w" weights 
>> for each IRLSiteration?
>>
>> Hi Valentin,
>>
>> If the contamination is mainly in the response direction, 
>> M-estimator provides good estimates for parameters and rlm 
>> can be used.
>>
>> Rohan
>>
>> -----Original Message-----
>> From: r-sig-robust-bounces using r-project.org
>> [mailto:r-sig-robust-bounces using r-project.org] On Behalf Of 
>> Valentin Todorov
>> Sent: Saturday, 21 July 2012 6:57 a.m.
>> To: S Ellison
>> Cc: r-sig-robust using r-project.org; r-help
>> Subject: Re: [RsR] How does "rlm" in R decide its "w" weights 
>> for each IRLSiteration?
>>
>> Hi Michael, S Ellison,
>>
>> I do not actually understand what you want to achieve with 
>> the M estimates of rlm in MASS, but why you do not give a try 
>> of lmrob in 'robustbase'. Please have a llok in the 
>> references (?lmrob) about the advantages of MM estimators 
>> over the M estimators.
>>
>> Best regards,
>> Valentin
>>
>>
>>
>>
>> On Fri, Jul 20, 2012 at 5:11 PM, S Ellison <S.Ellison using lgcgroup.com>
>> wrote:
>>>
>>>> -----Original Message-----
>>>> Subject: [RsR] How does "rlm" in R decide its "w" weights for each 
>>>> IRLS iteration?
>>>> I am also confused about the manual:
>>>>
>>>>            a.  The input arguments:
>>>>
>>>> wt.method are the weights case weights (giving the relative 
>>>> importance of case, so a weight of 2 means there are two of
>>>> these) or the inverse of the variances, so a weight of two 
>> means this 
>>>> error is half as variable?
>>> When you give rlm weights (called 'weights', not 'w' on 
>> input, though
>> you can abbreviate to 'w'), you need to tell it which of 
>> these two possibilities you used.
>>> If you gave it case numbers, say wt.method="case"; if you gave it
>> inverse variance weights, say wt.method="inv.var".
>>> The default is "inv.var".
>>>
>>>
>>>> The input argument "w" is used for the initial values of 
>> the rlm IRLS 
>>>> weighting and the output value "w" is the converged "w".
>>> There is no input argument 'w' for rlm (see above).
>>> The output w are a  calculated using the psi function, so between 0
>> and 1.
>>> The effective weights for the final estimate would then be something
>> like w*weights, using the full name of the input argument 
>> (and if I haven't forgotten a square root somewhere). At 
>> least, that would work for a simple location estimate (eg rlm(x~1)).
>>>> If my understanding above is correct, how does "rlm" 
>> decide its "w" 
>>>> for each IRLS iteration then?
>>> It uses the given psi functions to calculate the iterative weights
>> based on the scaled residuals.
>>>> Any pointers/tutorials/notes to the calculation of these "w"'s in 
>>>> each IRLS iteration?
>>> Read the cited references for a detailed guide. Or, of 
>> course, MASS -
>> the package is, after all, intended to support the book, not 
>> replace it.
>>>
>>>
>>> S Ellison
>>>
>>> *******************************************************************
>>> This email and any attachments are confidential. Any 
>> u...{{dropped:6}}
>>
>> _______________________________________________
>> R-SIG-Robust using r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-sig-robust
>> ##############################################
>> This e-mail (and attachments) is confidential and may be 
>> legally privileged.
>> ##############################################
>>
> *******************************************************************
> This email and any attachments are confidential. Any\ ...{{dropped:22}}




More information about the R-SIG-Robust mailing list