Error in eigen(qr.coef(if (repeated) qr(x$SSPE[[term]]) else SSPE.qr, : infinite or missing values in 'x'

I am trying to get the results of my manova by using the following code from the car package. However I get two error messages (from the getManova function):

  1. Error in eigen(qr.coef(if (repeated) qr(x$SSPE[[term]]) else SSPE.qr, : infinite or missing values in 'x'
  2. Error in getManova(av) : singular error SSP matrix; multivariate tests unavailable try summary(object, multivariate=FALSE)

I am running my manova by permuting it 1000 times, and I obtain the error at different random permutations each time. I have checked my original data and it does not contain NaNs nor infinite values.

How could I fix this issue?

av <- Manova(lmfit, idata = idata, idesign = ~emotion*frequency,type="III");
stat<-getManova(av);


getManova <- function (x) 
{
  if ((!is.null(x$singular)) && x$singular) 
    stop("singular error SSP matrix; multivariate tests unavailable\ntry summary(object, multivariate=FALSE)")
  test <- x$test
  repeated <- x$repeated
  ntests <- length(x$terms)
  tests <- matrix(NA, ntests, 4)
  if (!repeated) 
    SSPE.qr <- qr(x$SSPE)
  for (term in 1:ntests) {
    eigs <- Re(eigen(qr.coef(if (repeated) qr(x$SSPE[[term]]) else SSPE.qr, 
                             x$SSP[[term]]), symmetric = FALSE)$values)
    tests[term, 1:4] <- switch(test, Pillai = stats:::Pillai(eigs, 
                                                             x$df[term], x$error.df), Wilks = stats:::Wilks(eigs, 
                                                                                                            x$df[term], x$error.df), `Hotelling-Lawley` = stats:::HL(eigs, 
                                                                                                                                                                     x$df[term], x$error.df), Roy = stats:::Roy(eigs, 
                                                                                                                                                                                                                x$df[term], x$error.df))
  }
  ok <- tests[, 2] >= 0 & tests[, 3] > 0 & tests[, 4] > 0
  ok <- !is.na(ok) & ok
  tests <- cbind(x$df, tests, pf(tests[ok, 2], tests[ok, 3], 
                                 tests[ok, 4], lower.tail = FALSE))
  rownames(tests) <- x$terms
  colnames(tests) <- c("Df", "test stat", "approx F", "num Df", 
                       "den Df", "Pr(>F)")
  tests <- structure(as.data.frame(tests), heading = paste("\nType ", 
                                                           x$type, if (repeated) 
                                                             " Repeated Measures", " MANOVA Tests: ", test, " test statistic", 
                                                           sep = ""), class = c("anova", "data.frame"))
  #print(tests)
  invisible(x)
  return(tests)
}

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.