आर में ancova का संचालन कैसे करें


यह ट्यूटोरियल R में ANCOVA निष्पादित करने का उदाहरण प्रदान करता है।

उदाहरण: आर में एन्कोवा

हम निम्नलिखित चर का उपयोग करके यह परीक्षण करने के लिए एक ANCOVA निष्पादित करेंगे कि अध्ययन तकनीक का परीक्षा परिणामों पर प्रभाव पड़ता है या नहीं:

  • तकनीकी अध्ययन : वह स्वतंत्र चर जिसका हम विश्लेषण करना चाहते हैं
  • वर्तमान छात्र ग्रेड : वह सहसंयोजक जिसे हम ध्यान में रखना चाहते हैं
  • समीक्षा स्कोर : प्रतिक्रिया चर जिसका हम विश्लेषण करना चाहते हैं

निम्नलिखित डेटासेट में 90 छात्रों की जानकारी है जो यादृच्छिक रूप से 30 के तीन समूहों में विभाजित हैं।

डेटासेट प्रत्येक छात्र द्वारा उपयोग की जाने वाली अध्ययन तकनीक (ए, बी , या सी) , कक्षा में उनके वर्तमान ग्रेड को दर्शाता है जब उन्होंने अध्ययन तकनीक का उपयोग करना शुरू किया था, और तैयारी के लिए एक महीने तक अध्ययन तकनीक का उपयोग करने के बाद परीक्षा में उन्हें जो ग्रेड मिला था। परीक्षा के लिए। परीक्षा:

 #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: डेटा का अन्वेषण करें

ANCOVA मॉडल को फिट करने से पहले, हमें इसे बेहतर ढंग से समझने और यह सत्यापित करने के लिए डेटा का पता लगाने की आवश्यकता है कि कोई चरम आउटलेर नहीं हैं जो परिणामों को विकृत कर सकते हैं।

सबसे पहले, हम डेटासेट में प्रत्येक चर का सारांश प्रदर्शित कर सकते हैं:

 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  

हम देख सकते हैं कि प्रत्येक अध्ययन तकनीक मान ( ए, बी और सी) डेटा में 30 बार दिखाई देता है।

हम यह भी देख सकते हैं कि अध्ययन की शुरुआत में छात्रों के वर्तमान अंक कैसे वितरित किए गए थे। कक्षा में न्यूनतम अंक 65.43, अधिकतम 93.84 और औसत 78.15 था।

इसी प्रकार, हम देख सकते हैं कि परीक्षा में प्राप्त न्यूनतम अंक 71.17 था, अधिकतम अंक 94.76 था और औसत 83.38 था।

फिर हम प्रत्येक अध्ययन तकनीक के लिए वर्तमान ग्रेड और परीक्षा परिणामों के माध्य और मानक विचलन को आसानी से खोजने के लिए dplyr पैकेज का उपयोग कर सकते हैं:

 #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

हम देख सकते हैं कि प्रत्येक अध्ययन तकनीक का उपयोग करने वाले छात्रों के वर्तमान ग्रेड का माध्य और मानक विचलन लगभग समान है।

हम यह भी देख सकते हैं कि तकनीक बी और सी की तुलना में अध्ययन तकनीक का उपयोग करने वाले छात्रों के लिए औसत परीक्षा स्कोर काफी अधिक है।

हम बॉक्सप्लॉट का उपयोग करके अध्ययन तकनीक के आधार पर परीक्षा परिणामों के वितरण की कल्पना भी कर सकते हैं:

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

इसी तरह, हम अध्ययन तकनीक के आधार पर वर्तमान ग्रेड के वितरण की कल्पना करने के लिए बॉक्सप्लॉट का भी उपयोग कर सकते हैं:

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

चरण 2: मॉडल मान्यताओं की जाँच करें

एक बार जब हम कुछ बुनियादी डेटा अन्वेषण कर लेते हैं और डेटा से परिचित हो जाते हैं, तो हमें यह सत्यापित करने की आवश्यकता होती है कि ANCOVA के लिए निम्नलिखित धारणाएँ पूरी होती हैं:

  • सहसंयोजक और उपचार स्वतंत्र हैं – यह सत्यापित करना आवश्यक है कि सहसंयोजक ( वर्तमान ग्रेड) और उपचार (अध्ययन तकनीक) एक दूसरे से स्वतंत्र हैं, क्योंकि मॉडल में सहसंयोजक शब्द जोड़ना तभी सार्थक है जब सहसंयोजक और उपचार प्रतिक्रिया चर ( परीक्षा ) पर स्वतंत्र रूप से कार्य करता है।
  • प्रसरण की समरूपता – हमें यह जांचने की आवश्यकता है कि समूहों के बीच प्रसरण बराबर हैं

यह सत्यापित करने के लिए कि सहसंयोजक और उपचार स्वतंत्र हैं, हम प्रतिक्रिया चर के रूप में वर्तमान ग्रेड का उपयोग करके एनोवा का प्रदर्शन कर सकते हैं और भविष्यवक्ता चर के रूप में अध्ययन तकनीक का उपयोग कर सकते हैं:

 #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    

पी-मान 0.05 से अधिक है, इसलिए सहसंयोजक ( वर्तमान ग्रेड) और उपचार ( अध्ययन तकनीक ) स्वतंत्र दिखाई देते हैं।

फिर, यह जांचने के लिए कि समूहों के बीच भिन्नता की एकरूपता है, हम लेवेने परीक्षण कर सकते हैं:

 #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   

परीक्षण का पी-मान 0.0001961 के बराबर है, जो इंगित करता है कि समूहों के बीच भिन्नताएं समान नहीं हैं। हालाँकि हम इस समस्या को ठीक करने के लिए डेटा में परिवर्तन का प्रयास कर सकते हैं, हम इस समय भिन्नता के अंतर के बारे में बहुत अधिक चिंता नहीं करेंगे।

चरण 3: ANCOVA मॉडल को समायोजित करें

इसके बाद, हम प्रतिक्रिया चर के रूप में परीक्षा स्कोर , भविष्यवक्ता (या “उपचार”) चर के रूप में अध्ययन तकनीक और सहसंयोजक के रूप में वर्तमान ग्रेड का उपयोग करके ANCOVA मॉडल को फिट करेंगे।

हम पैकेज में एनोवा() फ़ंक्शन का उपयोग करेंगे क्योंकि ऐसा करने के लिए, केवल यह निर्दिष्ट करने में सक्षम होने के लिए कि हम मॉडल के लिए प्रकार III वर्गों के योग का उपयोग करना चाहते हैं, क्योंकि वर्गों का प्रकार I योग उस क्रम पर निर्भर करता है जिसमें भविष्यवक्ताओं को मॉडल में दर्ज किया गया है:

 #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         

हम देख सकते हैं कि तकनीक के लिए पी-वैल्यू बेहद कम है, यह दर्शाता है कि वर्तमान ग्रेड के लिए नियंत्रण के बाद भी अध्ययन तकनीक का परीक्षा स्कोर पर सांख्यिकीय रूप से महत्वपूर्ण प्रभाव पड़ता है।

चरण 4: पोस्ट-हॉक परीक्षण

हालाँकि ANCOVA परिणामों ने हमें बताया कि अध्ययन तकनीक का परीक्षा अंकों पर सांख्यिकीय रूप से महत्वपूर्ण प्रभाव पड़ा है, हमें यह निर्धारित करने के लिए पोस्ट हॉक परीक्षण करने की आवश्यकता है कि कौन सी अध्ययन तकनीक एक दूसरे से भिन्न हैं।

ऐसा करने के लिए, हम एकाधिक तुलनाओं के लिए तुकी परीक्षण करने के लिए आर में मल्टीकॉम्प पैकेज में glht() फ़ंक्शन का उपयोग कर सकते हैं:

 #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

परिणाम से, हम देख सकते हैं कि तकनीक ए का अध्ययन करने और तकनीक बी का अध्ययन करने (पी-मूल्य: 0,000109) के साथ-साथ तकनीक और तकनीक सी के बीच परीक्षा परिणामों में सांख्यिकीय रूप से महत्वपूर्ण अंतर (α = 0.05 पर) है। (पी-मान: <1e-04)।

हम यह भी देख सकते हैं कि तकनीक बी और सी के बीच कोई सांख्यिकीय महत्वपूर्ण अंतर (α = 0.05 पर) नहीं है। तकनीकों के बीच आत्मविश्वास अंतराल भी इन निष्कर्षों का समर्थन करते हैं।

इस प्रकार, हम यह निष्कर्ष निकाल सकते हैं कि अध्ययन तकनीक का उपयोग करने से कक्षा में छात्र के वर्तमान ग्रेड को नियंत्रित करने के बाद भी तकनीक बी और सी की तुलना में छात्रों के लिए सांख्यिकीय रूप से काफी उच्च परीक्षा ग्रेड प्राप्त होता है।

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *