आर एनोवा ट्यूटोरियल: एकतरफा और दोतरफा (उदाहरण सहित)

एनोवा क्या है?

भिन्नता का विश्लेषण (एनोवा) एक सांख्यिकीय तकनीक है, जिसका उपयोग आम तौर पर दो या अधिक समूह माध्य के बीच अंतर का अध्ययन करने के लिए किया जाता है। एनोवा परीक्षण एक विशिष्ट चर में भिन्नता के विभिन्न स्रोतों पर केंद्रित है। आर में एनोवा मुख्य रूप से समूहों के बीच माध्य समानता के अस्तित्व का प्रमाण प्रदान करता है। यह सांख्यिकीय विधि टी-परीक्षण का एक विस्तार है। इसका उपयोग ऐसी स्थिति में किया जाता है जहाँ कारक चर में एक से अधिक समूह होते हैं।

वन-वे एनोवा

ऐसी कई स्थितियाँ होती हैं जहाँ आपको कई समूहों के बीच औसत की तुलना करने की ज़रूरत होती है। उदाहरण के लिए, मार्केटिंग विभाग जानना चाहता है कि क्या तीन टीमों का बिक्री प्रदर्शन एक जैसा है।

  • टीम: 3 स्तर कारक: ए, बी, और सी
  • बिक्री: प्रदर्शन का एक माप

एनोवा परीक्षण से यह पता चल सकता है कि तीनों समूहों का प्रदर्शन समान है या नहीं।

यह स्पष्ट करने के लिए कि क्या डेटा एक ही जनसंख्या से आता है, आप एक परीक्षण कर सकते हैं विचरण का एकतरफा विश्लेषण (इसके बाद वन-वे एनोवा) यह परीक्षण, किसी भी अन्य सांख्यिकीय परीक्षण की तरह, इस बात का प्रमाण देता है कि H0 परिकल्पना को स्वीकार किया जा सकता है या अस्वीकार किया जा सकता है।

एकतरफा एनोवा परीक्षण में परिकल्पना

  • H0: समूहों के बीच माध्य समान हैं
  • H3: कम से कम, एक समूह का माध्य अलग है

दूसरे शब्दों में, H0 परिकल्पना का तात्पर्य यह है कि यह साबित करने के लिए पर्याप्त सबूत नहीं हैं कि समूह (कारक) का माध्य दूसरे से भिन्न है।

यह परीक्षण टी-टेस्ट के समान है, हालांकि 2 से अधिक समूहों वाली स्थिति में ANOVA परीक्षण की सिफारिश की जाती है। सिवाय इसके कि, टी-टेस्ट और ANOVA समान परिणाम प्रदान करते हैं।

मान्यताओं

हम मानते हैं कि प्रत्येक कारक यादृच्छिक रूप से नमूना लिया गया है, स्वतंत्र है और अज्ञात लेकिन समान विचरण वाली सामान्य रूप से वितरित जनसंख्या से आता है।

एनोवा परीक्षण की व्याख्या करें

एफ-सांख्यिकी का प्रयोग यह जांचने के लिए किया जाता है कि क्या आंकड़ें काफी भिन्न जनसंख्याओं से हैं, अर्थात भिन्न नमूना माध्यों से।

एफ-सांख्यिकी की गणना करने के लिए, आपको विभाजित करने की आवश्यकता है समूह के बीच परिवर्तनशीलता ओवर समूह के भीतर परिवर्तनशीलता.

RSI बीच-समूह परिवर्तनशीलता पूरी आबादी के अंदर समूहों के बीच अंतर को दर्शाती है। समूहों के बीच भिन्नता की अवधारणा को समझने के लिए नीचे दिए गए दो ग्राफ़ देखें।

बायाँ ग्राफ तीन समूहों के बीच बहुत कम भिन्नता दर्शाता है, और यह बहुत संभावना है कि तीनों माध्य समान हों। कुल माध्य (अर्थात, तीन समूहों के लिए माध्य)।

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

एनोवा परीक्षण की व्याख्या करें

RSI समूह के भीतर परिवर्तनशीलता समूहों के बीच अंतर पर विचार करती है। भिन्नता व्यक्तिगत अवलोकनों से आती है; कुछ बिंदु समूह के माध्य से पूरी तरह से अलग हो सकते हैं। समूह के भीतर परिवर्तनशीलता इस प्रभाव को उठाती है और नमूना त्रुटि को संदर्भित करती है।

समूह के भीतर परिवर्तनशीलता की अवधारणा को दृश्यात्मक रूप से समझने के लिए नीचे दिए गए ग्राफ को देखें।

बायाँ भाग तीन अलग-अलग समूहों के वितरण को दर्शाता है। आपने प्रत्येक नमूने के प्रसार को बढ़ाया है और यह स्पष्ट है कि व्यक्तिगत भिन्नता बड़ी है। F-परीक्षण घटेगा, जिसका अर्थ है कि आप शून्य परिकल्पना को स्वीकार करने के लिए प्रवृत्त हैं

दायाँ भाग बिल्कुल वही नमूने (समान माध्य) दिखाता है, लेकिन कम परिवर्तनशीलता के साथ। इससे F-परीक्षण में वृद्धि होती है और वैकल्पिक परिकल्पना के पक्ष में झुकाव होता है।

एनोवा परीक्षण की व्याख्या करें

आप F-सांख्यिकी बनाने के लिए दोनों उपायों का उपयोग कर सकते हैं। F-सांख्यिकी को समझना बहुत सहज है। यदि अंश बढ़ता है, तो इसका मतलब है कि समूहों के बीच परिवर्तनशीलता अधिक है, और यह संभावना है कि नमूने में समूह पूरी तरह से अलग-अलग वितरण से लिए गए हैं।

दूसरे शब्दों में, कम एफ-आँकड़ा समूह के औसत के बीच बहुत कम या कोई महत्वपूर्ण अंतर नहीं दर्शाता है।

उदाहरण एकतरफा एनोवा परीक्षण

आप वन-वे ANOVA परीक्षण को लागू करने के लिए पॉइज़न डेटासेट का उपयोग करेंगे। डेटासेट में 48 पंक्तियाँ और 3 चर हैं:

  • समय: पशु का जीवित रहने का समय
  • ज़हर: इस्तेमाल किए गए ज़हर का प्रकार: कारक स्तर: 1,2 और 3
  • उपचार: प्रयुक्त उपचार का प्रकार: कारक स्तर: 1,2 और 3

एनोवा परीक्षण की गणना शुरू करने से पहले, आपको निम्नलिखित तरीके से डेटा तैयार करना होगा:

  • चरण 1: डेटा आयात करें
  • चरण 2: अनावश्यक चर हटाएं
  • चरण 3: परिवर्तनशील ज़हर को आदेशित स्तर के रूप में परिवर्तित करें
library(dplyr)
PATH <- "https://raw.githubusercontent.com/guru99-edu/R-Programming/master/poisons.csv"
df <- read.csv(PATH) %>%
select(-X) %>% 
mutate(poison = factor(poison, ordered = TRUE))
glimpse(df)

आउटपुट:

## Observations: 48
## Variables: 3
## $ time   <dbl> 0.31, 0.45, 0.46, 0.43, 0.36, 0.29, 0.40, 0.23, 0.22, 0...
## $ poison <ord> 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 1, 1, 1, 1, 2, 2, 2...
## $ treat  <fctr> A, A, A, A, A, A, A, A, A, A, A, A, B, B, B, B, B, B, ...		

हमारा उद्देश्य निम्नलिखित धारणा का परीक्षण करना है:

  • H0: समूह के बीच जीवित रहने के औसत समय में कोई अंतर नहीं है
  • H3: कम से कम एक समूह के लिए जीवित रहने का औसत समय अलग-अलग है।

दूसरे शब्दों में, आप जानना चाहते हैं कि गिनी पिग को दिए गए जहर के प्रकार के अनुसार जीवित रहने के समय के औसत के बीच कोई सांख्यिकीय अंतर है या नहीं।

आप निम्न प्रकार आगे बढ़ेंगे:

  • चरण 1: वेरिएबल poison का प्रारूप जांचें
  • चरण 2: सारांश सांख्यिकी प्रिंट करें: गणना, माध्य और मानक विचलन
  • चरण 3: बॉक्स प्लॉट बनाएं
  • चरण 4: एक-तरफ़ा ANOVA परीक्षण की गणना करें
  • चरण 5: युग्मित टी-परीक्षण चलाएँ

चरण 1) आप निम्न कोड से ज़हर के स्तर की जाँच कर सकते हैं। आपको तीन वर्ण मान दिखाई देने चाहिए क्योंकि आप उन्हें म्यूटेट क्रिया के साथ कारक में परिवर्तित करते हैं।

levels(df$poison)

आउटपुट:

## [1] "1" "2" "3"

चरण 2) आप माध्य और मानक विचलन की गणना करते हैं।

df % > %
	group_by(poison) % > %
	summarise(
		count_poison = n(),
		mean_time = mean(time, na.rm = TRUE),
		sd_time = sd(time, na.rm = TRUE)
	)

आउटपुट:

## 
# A tibble: 3 x 4
##   poison count_poison mean_time    sd_time
##    <ord>        <int>     <dbl>      <dbl>
## 1      1           16  0.617500 0.20942779
## 2      2           16  0.544375 0.28936641
## 3      3           16  0.276250 0.06227627

चरण 3) चरण तीन में, आप ग्राफ़िक रूप से जाँच कर सकते हैं कि वितरण के बीच कोई अंतर है या नहीं। ध्यान दें कि आपने घबराए हुए बिंदु को शामिल किया है।

ggplot(df, aes(x = poison, y = time, fill = poison)) +
    geom_boxplot() +
    geom_jitter(shape = 15,
        color = "steelblue",
        position = position_jitter(0.21)) +
    theme_classic()

आउटपुट:

एकतरफा एनोवा परीक्षण उदाहरण

चरण 4) आप aov कमांड के साथ वन-वे ANOVA टेस्ट चला सकते हैं। ANOVA टेस्ट के लिए मूल सिंटैक्स है:

aov(formula, data)
Arguments:			
- formula: The equation you want to estimate
- data: The dataset used	

सूत्र का वाक्यविन्यास है:

y ~ X1+ X2+...+Xn # X1 +  X2 +... refers to the independent variables
y ~ . # use all the remaining variables as independent variables

आप हमारे प्रश्न का उत्तर दे सकते हैं: क्या गिनी पिग के जीवित रहने के समय में कोई अंतर है, यह जानने के बाद कि उन्हें किस प्रकार का जहर दिया गया है।

ध्यान दें कि, मॉडल को संग्रहीत करने और परिणामों का बेहतर प्रिंट प्राप्त करने के लिए फ़ंक्शन summary() का उपयोग करने की सलाह दी जाती है।

anova_one_way <- aov(time~poison, data = df)
summary(anova_one_way)

कोड स्पष्टीकरण

  • aov(time ~ poison, data = df): निम्नलिखित सूत्र के साथ ANOVA परीक्षण चलाएँ
  • सारांश(anova_one_way): परीक्षण का सारांश प्रिंट करें

आउटपुट:

##             Df Sum Sq Mean Sq F value   Pr(>F)
## poison       2  1.033  0.5165   11.79 7.66e-05 ***
## Residuals   45  1.972  0.0438                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

पी-वैल्यू 0.05 की सामान्य सीमा से कम है। आप यह कहने में आश्वस्त हैं कि समूहों के बीच सांख्यिकीय अंतर है, जिसे “*” द्वारा दर्शाया गया है।

जोड़े द्वारा तुलना

एकतरफा ANOVA परीक्षण यह नहीं बताता कि किस समूह का माध्य अलग है। इसके बजाय, आप फ़ंक्शन TukeyHSD() के साथ Tukey परीक्षण कर सकते हैं।

TukeyHSD(anova_one_way)

आउटपुट:

जोड़े द्वारा तुलना

दो तरफा एनोवा

दो-तरफ़ा ANOVA परीक्षण सूत्र में एक और समूह चर जोड़ता है। यह एक-तरफ़ा ANOVA परीक्षण के समान है, हालाँकि सूत्र में थोड़ा बदलाव होता है:

y=x1+x2

के साथ एक मात्रात्मक चर है और और श्रेणीगत चर हैं।

दो-तरफ़ा ANOVA परीक्षण में परिकल्पना

  • H0: दोनों चरों (अर्थात कारक चर) के लिए माध्य समान हैं
  • H3: दोनों चरों के लिए माध्य अलग-अलग हैं

आप हमारे मॉडल में ट्रीट वैरिएबल जोड़ते हैं। यह वैरिएबल गिनी पिग को दिए गए उपचार को दर्शाता है। आप यह देखने में रुचि रखते हैं कि गिनी पिग को दिए गए ज़हर और उपचार के बीच कोई सांख्यिकीय निर्भरता है या नहीं।

हम अन्य स्वतंत्र चर के साथ treat जोड़कर अपने कोड को समायोजित करते हैं।

anova_two_way <- aov(time~poison + treat, data = df)
summary(anova_two_way)

आउटपुट:

##             Df Sum Sq Mean Sq F value  Pr(>F)    
## poison       2 1.0330  0.5165   20.64 5.7e-07 ***
## treat        3 0.9212  0.3071   12.27 6.7e-06 ***
## Residuals   42 1.0509  0.0250                    
## ---

आप यह निष्कर्ष निकाल सकते हैं कि जहर और उपचार दोनों सांख्यिकीय रूप से 0 से भिन्न हैं। आप शून्य परिकल्पना को अस्वीकार कर सकते हैं और पुष्टि कर सकते हैं कि उपचार या जहर बदलने से जीवित रहने के समय पर प्रभाव पड़ता है।

सारांश

हम परीक्षण को नीचे दी गई तालिका में संक्षेपित कर सकते हैं:

टेस्ट कोड परिकल्पना पी-मूल्य
एकतरफा एनोवा
aov(y ~ X, data = df)
H3: कम से कम एक समूह के लिए औसत अलग है 0.05
जोड़ो में
TukeyHSD(ANOVA summary)
0.05
दोतरफा एनोवा
aov(y ~ X1 + X2, data = df)
H3: दोनों समूहों के लिए औसत अलग-अलग है 0.05

इस पोस्ट को संक्षेप में इस प्रकार लिखें: