Як виконати manova в r
Щоб зрозуміти MANOVA, спочатку корисно зрозуміти ANOVA.
ANOVA (дисперсійний аналіз) використовується, щоб визначити, чи існує статистично значуща різниця між середніми значеннями трьох або більше незалежних груп.
Наприклад, скажімо, ми хочемо знати, чи впливає техніка навчання на результати іспитів у класі студентів. Ми розділили клас на три групи випадковим чином. Кожна група використовує різну методику навчання протягом місяця для підготовки до іспиту. Наприкінці місяця всі учні складають однаковий іспит.
Щоб з’ясувати, чи техніка навчання впливає на результати іспитів, ми можемо виконати односторонній дисперсійний аналіз, який покаже нам, чи є статистично значуща різниця між середніми оцінками трьох груп.
У ANOVA ми маємо змінну відповіді. Однак у MANOVA (багатофакторний дисперсійний аналіз) ми маємо кілька змінних відповідей.
Наприклад, припустімо, що ми хочемо знати, який вплив має рівень освіти (тобто середня школа, ступінь молодшого спеціаліста, ступінь бакалавра, ступінь магістра тощо) як на річний дохід, так і на суму студентського боргу. У цьому випадку ми маємо один фактор (рівень освіти) і дві змінні відповіді (річний дохід і студентська заборгованість), тому ми можемо виконати односторонній 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, дані)
золото:
- rv1, rv2 : змінна відповіді 1, змінна відповіді 2 тощо.
- iv : незалежна змінна
- data : назва кадру даних
У нашому прикладі з набором даних райдужної оболонки ми можемо підібрати 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.
Крім того, можна вказати «Roy», «Hotelling-Lawley» або «Wilks» як тестову статистику для використання за допомогою такого синтаксису: підсумок (модель, тест = «Wilks»)
Щоб точно дізнатися, як довжина та ширина чашолистка залежить від виду , ми можемо виконати однофакторний ANOVA за допомогою 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() тут .