[R] problems using lqs()

kjetil brinchmann halvorsen kjetil at entelnet.bo
Mon Feb 10 17:17:16 CET 2003


On 10 Feb 2003 at 15:40, Luca Scrucca wrote:

I am not sure about this, but lqs have an extra argument `adjust'.
from the help page:

adjust:
should the intercept be optimized for each sample? Defaults to TRUE

When you use formula, the estimation algorithm knows 
the columns of 1's is the intercept, and can traet it accordingly. 

When yo make the matrix X with on regressor column being all1's, 
the estimation algorithm does'nt know it represents the 
intercept (you did'nt give it a name). Could this be the reason why 
the different results?

Testing this conjecture:

 mod4 <- lqs(y ~ x1 + x2, method="lms", nsamp="exact", adjust=FALSE)
> coef(mod4)
(Intercept)          x1          x2 
 35.4217275   0.4276641  -1.2834731 
> coef(mod1)
(Intercept)          x1          x2 
 35.5293489   0.4422742  -1.2944534 
> coef(mod2)
                   x1         x2 
35.4217275  0.4276641 -1.2834731 

so this might be the explanation.

By the way, for the last question, using debug()
and looking at the output gives:

Browse[1]> n
debug: subset <- eval(substitute(subset), data, env)
Browse[1]> n
debug: data <- .Internal(model.frame(formula, rownames, variables, 
varnames, 
    extras, extranames, subset, na.action))
Browse[1]> n
Error in model.frame(formula, rownames, variables, varnames, extras, 
extranames,  : 
        variable lengths differ

so the error occurs in model.frame. You could continue 
the debugging yourself. (don't have time now).

Kjetil Halvorsen

> Dear List-members,
> 
> I found a strange behaviour in the lqs function.
> Suppose I have the following data:
> 
> y <-  c(7.6, 7.7, 4.3, 5.9, 5.0, 6.5, 8.3, 8.2, 13.2, 12.6, 10.4, 10.8,
> 13.1, 12.3, 10.4, 10.5, 7.7, 9.5, 12.0, 12.6, 13.6, 14.1, 13.5, 11.5,
> 12.0, 13.0, 14.1, 15.1)
> x1 <- c(8.2, 7.6,, 4.6, 4.3, 5.9, 5.0, 6.5, 8.3, 10.1, 13.2, 12.6, 10.4,
> 10.8, 13.1, 13.3, 10.4, 10.5, 7.7, 10.0, 12.0, 12.1, 13.6, 15.0, 13.5,
> 11.5, 12.0, 13.0, 14.1)
> x2 <- c(23.005, 23.873, 26.417, 24.868, 29.895, 24.200, 23.215, 21.862,
> 22.274, 23.830, 25.144, 22.430, 21.785, 22.380, 23.927, 33.443, 24.859,
> 22.686, 21.789, 22.041, 21.033, 21.005, 25.865, 26.290, 22.932, 21.313,
> 20.769, 21.393)
> 
> and I would like to fit the following model:
> 
> mod1 <- lqs(y ~ x1 + x2, method="lms", nsamp="exact")
> mod1$coefficients
> (Intercept)          x1          x2
>  35.5293489   0.4422742  -1.2944534
> mod1$bestone
> [1] 12 17 27
> 
> Now, instead of using the formula, I want to provide the design matrix and
> the response, then:
> 
> X <- cbind(1, x1, x2)
> mod2 <- lqs.default(X, y, intercept=F, method="lms", nsamp="exact")
> mod2$coefficients
>                    x1         x2
> 35.4217275  0.4276641 -1.2834731
> mod2$bestone
> [1]  6 14 15
> 
> The results are not the same (?!). Furthermore, if I create the design
> matrix without the column of 1's for the intercept:
> 
> X <- cbind(x1, x2)
> mod3 <- lqs.default(X, y, intercept=T, method="lms", nsamp="exact")
> > mod3$coefficients
> (Intercept)          x1          x2
>  35.5293489   0.4422742  -1.2944534
> > mod3$bestone
> [1] 12 17 27
> 
> I get the same result I had using the formula (see mod1).
> This is confusing me!
> 
> Another small problem appears if I re-fit the first model using the
> formula and asking to return the x-matrix and the response:
> 
> lqs(y ~ x1 + x2, method="lms", nsamp="exact", x.ret=T, y.ret=T)
> 
> Error in model.frame(formula, rownames, variables, varnames, extras,
> extranames,  :
> 	variable lengths differ
> 
> Does anyone know what's going on?
> 
> Regards, with thanks in advance,
> 
> Luca Scrucca
> 
> 
> +-----------------------------------------------------------------------+
> | Dr. Luca Scrucca                                                      |
> | Dipartimento di Scienze Statistiche      tel. +39 - 075 - 5855278     |
> | Universita' degli Studi di Perugia       fax. +39 - 075 - 43242       |
> | Via Pascoli - C.P. 1315 Succ. 1                                       |
> | 06100 PERUGIA  (ITALY)                                                |
> |                                                                       |
> | E-mail:   luca at stat.unipg.it                                          |
> | Web page: http://www.stat.unipg.it/luca                               |
> +-----------------------------------------------------------------------+
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> http://www.stat.math.ethz.ch/mailman/listinfo/r-help




More information about the R-help mailing list