[R] Problems with lqs()

Kathrin Schmidt kat.schmidt1 at web.de
Tue Aug 4 15:01:15 CEST 2009


Dear List-Members,

I have a problem with the function lqs() from package MASS. In some cases it produces different results for the same settings and needs a random seed to be set, in other cases not. 
I really cannot understand, why this happens. As well I do not understand what exactly you need the random seed for. Is it a starting point for iterations? Or do different results occur because of the estimation doesn't converge?


I tried data "phones" from package MASS. You find this example as well in the MASS-book on page 160.

> lqs(calls~year, data=phones, method="lms")
Call:
lqs.formula(formula = calls ~ year, data = phones, method = "lms")

Coefficients:
(Intercept)         year  
    -55.947        1.155  

Scale estimates 0.9377 0.9095 

> 
> lqs(calls~year, data=phones, method="S")
Call:
lqs.formula(formula = calls ~ year, data = phones, method = "S")

Coefficients:
(Intercept)         year  
      -52.5          1.1  

Scale estimates 2.129 

You can do it over and over again and get the same coefficients. In contrast, if u use other data like cats from MASS or simulated data, u get different outputs every time u start the code if not electing a random.seed.

> lqs(Hwt~Bwt, data=cats, method="S") 
Call:
lqs.formula(formula = Hwt ~ Bwt, data = cats, method = "S")

Coefficients:
(Intercept)          Bwt  
     0.2625       3.6250  

Scale estimates 1.474 

> lqs(Hwt~Bwt, data=cats, method="S") 
Call:
lqs.formula(formula = Hwt ~ Bwt, data = cats, method = "S")

Coefficients:
(Intercept)          Bwt  
     0.4714       3.5714  

Scale estimates 1.474 



Example with simulated data:

> b0<--1
> b1<-6
> b2<-0.8
> b3<--0.5
> 
> x1<-runif(200,-3,3)
> x2<-runif(200,20,40)
> x3<-rbinom(200, 1, 0.7)
> e<-rnorm(200,0,1)
> y<-b0+b1*x1+b2*x2+b3*x3+e
> lqs(y~x1, method="lms")
Call:
lqs.formula(formula = y ~ x1, method = "lms")

Coefficients:
(Intercept)           x1  
     22.239        4.964  

Scale estimates 5.379 4.891 

> 
> lqs(y~x1, method="S")
Call:
lqs.formula(formula = y ~ x1, method = "S")

Coefficients:
(Intercept)           x1  
     23.193        5.743  

Scale estimates 5.642 

> lqs(y~x1, method="lms")
Call:
lqs.formula(formula = y ~ x1, method = "lms")

Coefficients:
(Intercept)           x1  
     21.176        5.255  

Scale estimates 5.383 5.023 

> 
> lqs(y~x1, method="S")
Call:
lqs.formula(formula = y ~ x1, method = "S")

Coefficients:
(Intercept)           x1  
      22.55         5.46  

Scale estimates 5.642 


Thanks for your help,
I appreciate it!

K. Schmidt


________________________________________________________________
Neu: WEB.DE Doppel-FLAT mit Internet-Flatrate + Telefon-Flatrate
für nur 19,99 Euro/mtl.!* http://produkte.web.de/go/02/




More information about the R-help mailing list