1 İlişkili Örneklemlerde Tek Yönlü Varyans Analizi

1.1 Teorik Bilgiler

Tekrarlı ölçümlerde kullanılan varyans analizi, aynı katılımcıların farklı koşullarda (farklı zamanlarda) ölçülmesinde ortalamaları arasında farklılık olup olmadığını analiz eden bir parametrik testtir. Aynı zamanda grup içi desen olarak da bilinmektedir (pallant?). Öyleyse en az üç ölçümün olması ve aynı gruba uygulamanın yapılmasına ihtiyacımız vardır.

Bu desenlerde kareler toplamının ve bağımsız değişken etkisi ortalama karesinin hesaplanması gruplararası desende olduğu gibidir. Kareler toplamı ve Bağımsız Değişken Etkisi Ortalama Kare Hesaplaması

F değeri

Tekrarlı ölçümlerdeki hata gruplararasına göre daha hassastır. Ancak katılımcıların ölçümlerde aldıkları puanlarda bireysel farklılıklar yoksa ya da vakalar ve işlem arasında etkileşim varsa hata terimi gruplararası deseninkinden daha büyük olabilir. Böyle bir durumda yokluk hipotezini reddetmek zorlaşır (tabahnick?).

1.2 İlişkili Örneklemlerde Tek Yönlü Varyans Analizi İçin Varsayımlar

ANOVA (Analysis of Variance)’nın üç temel varsayımı bulunmaktadır. Bu varsayımlar aşağıdaki gibidir.

  1. Normallik

  2. Varyansların eşitliği

  3. Bağımsızlık (Carter, n.d.)

1.3 Problem Durumu ve Hipotezler

İlişkili örneklemlerde tek yönlü ANOVA için seçilen veri setinde iki grup (deney ve kontrol) bulunmaktadır ancak bu gruplardan yalnızca deney grubuna ait olan veriler alınmıştır. Zenginleştirilmiş ortam olan müdahale, 6 aylık bebekliklerinden itibaren deney grubuna yapılmıştır ve 1 yaş, 1.5 yaş ve 2 yaşında bu müdahale sonucunda bebeklerin bilişsel skorları ölçülmüştür. Yapacağımız analizde ise yaş gruplarında deney grubunda olan bebeklerin bilişsel skorlarında anlamlı bir farklılık oluşup oluşmadığı değerlendirilecektir. Bu kapsamda problem durumu ve hipotezler aşağıdaki gibi hazırlanmıştır.

Problem durumu: Zenginleştirilmiş ortam müdahalesi bebeklerin 1, 1.5 ve 2 yaşlarında bilişsel skorlarında anlamlı farklılığı sağlar mı?

H0 : Zenginleştirilmiş ortam müdahalesi bebeklerin 1, 1.5 ve 2 yaşlarında bilişsel skorlarında anlamlı farklılığa neden olmaz.

H1 : Zenginleştirilmiş ortam müdahalesi bebeklerin 1, 1.5 ve 2 yaşlarında bilişsel skorlarında anlamlı farklılığa neden olur.

1.4 Analizde Kullanılan Verinin Tanıtılması

Yukarıda da bahsettiğimiz gibi yalnızca deney grubunda olan bebeklerin 3 farklı ölçümünden elde edilen bilişsel skorlarına müdahalenin anlamlı farklılık oluşturup oluşturmadığı analiz edilecektir. 58 deney ve 45 kontrol grubundan oluşan bu veri setinde düşük sosyoekonomik duruma sahip Afro-Amerikan ailelelerin bebekleri yer almaktadır. Bizim analizde kullanacağımız grup olan deney grubuna 6 aydan itibaren zenginleştirilmiş ortam müdahalesi yapılmaya başlanmıştır.

Veri seti aşağıdaki gibi R ortamına aktarılır. Öncesinde install.packages() ile readxl paketi yüklenir.

library(readxl)
earlychild <- read_xlsx("earlychild.xlsx")

1.4.1 Betimsel İstatistikler

Veri setinde üç farklı zamanda bebeklere uygulanan bilişsel testin sonuçları yer almaktadır. Burada zenginleştirilmiş ortam müdahalesinin yaşları değiştikçe bebeklerde anlamlı bir farklılık yaratıp yaratmadığı analiz edilecektir. Öncesinde betimsel istatistiklerinin incelenmesi ve normallik analizinin yapılması önemlidir.

Bu verileri gruplayarak (örn; bebeklerin 1., 1,5. ve 2. yaşı) betimsel istatistikleri ortaya çıkarabiliriz. group_by() fonksiyonu dplyr paketinde yer almaktadır. install.packages ile öncelikle bu paketin yüklenmesi ve library ile aktif hale getirilmesi gerekmektedir.

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
betimsel <- earlychild %>% 
  filter(age == 1) %>%
  summarise(mean_cog = mean(cog, na.rm = TRUE),
            median_cog = median(cog, na.rm = TRUE),
            sd_cog = sd(cog, na.rm = TRUE),
            min_cog = min(cog, na.rm = TRUE),
            max_cog = max(cog, na.rm = TRUE))

Daha fazla betimsel istatistiğe ulaşmak için psych paketindeki describe fonksiyonunu da kullanabiliriz. Aşağıda bu fonksiyonun kullanım örneği verilmiştir.

library(dplyr)
library(psych)

age_1_data <- filter(earlychild, age == 1)

cog_age_1 <- describe(age_1_data$cog)

Tablo 1
Yaş 1 için Betimsel İstatistikler

colnames(cog_age_1) <- c("Değişken Sayısı", "n", "Ortalama", "Standart Sapma","Medyan", "Trimmed", "Medyana Olan Uzaklık", "Minimum", "Maksimum", "Ranj", "Çarpıklık", "Basıklık", "Standart Hata")
knitr::kable(cog_age_1) 
Değişken Sayısı n Ortalama Standart Sapma Medyan Trimmed Medyana Olan Uzaklık Minimum Maksimum Ranj Çarpıklık Basıklık Standart Hata
X1 1 58 112.931 14.93478 112 113.875 14.0847 57 137 80 -0.9470501 1.941336 1.961033

1, 5 yaşında bebekleirn elde ettikleri puanlara ilişkin betimsel istatistikler Tablo 2’de sunulmuştur.

Tablo 2
Yaş 1, 5 için Betimsel İstatistikler

age_1.5_data <- filter(earlychild, age == "1, 5")

cog_age_1.5 <- describe(age_1.5_data$cog)
colnames(cog_age_1.5) <- c("Değişken Sayısı", "n", "Ortalama", "Standart Sapma","Medyan", "Trimmed", "Medyana Olan Uzaklık", "Minimum", "Maksimum", "Ranj", "Çarpıklık", "Basıklık", "Standart Hata")
knitr::kable(cog_age_1.5) 
Değişken Sayısı n Ortalama Standart Sapma Medyan Trimmed Medyana Olan Uzaklık Minimum Maksimum Ranj Çarpıklık Basıklık Standart Hata
X1 1 58 110.2931 13.82727 109 110.8125 13.3434 68 136 68 -0.4351118 0.4519882 1.815609

Tablo 3
Yaş 2 için Betimsel İstatistikler

age_2_data <- filter(earlychild, age == 2)

cog_age_2 <- describe(age_2_data$cog)
colnames(cog_age_2) <- c("Değişken Sayısı", "n", "Ortalama", "Standart Sapma","Medyan", "Trimmed", "Medyana Olan Uzaklık", "Minimum", "Maksimum", "Ranj", "Çarpıklık", "Basıklık", "Standart Hata")
knitr::kable(cog_age_2) 
Değişken Sayısı n Ortalama Standart Sapma Medyan Trimmed Medyana Olan Uzaklık Minimum Maksimum Ranj Çarpıklık Basıklık Standart Hata
X1 1 58 97.06897 10.63899 96 97.14583 11.8608 72 116 44 -0.0724021 -0.4377726 1.396968

Yaşlara göre katılımcılar incelendiğinde eksik veri bulunmadığına ve uç değer bulunmadığına ulaşılmıştır. Her yaş grubu için çarpıklık ve basıklık değerleri normallik varsayımını desteklemektedir (Mishra et al. 2019)

1.5 İlişkili Örneklemlerde Tek Yönlü Varyans Analizi Bulguları

Gerekli paketler

tidyverse ggpubr rstatix ggplot2

#install.packages("ggpubr")
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.0     ✔ readr     2.1.4
## ✔ ggplot2   3.4.4     ✔ stringr   1.5.0
## ✔ lubridate 1.9.3     ✔ tibble    3.2.1
## ✔ purrr     1.0.2     ✔ tidyr     1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ ggplot2::%+%()   masks psych::%+%()
## ✖ ggplot2::alpha() masks psych::alpha()
## ✖ dplyr::filter()  masks stats::filter()
## ✖ dplyr::lag()     masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggpubr)
library(rstatix)
## 
## Attaching package: 'rstatix'
## 
## The following object is masked from 'package:stats':
## 
##     filter
library(dplyr)

anova_test() [rstatix package]

data: data frame dv: (numeric) the dependent (or outcome) variable name. wid: variable name specifying the case/sample identifier. within: within-subjects factor or grouping variable get_anova_table() [rstatix package]. Extracts the ANOVA table from the output of anova_test().

earlychild %>% 
  filter(age==1) %>% 
shapiro_test(cog)
## # A tibble: 1 × 3
##   variable statistic       p
##   <chr>        <dbl>   <dbl>
## 1 cog          0.939 0.00601
earlychild %>% 
  filter(age== "1, 5") %>% 
shapiro_test(cog)
## # A tibble: 1 × 3
##   variable statistic     p
##   <chr>        <dbl> <dbl>
## 1 cog          0.970 0.161
earlychild %>% 
  filter(age==2) %>% 
shapiro_test(cog)
## # A tibble: 1 × 3
##   variable statistic     p
##   <chr>        <dbl> <dbl>
## 1 cog          0.970 0.157
ggqqplot(earlychild, "cog", facet.by = "age")

lm.model <- lm(cog~age, earlychild)
summary(lm.model)
## 
## Call:
## lm(formula = cog ~ age, data = earlychild)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -55.931  -7.293  -0.931   9.069  25.707 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  112.931      1.741  64.864  < 2e-16 ***
## age1, 5       -2.638      2.462  -1.071    0.286    
## age2         -15.862      2.462  -6.442 1.15e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 13.26 on 171 degrees of freedom
## Multiple R-squared:  0.218,  Adjusted R-squared:  0.2088 
## F-statistic: 23.83 on 2 and 171 DF,  p-value: 7.415e-10
aov.model <- aov(cog ~ age, earlychild)
summary(aov.model)
##              Df Sum Sq Mean Sq F value   Pr(>F)    
## age           2   8380    4190   23.83 7.42e-10 ***
## Residuals   171  30063     176                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
res.aov <- anova_test(data = earlychild, dv = cog, wid = id, within = age)
get_anova_table(res.aov)
## ANOVA Table (type III tests)
## 
##   Effect  DFn    DFd      F       p p<.05   ges
## 1    age 1.81 102.96 55.501 4.3e-16     * 0.218

Etki Büyüklüğü

pwc <- earlychild %>% 
  pairwise_t_test(
    cog~age, paired = TRUE,
    p.adjust.method = "bonferroni"
  )
pwc
## # A tibble: 3 × 10
##   .y.   group1 group2    n1    n2 statistic    df        p    p.adj p.adj.signif
## * <chr> <chr>  <chr>  <int> <int>     <dbl> <dbl>    <dbl>    <dbl> <chr>       
## 1 cog   1      1, 5      58    58      1.62    57 1.1 e- 1 3.3 e- 1 ns          
## 2 cog   1      2         58    58      8.70    57 4.77e-12 1.43e-11 ****        
## 3 cog   1, 5   2         58    58      9.73    57 1.03e-13 3.09e-13 ****

Rapor

1.6 Örnek Makale

Kaynaklar

Carter, Daniel J. n.d. 3.12 Analysis of Variance | r for Statistics in EPH. https://bookdown.org/danieljcarter/r4steph/analysis-of-variance.html.
Mishra, Prabhaker, Chandra M Pandey, Uttam Singh, Anshul Gupta, Chinmoy Sahu, and Amit Keshri. 2019. “Descriptive Statistics and Normality Tests for Statistical Data.” Annals of Cardiac Anaesthesia 22 (1): 67–72. https://doi.org/10.4103/aca.ACA_157_18.