R Tutorial
Fundamentals of R
Variables
Input and Output
Decision Making
Control Flow
Functions
Strings
Vectors
Lists
Arrays
Matrices
Factors
DataFrames
Object Oriented Programming
Error Handling
File Handling
Packages in R
Data Interfaces
Data Visualization
Statistics
Machine Learning with R
MANOVA (Multivariate Analysis of Variance) is an extension of the ANOVA test that allows for the analysis of multiple dependent variables simultaneously. It's used to determine if there are any differences between independent groups based on multiple continuous dependent variables.
Here's a step-by-step tutorial on how to perform a MANOVA test in R:
For this example, let's assume you have a dataset data
with three dependent variables (dv1
, dv2
, dv3
) and a single factor (group
).
# Sample data set.seed(123) data <- data.frame( group = rep(1:3, each = 20), dv1 = rnorm(60), dv2 = rnorm(60), dv3 = rnorm(60) )
The manova()
function is used to perform MANOVA in R.
mod <- manova(cbind(dv1, dv2, dv3) ~ group, data = data) summary(mod, test = "Wilks")
The output provides Wilks' lambda statistic. The smaller the Wilks' lambda, the more the groups differ. Other test statistics you can use are Pillai
, Hotelling-Lawley
, and Roy
.
Just like ANOVA, MANOVA has some assumptions:
Multivariate Normality: The dependent variables should be approximately multivariate normally distributed within each group.
Homogeneity of Covariance Matrices: The covariance matrices of the dependent variables should be equal across groups. This can be checked using Box's M test.
library(BIOM.utils) # You might need to install this package modBox <- boxM(cbind(data$dv1, data$dv2, data$dv3) ~ data$group, data = data) print(modBox)
A significant p-value from Box's M test indicates that the covariance matrices are not equal across groups, thus violating the assumption.
If you find a significant effect in the MANOVA, you might want to perform post hoc tests to see where the differences lie for each dependent variable.
# Post hoc tests for each dependent variable library(multcomp) posthoc_dv1 <- glht(lm(dv1 ~ group, data = data), linfct = mcp(group = "Tukey")) summary(posthoc_dv1) posthoc_dv2 <- glht(lm(dv2 ~ group, data = data), linfct = mcp(group = "Tukey")) summary(posthoc_dv2) posthoc_dv3 <- glht(lm(dv3 ~ group, data = data), linfct = mcp(group = "Tukey")) summary(posthoc_dv3)
In conclusion, MANOVA is a powerful multivariate technique that can analyze the effect of one or more independent variables on multiple dependent variables simultaneously. Like any statistical method, ensure that the assumptions are met before interpreting the results.
Performing MANOVA in R example:
Overview: Learn how to perform MANOVA in R to analyze the effect of one or more independent variables on multiple dependent variables.
Code:
# Performing MANOVA in R data(iris) manova_result <- manova(cbind(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width) ~ Species, data = iris) print(manova_result)
R code for MANOVA test:
Overview: Provide a basic example of R code for conducting a MANOVA test.
Code:
# R code for MANOVA data(mtcars) manova_result <- manova(cbind(mpg, hp, qsec) ~ am, data = mtcars) print(manova_result)
Conducting MANOVA with multiple dependent variables in R:
Overview: Extend MANOVA to situations with more than two dependent variables.
Code:
# MANOVA with multiple dependent variables data(iris) manova_result <- manova(cbind(Sepal.Length, Sepal.Width) ~ Species + Petal.Length + Petal.Width, data = iris) print(manova_result)