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

S Ellison S@E|||@on @end|ng |rom LGCGroup@com
Mon Jul 23 23:00:27 CEST 2012


I am aware of the lmrob implementation; I've been following it with considerable interest. 
As a matter of fact I see robustbase all round as a better implementation of robust statistics than MASS, and lmrob as a good example of a specialised package with sound research overtaking the more general teaching package that MASS represents. It was just the brevity of Valentin's post - which pointed specifically to MM-estimates' performance - that led me to note for the OP's benefit that an MM estimate was also included in MASS. 

But thanks for the thought.

Steve Ellison,
Lab of the Government Chemist
Teddington
UK
________________________________________
From: Dr. Peter Ruckdeschel [peter.ruckdeschel using itwm.fraunhofer.de]
Sent: 23 July 2012 15:07
To: r-sig-robust using r-project.org
Cc: Valentin Todorov; mrohan using doc.govt.nz; S Ellison
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 u...{{dropped:25}}




More information about the R-SIG-Robust mailing list