R'de ancova nasıl yapılır


Bu eğitimde R’de ANCOVA’nın nasıl gerçekleştirileceğine ilişkin bir örnek sunulmaktadır.

Örnek: R’de ANCOVA

Çalışma tekniğinin sınav sonuçları üzerinde etkisi olup olmadığını test etmek için aşağıdaki değişkenleri kullanarak bir ANCOVA gerçekleştireceğiz:

  • Teknik çalışma : Analiz etmek istediğimiz bağımsız değişken
  • Mevcut öğrenci notu : Dikkate almak istediğimiz ortak değişken
  • İnceleme Puanı : Analiz etmek istediğimiz yanıt değişkenleri

Aşağıdaki veri seti rastgele 30 kişilik üç gruba ayrılan 90 öğrenciye ilişkin bilgileri içermektedir.

Veri seti, her öğrencinin kullandığı çalışma tekniğini (A, B veya C) , çalışma tekniğini kullanmaya başladıklarında sınıftaki mevcut notlarını ve hazırlanmak için bir ay boyunca çalışma tekniğini kullandıktan sonra sınavda aldıkları notu gösterir. Sınav için. sınav:

 #make this example reproducible
set.seed(10)

#create dataset
data <- data.frame(technique = rep(c("A", "B", "C"), each = 30),
                   current_grade = runif(90, 65, 95),
                   exam = c(runif(30, 80, 95), runif(30, 70, 95), runif(30, 70, 90)))

#view first six lines of dataset
head(data)

# technical current_grade exam
#1 A 80.22435 87.32759
#2 A 74.20306 90.67114
#3 A 77.80723 88.87902
#4 A 85.79306 87.75735
#5 A 67.55408 85.72442
#6 A 71.76310 92.52167

1. Adım: Verileri keşfedin

ANCOVA modelini yerleştirmeden önce, verileri daha iyi anlamak için araştırmamız ve sonuçları çarpıtabilecek aşırı uç değerlerin olmadığını doğrulamamız gerekiyor.

İlk olarak veri kümesindeki her değişkenin özetini görüntüleyebiliriz:

 summary(data)

# technical current_grade exam      
#A:30 Min. :65.43 Min. :71.17  
# B:30 1st Qu.:71.79 1st Qu.:77.27  
# C:30 Median:77.84 Median:84.69  
# Mean:78.15 Mean:83.38  
# 3rd Qu.:83.65 3rd Qu.:89.22  
# Max. :93.84 Max. :94.76  

Her bir çalışma tekniği değerinin ( A, B ve C) verilerde 30 kez göründüğünü görebiliriz.

Ayrıca çalışmanın başında öğrencilerin mevcut puanlarının nasıl dağıldığını da görebiliyoruz. Sınıfın en düşük puanı 65,43, en yüksek puanı 93,84, ortalaması ise 78,15 oldu.

Benzer şekilde sınavda alınan minimum puanın 71,17, maksimum puanın 94,76, ortalamanın ise 83,38 olduğunu görüyoruz.

Daha sonra her çalışma tekniği için geçerli notların ve sınav sonuçlarının ortalamasını ve standart sapmasını kolayca bulmak için dplyr paketini kullanabiliriz:

 #load dplyr
library(dplyr)

data %>%
  group_by (technical) %>%
  summarize (mean_grade = mean(current_grade),
            sd_grade = sd(current_grade),
            mean_exam = mean(exam),
            sd_exam = sd(exam))

# A tibble: 3 x 5
# technique mean_grade sd_grade mean_exam sd_exam                      
#1 A 79.0 7.00 88.5 3.88
#2 B 78.5 8.33 81.8 7.62
#3 C 76.9 8.24 79.9 5.71

Her çalışma tekniğini kullanan öğrencilerin mevcut notlarının ortalama ve standart sapmalarının yaklaşık olarak benzer olduğunu görebiliriz.

Ayrıca A çalışma tekniğini kullanan öğrencilerin ortalama sınav puanının, B ve C tekniklerine kıyasla önemli ölçüde daha yüksek olduğunu da görebiliriz.

Ayrıca kutu grafiklerini kullanarak çalışma tekniğine dayalı sınav sonuçlarının dağılımını da görselleştirebiliriz:

 boxplot(exam ~ technique,
data = data,
main = "Exam Score by Studying Technique",
xlab = "Studying Technique",
ylab = "Exam Score",
col = "steelblue",
border = "black"
)

Benzer şekilde, çalışma tekniğine dayalı olarak mevcut notların dağılımını görselleştirmek için kutu grafiklerini de kullanabiliriz:

 boxplot(current_grade ~ technical,
data = data,
main = "Current Grade by Studying Technique",
xlab = "Studying Technique",
ylab = "Current Grade",
col = "steelblue",
border = "black"
)

2. Adım: Model varsayımlarını kontrol edin

Bazı temel veri araştırmalarını gerçekleştirdikten ve verilere aşina olduktan sonra, ANCOVA için aşağıdaki varsayımların karşılandığını doğrulamamız gerekir:

  • Ortak değişken ve tedavi bağımsızdır – ortak değişkenin ( mevcut derece) ve tedavinin (çalışma tekniği) birbirinden bağımsız olduğunu doğrulamak gerekir, çünkü modele bir ortak değişken terimi eklemek yalnızca ortak değişken ve Tedavi yanıt değişkenine ( sınav ) göre bağımsız olarak hareket eder.
  • Varyansın homojenliği – gruplar arasındaki varyansların eşit olup olmadığını kontrol etmemiz gerekir

Ortak değişkenin ve tedavinin bağımsız olduğunu doğrulamak için, yanıt değişkeni olarak mevcut notu ve yordayıcı değişken olarak çalışma tekniğini kullanarak bir ANOVA gerçekleştirebiliriz:

 #fit anova model
anova_model <- aov(current_grade ~ technique, data = data)
#view summary of anova model
summary(anova_model)

# Df Sum Sq Mean Sq F value Pr(>F)
#technical 2 74 37.21 0.599 0.552
#Residuals 87 5406 62.14    

P değeri 0,05’ten büyüktür, dolayısıyla ortak değişken ( mevcut derece) ve tedavi ( çalışma tekniği ) bağımsız görünmektedir.

Daha sonra gruplar arasında varyansın homojenliğini kontrol etmek için Levene testini yapabiliriz:

 #load car library to conduct Levene's Test
libary(car)

#conduct Levene's Test
leveneTest(technical exam, data = data)

#Levene's Test for Homogeneity of Variance (center = median)
# Df F value Pr(>F)    
#group 2 9.4324 0.0001961 ***
#87   

Testin p değerinin 0,0001961’e eşit olması gruplar arasındaki varyansların eşit olmadığını göstermektedir. Bu sorunu düzeltmek için veriler üzerinde bir dönüştürme girişiminde bulunabilsek de, şu anda varyans farklılıkları konusunda çok fazla endişelenmeyeceğiz.

3. Adım: ANCOVA modelini ayarlayın

Daha sonra, yanıt değişkeni olarak sınav puanını , yordayıcı (veya “tedavi”) değişkeni olarak çalışma tekniğini ve ortak değişken olarak mevcut notu kullanarak ANCOVA modelini uygulayacağız.

Pakette Anova() fonksiyonunu kullanacağız çünkü bunu yapmak için, sadece model için tip III kareler toplamını kullanmak istediğimizi belirtebilmek için, çünkü tip I kareler toplamı hangi sıraya göre değişir? Tahminciler modele girilir:

 #load car library
library(car)

#fit ANCOVA model
ancova_model <- aov(exam ~ technique + current_grade, data = data)

#view summary of model
Anova(ancova_model, type="III") 

#Answer: exam
# Sum Sq Df F value Pr(>F)    
#(Intercept) 7161.2 1 201.4621 < 2.2e-16 ***
#technical 1242.9 2 17.4830 4.255e-07 ***
#current_grade 12.3 1 0.3467 0.5576    
#Residuals 3057.0 86         

Tekniğe ilişkin p değerinin son derece düşük olduğunu görebiliyoruz; bu, mevcut not kontrol edildikten sonra bile çalışma tekniğinin sınav puanları üzerinde istatistiksel olarak anlamlı bir etkiye sahip olduğunu gösteriyor.

Adım 4: Post-hoc testi

ANCOVA sonuçları bize çalışma tekniğinin sınav puanları üzerinde istatistiksel olarak anlamlı bir etkiye sahip olduğunu söylese de, hangi çalışma tekniklerinin birbirinden farklı olduğunu belirlemek için post hoc testler yapmamız gerekiyor.

Bunu yapmak için çoklu karşılaştırmalar için Tukey testini gerçekleştirmek amacıyla R’deki multicomp paketindeki glht() fonksiyonunu kullanabiliriz:

 #load the multcomp library
library(multicomp)

#fit the ANCOVA model
ancova_model <- aov(exam ~ technique + current_grade, data = data)

#define the post hoc comparisons to make
postHocs <- glht(ancova_model, linfct = mcp(technique = "Tukey"))

#view a summary of the post hoc comparisons
summary(postHocs)

#Multiple Comparisons of Means: Tukey Contrasts
#
#Fit: aov(formula = exam ~ technique + current_grade, data = data)
#
#Linear Assumptions:
#Estimate Std. Error t value Pr(>|t|)    
#B - A == 0 -6.711 1.540 -4.358 0.000109 ***
#C - A == 0 -8.736 1.549 -5.640 < 1e-04 ***
#C - B == 0 -2.025 1.545 -1.311 0.393089    

#view the confidence intervals associated with the multiple comparisons
confint(postHocs)

# Simultaneous Confidence Intervals
#
#Multiple Comparisons of Means: Tukey Contrasts
#
#Fit: aov(formula = exam ~ technique + current_grade, data = data)
#
#Quantile = 2.3845
#95% family-wise confidence level
#
#Linear Assumptions:
# Estimate lwr upr     
#B - A == 0 -6.7112 -10.3832 -3.0392
#C - A == 0 -8.7364 -12.4302 -5.0426
#C - B == 0 -2.0252 -5.7091 1.6588

Sonuçtan, A tekniği ile B tekniği üzerinde çalışma (p-değeri: 0,000109) ve A tekniği ile C tekniği arasında sınav sonuçlarında istatistiksel olarak anlamlı bir fark (α = 0,05) olduğunu görebiliriz. (p-değeri: <1e-04).

B ve C teknikleri arasında istatistiksel olarak anlamlı bir fark olmadığını da görüyoruz (α = 0,05). Teknikler arasındaki güven aralıkları da bu bulguları desteklemektedir.

Dolayısıyla, A çalışma tekniğini kullanmanın, öğrencinin sınıftaki mevcut notu kontrol edildikten sonra bile, B ve C teknikleriyle karşılaştırıldığında öğrenciler için istatistiksel olarak anlamlı derecede daha yüksek bir sınav notuna yol açtığı sonucuna varabiliriz.

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir