R में aov() बनाम anova() का उपयोग कब करें
आर में एओवी() और एनोवा() फ़ंक्शन समान लगते हैं, लेकिन हम वास्तव में उन्हें दो अलग-अलग परिदृश्यों में उपयोग करते हैं।
जब हम ANOVA मॉडल को फिट करना चाहते हैं और परिणामों को ANOVA सारांश तालिका में प्रदर्शित करना चाहते हैं तो हम aov() का उपयोग करते हैं।
हम एनोवा() का उपयोग तब करते हैं जब हम यह निर्धारित करने के लिए नेस्टेड रिग्रेशन मॉडल के फिट की तुलना करना चाहते हैं कि क्या गुणांक के एक निश्चित सेट के साथ एक रिग्रेशन मॉडल केवल गुणांक के सबसेट वाले मॉडल की तुलना में काफी बेहतर फिट प्रदान करता है।
निम्नलिखित उदाहरण दिखाते हैं कि व्यवहार में प्रत्येक फ़ंक्शन का उपयोग कैसे करें।
उदाहरण 1: आर में एओवी() का उपयोग कैसे करें
मान लीजिए कि हम यह निर्धारित करने के लिए एक-तरफ़ा एनोवा का प्रदर्शन करना चाहते हैं कि क्या तीन अलग-अलग व्यायाम कार्यक्रमों का वजन घटाने पर अलग-अलग प्रभाव पड़ता है।
हम एक प्रयोग में भाग लेने के लिए 90 लोगों को भर्ती करते हैं जिसमें हम यादृच्छिक रूप से 30 लोगों को एक महीने के लिए प्रोग्राम ए, प्रोग्राम बी, या प्रोग्राम सी का पालन करने के लिए नियुक्त करते हैं।
निम्नलिखित कोड दिखाता है कि इस एकतरफा एनोवा को निष्पादित करने के लिए आर में एओवी() फ़ंक्शन का उपयोग कैसे करें:
#make this example reproducible set. seeds (0) #create data frame df <- data. frame (program = rep(c("A", "B", "C"), each= 30 ), weight_loss = c(runif(30, 0, 3), runif(30, 0, 5), runif(30, 1, 7))) #fit one-way anova using aov() fit <- aov(weight_loss ~ program, data=df) #view results summary(fit) Df Sum Sq Mean Sq F value Pr(>F) program 2 98.93 49.46 30.83 7.55e-11 *** Residuals 87 139.57 1.60 --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
मॉडल परिणामों से, हम देख सकते हैं कि कार्यक्रम का पी-मान (0.0000000000755) 0.05 से कम है, जिसका अर्थ है कि तीन कार्यक्रमों के बीच औसत वजन घटाने में सांख्यिकीय रूप से महत्वपूर्ण अंतर है।
उदाहरण 2: आर में एनोवा() का उपयोग कैसे करें
मान लीजिए कि हम एक निश्चित कॉलेज में छात्रों के लिए परीक्षा स्कोर की भविष्यवाणी करने के लिए अध्ययन किए गए घंटों की संख्या का उपयोग करना चाहते हैं। हम निम्नलिखित दो प्रतिगमन मॉडल को अनुकूलित करने का निर्णय ले सकते हैं:
पूर्ण मॉडल: स्कोर = β 0 + बी 1 (घंटे) + बी 2 (घंटे) 2
कम किया गया मॉडल: स्कोर = β 0 + बी 1 (घंटे)
निम्नलिखित कोड दिखाता है कि फिट की कमी परीक्षण करने के लिए आर में एनोवा() फ़ंक्शन का उपयोग कैसे करें ताकि यह निर्धारित किया जा सके कि पूर्ण मॉडल कम किए गए मॉडल की तुलना में काफी बेहतर फिट प्रदान करता है या नहीं:
#make this example reproducible
set. seeds (1)
#create dataset
df <- data.frame(hours = runif(50, 5, 15), score=50)
df$score = df$score + df$hours^3/150 + df$hours*runif(50, 1, 2)
#view head of data
head(df)
hours score
1 7.655087 64.30191
2 8.721239 70.65430
3 10.728534 73.66114
4 14.082078 86.14630
5 7.016819 59.81595
6 13.983897 83.60510
#fit full model
full <- lm(score ~ poly(hours,2), data=df)
#fit reduced model
reduced <- lm(score ~ hours, data=df)
#perform lack of fit test using anova()
anova(full, reduced)
Analysis of Variance Table
Model 1: score ~ poly(hours, 2)
Model 2: score ~ hours
Res.Df RSS Df Sum of Sq F Pr(>F)
1 47 368.48
2 48 451.22 -1 -82.744 10.554 0.002144 **
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
चूंकि आउटपुट तालिका में पी-मान (0.002144) 0.05 से कम है, हम परीक्षण की शून्य परिकल्पना को अस्वीकार कर सकते हैं और निष्कर्ष निकाल सकते हैं कि पूर्ण मॉडल कम किए गए मॉडल की तुलना में सांख्यिकीय रूप से काफी बेहतर फिट प्रदान करता है।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य कार्य कैसे करें:
आर में एकतरफ़ा एनोवा कैसे निष्पादित करें
आर में दो-तरफा एनोवा कैसे निष्पादित करें
आर में एनोवा के बार-बार उपाय कैसे करें