Как выполнить manova в r
Чтобы понять MANOVA, сначала полезно понять ANOVA.
ANOVA (дисперсионный анализ) используется для определения наличия или отсутствия статистически значимой разницы между средними значениями трех или более независимых групп.
Например, предположим, что мы хотим знать, влияет ли техника обучения на экзаменационные баллы класса студентов. Мы случайным образом разделили класс на три группы. Каждая группа в течение месяца использует разные методики обучения для подготовки к экзамену. В конце месяца все студенты сдают один и тот же экзамен.
Чтобы выяснить, влияет ли техника обучения на результаты экзамена, мы можем выполнить однофакторный дисперсионный анализ, который покажет нам, существует ли статистически значимая разница между средними баллами трех групп.
В ANOVA у нас есть переменная отклика. Однако в MANOVA (многомерном дисперсионном анализе) у нас есть несколько переменных ответа.
Например, предположим, что мы хотим знать, как уровень образования (т. е. средняя школа, степень младшего специалиста, степень бакалавра, степень магистра и т. д.) влияет как на годовой доход, так и на сумму студенческой задолженности. В этом случае у нас есть один фактор (уровень образования) и две переменные ответа (годовой доход и студенческий долг), поэтому мы можем выполнить одностороннюю МАНОВУ.
Связанный: Понимание различий между ANOVA, ANCOVA, MANOVA и MANCOVA
Как выполнить MANOVA в R
В следующем примере мы проиллюстрируем, как выполнить одностороннюю MANOVA в R, используя встроенный набор данных ирисов , который содержит информацию о длине и ширине различных размеров цветов для трех разных видов («setosa», «virginica». , «разноцветный»)):
#view first six rows of iris dataset
head(iris)
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa
#6 5.4 3.9 1.7 0.4 setosa
Предположим, мы хотим знать, влияет ли вид на длину и ширину чашелистика. Используя виды в качестве независимой переменной, а длину и ширину чашелистика в качестве переменных ответа, мы можем выполнить одностороннюю MANOVA, используя функцию manova() в R.
Функция manova() использует следующий синтаксис:
manova (cbind (rv1, rv2, …) ~ iv, data)
Золото:
- rv1, rv2 : переменная ответа 1, переменная ответа 2 и т. д.
- iv : независимая переменная
- данные : имя фрейма данных
В нашем примере с набором данных радужной оболочки мы можем подогнать MANOVA и отобразить результаты, используя следующий синтаксис:
#fit the MANOVA model model <- manova(cbind(Sepal.Length, Sepal.Width) ~ Species, data = iris) #view the results summary(model) # Df Pillai approx F num Df den Df Pr(>F) #Species 2 0.94531 65.878 4,294 < 2.2e-16 *** #Residuals 147 #--- #Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Из результата мы видим, что статистика F равна 65,878, а соответствующее значение p чрезвычайно мало. Это указывает на статистически значимую разницу в размерах чашелистиков в зависимости от вида.
Техническое примечание. По умолчанию manova() использует статистику теста Пиллаи . Поскольку распределение этой тестовой статистики сложное, для облегчения интерпретации также предоставляется приблизительное значение F.
Кроме того, в качестве тестовой статистики можно указать «Рой», «Хотеллинг-Лоули» или «Уилкс», используя следующий синтаксис: summary(model, test = «Wilks»)
Чтобы точно выяснить, как вид влияет на длину и ширину чашелистика, мы можем выполнить одномерный дисперсионный анализ с помощью summary.aov() , как показано в следующем коде:
summary.aov(model) # Response Sepal.Length: # Df Sum Sq Mean Sq F value Pr(>F) #Species 2 63.212 31.606 119.26 < 2.2e-16 *** #Residuals 147 38.956 0.265 #--- #Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 # Response Sepal.Width: # Df Sum Sq Mean Sq F value Pr(>F) #Species 2 11.345 5.6725 49.16 < 2.2e-16 *** #Residuals 147 16.962 0.1154 #--- #Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Из результата мы видим, что значения p для обоих одномерных ANOVA чрезвычайно низкие (<2,2e-16), что указывает на то, что виды оказывают статистически значимое влияние на ширину и длину чашелистика .
Визуализируйте ресурсы группы
Также может быть полезно визуализировать групповые средние для каждого уровня наших независимых переменных видов , чтобы лучше понять наши результаты.
Например, мы можем использовать библиотеку gplots и функциюplotmeans() для визуализации средней длины чашелистиков по видам :
#load gplots library library(gplots) #visualize mean sepal length by species plotmeans(iris$Sepal.Length ~ iris$Species)
Из графика мы видим, что средняя длина чашелистика сильно различается у разных видов. Это соответствует результатам нашего исследования MANOVA, которое показало нам статистически значимую разницу в размерах чашелистиков у разных видов.
Мы также можем визуализировать среднюю ширину чашелистиков по видам :
plotmeans(iris$Sepal.Width ~ iris$Species)
Полную документацию по функции manova() смотрите здесь .