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