Як створити діаграму взаємодії в r
Двосторонній дисперсійний аналіз використовується, щоб визначити, чи існує різниця між середніми значеннями трьох або більше незалежних груп, які були розділені за двома факторами.
Ми використовуємо двосторонній дисперсійний аналіз, коли хочемо знати, чи два конкретні фактори впливають на певну змінну відповіді.
Однак інколи існує ефект взаємодії між двома факторами, який може вплинути на те, як ми інтерпретуємо зв’язок між факторами та змінною відповіді.
Наприклад, ми можемо захотіти знати, чи фактори (1) фізичні вправи та (2) стать впливають на змінну відповіді на втрату ваги . Хоча можливо, що обидва фактори впливають на втрату ваги, також можливо, що вони взаємодіють один з одним.
Наприклад, цілком можливо, що фізичні вправи спричиняють різну швидкість втрати ваги у чоловіків і жінок. У цьому випадку існує ефект взаємодії між вправами та статтю.
Найпростіший спосіб виявити та зрозуміти ефекти взаємодії між двома факторами — це використовувати графік взаємодії .
Це тип графіка, який відображає підібрані значення змінної відповіді на осі ординат і значення першого фактора на осі абсцис. Між тим, лінії на графіку представляють значення другого цікавого фактора.
Цей підручник пояснює, як створити та інтерпретувати діаграму взаємодії в R.
Приклад: діаграма взаємодії в R
Скажімо, дослідники хочуть визначити, чи впливають інтенсивність вправ і стать на втрату ваги. Щоб перевірити це, вони залучили 30 чоловіків і 30 жінок для участі в експерименті, у якому вони випадковим чином призначили 10 з них виконувати програму вправ без фізичних вправ, легкі вправи або інтенсивні вправи протягом місяця.
Виконайте наступні кроки, щоб створити фрейм даних у R, виконати двосторонній дисперсійний аналіз і створити діаграму взаємодії, щоб візуалізувати ефект взаємодії між вправами та статтю.
Крок 1: Створіть дані.
Наступний код показує, як створити кадр даних у R:
#make this example reproducible set.seed(10) #create data frame data <- data.frame(gender = rep (c("Male", "Female"), each = 30 ), exercise = rep (c("None", "Light", "Intense"), each = 10 , times = 2 ), weight_loss = c(runif(10, -3, 3), runif(10, 0, 5), runif(10, 5, 9), runif(10, -4, 2), runif(10, 0, 3), runif(10, 3, 8))) #view first six rows of data frame head(data) gender exercise weight_loss 1 Male None 0.04486922 2 Male None -1.15938896 3 Male None -0.43855400 4 Male None 1.15861249 5 Male None -2.48918419 6 Male None -1.64738030
Крок 2. Підберіть двосторонню модель ANOVA.
У наведеному нижче коді показано, як пристосувати двосторонній дисперсійний аналіз до даних:
#fit the two-way ANOVA model model <- aov(weight_loss ~ gender * exercise, data = data) #view the model output summary(model) # Df Sum Sq Mean Sq F value Pr(>F) #gender 1 15.8 15.80 11.197 0.0015 ** #exercise 2 505.6 252.78 179.087 <2e-16 *** #gender:exercise 2 13.0 6.51 4.615 0.0141 * #Residuals 54 76.2 1.41 #--- #Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Зверніть увагу, що p-значення ( 0,0141 ) для терміну взаємодії між фізичними вправами та статтю є статистично значущим, що вказує на наявність значного ефекту взаємодії між двома факторами.
Крок 3: Створіть діаграму взаємодії.
Наступний код показує, як створити діаграму взаємодії для вправи та статі:
interaction.plot(x.factor = data$exercise, #x-axis variable trace.factor = data$gender, #variable for lines response = data$weight_loss, #y-axis variable fun = median, #metric to plot ylab = "Weight Loss", xlab = "Exercise Intensity", col = c("pink", "blue"), lty = 1, #line type lwd = 2, #linewidth trace.label = "Gender")
Загалом, якщо дві лінії діаграми взаємодії паралельні, ефекту взаємодії немає. Однак, якщо лінії перетинаються, ймовірно, існує ефект взаємодії.
На цьому графіку ми бачимо, що лінії для чоловіків і жінок перетинаються, що вказує на ймовірний ефект взаємодії між змінними інтенсивності вправ і статтю.
Це відповідає тому факту, що p-значення в результатах таблиці ANOVA було статистично значущим для терміну взаємодії в моделі ANOVA.
Додаткові ресурси
Як виконати односторонній дисперсійний аналіз у R
Як виконати двосторонній дисперсійний аналіз у R