One Way ANOVA
Giriş
Bu araştırmada kontrol, hafif egzersiz ve yoğun egzersiz gruplarının stres düzeyleri karşılaştırılmıştır. Amaç, farklı egzersiz düzeylerine sahip grupların stres puanı ortalamaları arasında anlamlı bir fark olup olmadığını incelemektir. Üç farklı grup karşılaştırıldığı için One Way ANOVA testi kullanılmıştır.
Hipotezler
H0: Grupların stres puanı ortalamaları arasında anlamlı bir fark yoktur.
H1: Grupların stres puanı ortalamaları arasında anlamlı bir fark vardır.
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(car)
## Warning: package 'car' was built under R version 4.5.3
## Zorunlu paket yükleniyor: carData
## Warning: package 'carData' was built under R version 4.5.3
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
library(effectsize)
## Warning: package 'effectsize' was built under R version 4.5.3
Veri Setinin Oluşturulması
set.seed(123)
anova_data <- data.frame(
participant_id = 1:90,
group = rep(c("Kontrol", "Hafif_Egzersiz", "Yogun_Egzersiz"), each = 30),
anxiety_score = c(
rnorm(30, mean = 58, sd = 8),
rnorm(30, mean = 52, sd = 8),
rnorm(30, mean = 46, sd = 8)
)
)
head(anova_data)
## participant_id group anxiety_score
## 1 1 Kontrol 53.51619
## 2 2 Kontrol 56.15858
## 3 3 Kontrol 70.46967
## 4 4 Kontrol 58.56407
## 5 5 Kontrol 59.03430
## 6 6 Kontrol 71.72052
Veri Setini İnceleyelim
glimpse(anova_data)
## Rows: 90
## Columns: 3
## $ participant_id <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, …
## $ group <chr> "Kontrol", "Kontrol", "Kontrol", "Kontrol", "Kontrol", …
## $ anxiety_score <dbl> 53.51619, 56.15858, 70.46967, 58.56407, 59.03430, 71.72…
Eksik Veri Kontrolü
colSums(is.na(anova_data))
## participant_id group anxiety_score
## 0 0 0
Grup Değişkeninin Düzenlenmesi
anova_data$group <- as.factor(anova_data$group)
table(anova_data$group)
##
## Hafif_Egzersiz Kontrol Yogun_Egzersiz
## 30 30 30
Betimsel İstatistikler
anova_istatistik <- anova_data %>%
group_by(group) %>%
summarise(
N = n(),
Ortalama = mean(anxiety_score),
Standart_Sapma = sd(anxiety_score)
)
anova_istatistik
## # A tibble: 3 × 4
## group N Ortalama Standart_Sapma
## <fct> <int> <dbl> <dbl>
## 1 Hafif_Egzersiz 30 53.4 6.68
## 2 Kontrol 30 57.6 7.85
## 3 Yogun_Egzersiz 30 46.2 6.96
Normallik Testi
anova_data %>%
group_by(group) %>%
summarise(
shapiro_p = shapiro.test(anxiety_score)$p.value
)
## # A tibble: 3 × 2
## group shapiro_p
## <fct> <dbl>
## 1 Hafif_Egzersiz 0.961
## 2 Kontrol 0.797
## 3 Yogun_Egzersiz 0.848
One Way Anova
anova_sonuc <- aov(anxiety_score ~ group, data = anova_data)
summary(anova_sonuc)
## Df Sum Sq Mean Sq F value Pr(>F)
## group 2 2005 1002.5 19.45 1.04e-07 ***
## Residuals 87 4485 51.5
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Post Hoc Testi
TukeyHSD(anova_sonuc)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = anxiety_score ~ group, data = anova_data)
##
## $group
## diff lwr upr p adj
## Kontrol-Hafif_Egzersiz 4.196463 -0.2239396 8.616866 0.0664473
## Yogun_Egzersiz-Hafif_Egzersiz -7.231344 -11.6517464 -2.810941 0.0005479
## Yogun_Egzersiz-Kontrol -11.427807 -15.8482097 -7.007404 0.0000001
Görselleştirme
boxplot(
anxiety_score ~ group,
data = anova_data,
main = "Gruplara Gore Stres Puanlari",
xlab = "Gruplar",
ylab = "Stres Puani"
)
Sonuç
One Way ANOVA sonucunda elde edilen p değeri 0.05 anlamlılık düzeyi ile karşılaştırılmıştır. p değeri 0.05’ten küçük ise H0 hipotezi reddedilir ve gruplar arasında anlamlı fark olduğu kabul edilir. p değeri 0.05’ten büyük ise H0 hipotezi reddedilemez ve gruplar arasında anlamlı fark olmadığı sonucuna ulaşılır. Post Hoc testi ile anlamlı farkın hangi gruplar arasında olduğu değerlendirilmiştir.