Michael
2006-Feb-16 09:38 UTC
[R] MANOVA: how do I read off within and between Sum-of-Squares info from the manova result?
Hi all, I am experimenting the function "manova" in R. I tried it on a few data sets, but I did not understand the result: I used "summary(manova_result)" and "summary(manova_result, test='Wilks')" and they gave a bunch of numbers... But I need the Sum-of-Squares of BETWEEN and WITHIN matrices... How do I read off from the R's manova results? Any good example code and results? Also, I am looking for tutorials/notes on how to compute those BETWEEN and WITHIN Sum-of-Squares myself... I did not find any good discussion about MANOVA on the quite a few books I have on my hand currently... Any books/referecnes/notes/tutorials give clear formulas on how to compute the MANOVAs? Thanks a lot! [[alternative HTML version deleted]]
Spencer Graves
2006-Feb-19 20:07 UTC
[R] MANOVA: how do I read off within and between Sum-of-Squares info from the manova result?
1. You did NOT provide an example, so I don't know if the following example will help. I got it by following ?manova to "?summary.manova". tear <- c(6.5, 6.2, 5.8, 6.5, 6.5, 6.9, 7.2, 6.9, 6.1, 6.3, 6.7, 6.6, 7.2, 7.1, 6.8, 7.1, 7.0, 7.2, 7.5, 7.6) gloss <- c(9.5, 9.9, 9.6, 9.6, 9.2, 9.1, 10.0, 9.9, 9.5, 9.4, 9.1, 9.3, 8.3, 8.4, 8.5, 9.2, 8.8, 9.7, 10.1, 9.2) opacity <- c(4.4, 6.4, 3.0, 4.1, 0.8, 5.7, 2.0, 3.9, 1.9, 5.7, 2.8, 4.1, 3.8, 1.6, 3.4, 8.4, 5.2, 6.9, 2.7, 1.9) Y <- cbind(tear, gloss, opacity) rate <- factor(gl(2,10), labels=c("Low", "High")) additive <- factor(gl(2, 5, len=20), labels=c("Low", "High")) fit <- manova(Y ~ rate * additive) summary.aov(fit) # univariate ANOVA tables summary(fit, test="Wilks") # ANOVA table of Wilks' lambda 2. To proceed further, I tried the following: > class(fit) [1] "manova" "maov" "aov" "mlm" "lm" Inspired by this, I then tried the following: > ?methods > methods(class="manova") [1] summary.manova > methods(class="maov") no methods were found > methods(class="mlm") [1] add1.mlm* anova.mlm deviance.mlm* drop1.mlm* [5] estVar.mlm* mauchly.test.mlm* plot.mlm predict.mlm [9] SSD.mlm* summary.mlm vcov.mlm* Non-visible functions are asterisked This led me further: > fit Call: manova(Y ~ rate * additive) Terms: rate additive rate:additive Residuals tear 1.7405 0.7605 0.0005 1.7640 gloss 1.3005 0.6125 0.5445 2.6280 opacity 0.4205 4.9005 3.9605 64.9240 Deg. of Freedom 1 1 1 16 Residual standard error: 0.3320392 0.4052777 2.014386 Estimated effects may be unbalanced > estVar(fit) tear gloss opacity tear 0.110250 0.00125 -0.191875 gloss 0.001250 0.16425 -0.034500 opacity -0.191875 -0.03450 4.057750 > SSD(fit) $SSD tear gloss opacity tear 1.764 0.020 -3.070 gloss 0.020 2.628 -0.552 opacity -3.070 -0.552 64.924 $call manova(Y ~ rate * additive) $df [1] 16 If this does NOT answer your question, PLEASE do read the posting guide! (www.R-project.org/posting-guide.html) and send us another post. Realize, however, that in r-help as in just about any other aspect of human existence, people who are more clear about what they want are generally more successful. 3. I used MANOVA on a project 30 years ago. From that and subsequent experience, it seem to me that MANOVA is a highly specialized tool for which the required assumptions are rarely met. Most people are much better off making lots of plots to possible models and then residuals from model fits, etc. In rare cases, MANOVA doubtless can find effects that can not be seen in the component univariate analyses. However, I have yet to encounter such a case. If I had time to pursue a modeling effort beyond simple univeriate analyses, I thing I would move to "structural equation modeling" (package sem) or "partial least squares". "RSiteSearch" can lead you to R capabilities for these. (See also "http://finzi.psych.upenn.edu/R/Rhelp02a/archive/29119.html"). hope this helps. spencer graves Michael wrote:> Hi all, > > I am experimenting the function "manova" in R. > > I tried it on a few data sets, but I did not understand the result: > > I used "summary(manova_result)" > > and "summary(manova_result, test='Wilks')" > > and they gave a bunch of numbers... > > But I need the Sum-of-Squares of BETWEEN and WITHIN matrices... > > How do I read off from the R's manova results? > > Any good example code and results? > > Also, I am looking for tutorials/notes on how to compute those BETWEEN and > WITHIN Sum-of-Squares myself... > > I did not find any good discussion about MANOVA on the quite a few books I > have on my hand currently... > > Any books/referecnes/notes/tutorials give clear formulas on how to compute > the MANOVAs? > > Thanks a lot! > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
hadley wickham
2006-Feb-19 22:34 UTC
[R] MANOVA: how do I read off within and between Sum-of-Squares info from the manova result?
> However, I have yet to encounter such a case. If I had time to pursue > a modeling effort beyond simple univeriate analyses, I thing I would > move to "structural equation modeling" (package sem) or "partial least > squares". "RSiteSearch" can lead you to R capabilities for these. (See > also "http://finzi.psych.upenn.edu/R/Rhelp02a/archive/29119.html").Another option is to look at your data in their original high dimensional space, eg., with the grand tour in GGobi (http://www.ggobi.org, http://ggobi.org/demos/tour.html). MANOVA tests the hypothesis that the means are different (assuming multivariate normality and a common variance-covariance matrix). By looking at your data you can investigate more interesting hypotheses - are the groups overlapping? is there a linear or non-linear separation between the groups? are the responses highly correlated? Hadley