Як виконати тристоронній дисперсійний аналіз у r
Тристоронній дисперсійний аналіз використовується, щоб визначити, чи існує статистично значуща різниця між середніми значеннями трьох або більше незалежних груп, які були розподілені між трьома факторами.
У наступному прикладі показано, як виконати тристоронній дисперсійний аналіз у R.
Приклад: Тристоронній дисперсійний аналіз R
Припустімо, що дослідник хоче визначити, чи призводять дві тренувальні програми до різного середнього покращення висоти стрибка серед студентських баскетболістів.
Дослідник підозрює, що стать і поділ (Розділ I або II) також можуть впливати на висоту стрибка, тому він також збирає дані про ці фактори.
Його мета — виконати тристоронній дисперсійний аналіз, щоб визначити, як програма тренувань, стать і класифікація впливають на висоту стрибка.
Виконайте такі кроки, щоб виконати цей тристоронній дисперсійний аналіз в R:
Крок 1: Створіть дані
Спочатку давайте створимо фрейм даних для зберігання даних:
#create dataset df <- data. frame (program=rep(c(1, 2), each= 20 ), gender=rep(c(' M ', ' F '), each= 10 , times= 2 ), division=rep(c(1, 2), each= 5 , times= 4 ), height=c(7, 7, 8, 8, 7, 6, 6, 5, 6, 5, 5, 5, 4, 5, 4, 3, 3, 4, 3, 3, 6, 6, 5, 4, 5, 4, 5, 4, 4, 3, 2, 2, 1, 4, 4, 2, 1, 1, 2, 1)) #view first six rows of dataset head(df) program gender division height 1 1 M 1 7 2 1 M 1 7 3 1 M 1 8 4 1 M 1 8 5 1 M 1 7 6 1 M 2 6
Крок 2: Перегляньте описову статистику
Перш ніж виконувати тристоронній дисперсійний аналіз, ми можемо використати dplyr , щоб швидко підсумувати середнє збільшення висоти стрибка, згруповане за програмою тренувань, статтю та класом:
library (dplyr) #calculate mean jumping height increase grouped by program, gender, and division df %>% group_by(program, gender, division) %>% summarize(mean_height = mean(height)) # A tibble: 8 x 4 # Groups: program, gender [4] program gender division mean_height 1 1 F 1 4.6 2 1 F 2 3.2 3 1 M 1 7.4 4 1 M 2 5.6 5 2 F 1 2.6 6 2 F 2 1.4 7 2 M 1 5.2 8 2 M 2 4
Ось як інтерпретувати результат:
- Середнє збільшення висоти стрибка для жінок Дивізіону I, які використовували Тренувальну програму 1, становило 4,6 дюйма .
- Середнє збільшення висоти стрибка серед жінок Дивізії II, які використовували Програму навчання 1, становило 3,2 дюйма .
- Середнє збільшення висоти стрибка серед чоловіків Дивізіону I, які використовували Тренувальну програму 1, становило 7,4 дюйма .
І так далі.
Крок 3: Виконайте тристоронній дисперсійний аналіз
Далі ми можемо використати функцію aov() для виконання трифакторного дисперсійного аналізу:
#perform three-way ANOVA model <- aov(height ~ program * gender * division, data=df) #view summary of three-way ANOVA summary(model) Df Sum Sq Mean Sq F value Pr(>F) program 1 36.1 36.10 65.636 2.98e-09 *** gender 1 67.6 67.60 122.909 1.71e-12 *** division 1 19.6 19.60 35.636 1.19e-06 *** program:gender 1 0.0 0.00 0.000 1.000 program:division 1 0.4 0.40 0.727 0.400 gender:division 1 0.1 0.10 0.182 0.673 program:gender:division 1 0.1 0.10 0.182 0.673 Residuals 32 17.6 0.55 --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Стовпець Pr(>F) відображає значення p для кожного окремого фактора та взаємодію між факторами.
З результатів ми бачимо, що жодна взаємодія між трьома факторами не була статистично значущою.
Ми також бачимо, що кожен із трьох факторів – програма, стать і підрозділ – був статистично значущим.
Тепер ми можемо знову використати dplyr, щоб знайти середнє збільшення висоти стрибка окремо для програми, статі та підрозділу:
library (dplyr) #find mean jumping increase by program df %>% group_by(program) %>% summarize(mean_height = mean(height)) # A tibble: 2 x 2 program mean_height 1 1 5.2 2 2 3.3 #find mean jumping increase by gender df %>% group_by(gender) %>% summarize(mean_height = mean(height)) # A tibble: 2 x 2 gender mean_height 1 F 2.95 2M 5.55 #find mean jumping increase by division df %>% group_by(division) %>% summarize(mean_height = mean(height)) # A tibble: 2 x 2 division mean_height 1 1 4.95 2 2 3.55
З результату можна помітити наступне:
- Середнє збільшення висоти стрибка для осіб, які використовували тренувальну програму 1 ( 5,2 дюйма ), було більшим, ніж середнє збільшення для осіб, які використовували тренувальну програму 2 (3,3 дюйма ).
- Середнє збільшення висоти стрибка для чоловіків ( 5,55 дюйма ) було більшим, ніж середнє збільшення для жінок (2,95 дюйма ).
- Середнє збільшення висоти стрибка серед гравців Дивізіону 1 ( 4,95 дюйма ) було більшим, ніж середнє збільшення серед гравців Дивізіону 2 (3,55 дюйма ).
Підсумовуючи, ми б сказали, що тренувальна програма, стать і дивізіон є важливими показниками збільшення висоти стрибка у гравців.
Ми б також сказали, що між цими трьома факторами немає істотних ефектів взаємодії.
Додаткові ресурси
У наступних посібниках пояснюється, як адаптувати інші моделі ANOVA в R:
Як виконати односторонній дисперсійний аналіз у R
Як виконати двосторонній дисперсійний аналіз у R