I'm trying to write some functions extending influence measures to multivariate linear models and also allow subsets of size m>=1 to be considered for deletion diagnostics. I'd like these to work roughly parallel to those functions for the univariate lm where only single case deletion (m=1) diagnostics are considered.

Corresponding to stats::hatvalues.lm, the S3 method for class "lm" objects,

> hatvalues <-function (model, ...)
UseMethod("hatvalues")

> hatvalues.lm <-
function (model, infl = lm.influence(model, do.coef = FALSE),    ...)
{
    hat <- infl$hat
    names(hat) <- names(infl$wt.res)
    hat
}

I have, for class "mlm" objects

hatvalues.mlm <- function(model, m=1, infl=mlm.influence(model, m=m, do.coef = FALSE), ...)
{
    hat <- infl$H
    m <- infl$m
names(hat) <- if(m==1) infl$subsets else apply(infl$subsets,1, paste, collapse=',')
    hat
}

where mlm.influence() does the calculations, but also allows the m= argument to specify subset size. Yet when I test this I can't seem to pass the m= argument directly, so that it gets stuffed in to the infl=
call to mlm.influence.

# fit an mlm
library(heplots)
Rohwer2 <- subset(Rohwer, subset=group==2)
rownames(Rohwer2)<- 1:nrow(Rohwer2)
Rohwer.mod <- lm(cbind(SAT, PPVT, Raven) ~ n+s+ns+na+ss, data=Rohwer2)

> class(Rohwer.mod)
[1] "mlm" "lm"


## this doesn't work, as I would like it to, calling the hatvalues.mlm method, but passing m=2:
> hatvalues(Rohwer.mod, m=2)
Error in UseMethod("hatvalues") :
no applicable method for 'hatvalues' applied to an object of class "c('double', 'numeric')"

I don't understand why this doesn't just call hatvalues.mlm, since Rohwer.mod is of class "mlm".

# These work -- calling hatvalues.mlm explicitly, or passing the infl= argument with the call to
# mlm.influence
> hatvalues.mlm(Rohwer.mod, m=2)
> hatvalues(Rohwer.mod, infl=mlm.influence(Rohwer.mod,m=2))

Can someone help me understand what is wrong and how to make the .mlm method allow m= to be passed
directly to the infl= computation?

thx,
-Michael

--
Michael Friendly     Email: friendly AT yorku DOT ca
Professor, Psychology Dept.
York University      Voice: 416 736-5115 x66249 Fax: 416 736-5814
4700 Keele Street    Web:   http://www.datavis.ca
Toronto, ONT  M3J 1P3 CANADA

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to