[Rd] anova.mlm (single-model case) does not handle factors? (PR#8679)

From: <Yves.Rosseel_at_ugent.be>
Date: Mon 13 Mar 2006 - 14:24:44 GMT


Full_Name: Yves Rosseel
Version: 2.2.1
OS: i686-pc-linux-gnu
Submission from: (NULL) (157.193.116.152)

Dear developers,

For the single-model case, the anova.mlm() function does not seem to handle multi-parameter predictors (eg factors) correctly. A toy example illustrates the problem:

Y <- cbind(rnorm(100),rnorm(100),rnorm(100)) A <- factor(rep(c(1,2,3,4), each=25))
fit <- lm(Y ~ A)
anova.mlm(fit)

gives

Error in T %*% ss[[i]] : non-conformable arguments

I think the problem lies in the computation of the 'ss' terms (line 237 in the file mlm.R in the source code). Changing this (and the following line) by something similar to what is done in summary.manova seems to resolve the problem:

 comp <- as.matrix(fit$effects)[seq(along=asgn), ,drop=FALSE]  uasgn <- unique(asgn)
 nterms <- length(uasgn)
 ss <- list(nterms)
 df <- numeric(nterms)
 for(i in seq(nterms)) {

    ai <- (asgn == uasgn[i])
    ss[[i]] <- crossprod(comp[ai, ,drop=FALSE])     df[i] <- sum(ai)
 }



R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Sat Mar 18 04:24:30 2006

This archive was generated by hypermail 2.1.8 : Sat 18 Mar 2006 - 01:16:34 GMT