ANOVA रैखिक प्रतिगमन के बराबर क्यों है?


50

मैंने पढ़ा कि एनोवा और रैखिक प्रतिगमन एक ही बात है। यह कैसे हो सकता है, यह देखते हुए कि एनोवा का उत्पादन कुछ मूल्य है और कुछ पी- आधारित है जिसके आधार पर आप यह निष्कर्ष निकालते हैं कि नमूना का मतलब अलग-अलग नमूनों में समान या अलग है।Fp

लेकिन यह मानते हुए कि साधन समान नहीं हैं (अशक्त परिकल्पना को अस्वीकार करें), एनोवा आपको रैखिक मॉडल के गुणांक के बारे में कुछ नहीं बताता है। तो रैखिक प्रतिगमन एनोवा के समान कैसे है?

जवाबों:


44

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

कुछ हद तक aphoristically एक डोवा चर के साथ एक प्रतिगमन के रूप में एनोवा का वर्णन कर सकते हैं। हम आसानी से देख सकते हैं कि श्रेणीबद्ध चर के साथ सरल प्रतिगमन में यह मामला है। एक श्रेणीगत चर को एक संकेतक मैट्रिक्स (एक मैट्रिक्स 0/1इस बात पर निर्भर करता है कि कोई विषय किसी दिए गए समूह का हिस्सा है या नहीं) के रूप में एन्कोड किया जाएगा और फिर एक रेखीय प्रतिगमन द्वारा वर्णित रैखिक प्रणाली के समाधान के लिए सीधे उपयोग किया जाता है। आइए 5 समूहों के साथ एक उदाहरण देखें। तर्क के लिए मैं मान लूंगा कि group1बराबर का मतलब 1, बराबर का मतलब group22, ... और group5बराबर का मतलब 5. (मैं MATLAB का उपयोग करता हूं, लेकिन सटीक वही बात R में बराबर है।)

rng(123);               % Fix the seed
X = randi(5,100,1);     % Generate 100 random integer U[1,5]
Y = X + randn(100,1);   % Generate my response sample
Xcat = categorical(X);  % Treat the integers are categories

% One-way ANOVA
[anovaPval,anovatab,stats] = anova1(Y,Xcat);
% Linear regression
fitObj = fitlm(Xcat,Y);

% Get the group means from the ANOVA
ANOVAgroupMeans = stats.means
% ANOVAgroupMeans =
% 1.0953    1.8421    2.7350    4.2321    5.0517

% Get the beta coefficients from the linear regression
LRbetas = [fitObj.Coefficients.Estimate'] 
% LRbetas =
% 1.0953    0.7468    1.6398    3.1368    3.9565

% Rescale the betas according the intercept
scaledLRbetas = [LRbetas(1) LRbetas(1)+LRbetas(2:5)]
% scaledLRbetas =
% 1.0953    1.8421    2.7350    4.2321    5.0517

% Check if the two results are numerically equivalent
abs(max( scaledLRbetas - ANOVAgroupMeans)) 
% ans =
% 2.6645e-15

जैसा कि इस परिदृश्य में देखा जा सकता है कि परिणाम जहां बिल्कुल समान हैं। मिनट संख्यात्मक अंतर डिजाइन के पूरी तरह से संतुलित नहीं होने के कारण और साथ ही अंडरलेइंग अनुमान प्रक्रिया है; ANOVA संख्यात्मक त्रुटियों को थोड़ा और आक्रामक रूप से जमा करता है। उस संबंध में हम एक अवरोधन फिट करते हैं LRbetas(1), हम एक अवरोधन मुक्त मॉडल फिट कर सकते हैं लेकिन यह "मानक" रैखिक प्रतिगमन नहीं होगा। (परिणाम हालांकि उस मामले में एनोवा के करीब होंगे।)

F

abs( fitObj.anova.F(1) - anovatab{2,5} )
% ans =
% 2.9132e-13 

ऐसा इसलिए है क्योंकि प्रक्रियाएं एक ही परिकल्पना का परीक्षण करती हैं, लेकिन विभिन्न शब्दों के साथ: एनोवा गुणात्मक रूप से जांच करेगा कि " क्या अनुपात यह बताने के लिए पर्याप्त है कि कोई समूह प्रत्यारोपित नहीं है " जबकि रैखिक प्रतिगमन गुणात्मक रूप से जांच करेगा कि " अनुपात केवल एक अवरोधन का सुझाव देने के लिए पर्याप्त है। " मॉडल संभवतः अपर्याप्त है ”।
(यह " परिकल्पना के तहत देखे गए मूल्य के बराबर या उससे अधिक देखने की संभावना " की कुछ हद तक मुक्त व्याख्या है और इसका मतलब पाठ्य-पुस्तक की परिभाषा नहीं है।)

β, आदि स्पष्ट रूप से जब लोग अपने प्रतिगमन मॉडल में कई कोवरिएट जोड़ना शुरू करते हैं, तो एक साधारण एक-तरफ़ा एनोवा का सीधा साम्य नहीं होता है। उस मामले में एक जानकारी को रेखीय प्रतिगमन की औसत प्रतिक्रिया की गणना करने के लिए उपयोग की जाने वाली जानकारी के साथ किया जाता है जो सीधे एक तरह से एनोवा के लिए उपलब्ध नहीं हैं। मेरा मानना ​​है कि एनोवा में चीजों को एक बार फिर से व्यक्त किया जा सकता है लेकिन यह ज्यादातर एक अकादमिक अभ्यास है।

इस मामले पर एक दिलचस्प पेपर है गेलमैन का 2005 का पेपर जिसका शीर्षक है: एनालिसिस ऑफ वेरियस - क्यों यह पहले से कहीं ज्यादा महत्वपूर्ण है । उठाए गए कुछ महत्वपूर्ण बिंदु; मैं कागज के लिए पूरी तरह से सहायक नहीं हूं (मुझे लगता है कि मैं व्यक्तिगत रूप से मैक्कुलच के दृष्टिकोण के साथ बहुत अधिक संरेखित करता हूं) लेकिन यह एक रचनात्मक पढ़ा जा सकता है।

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


6
इस क्रॉस मान्य पृष्ठ पर स्वीकृत उत्तर भी एनोवा और प्रतिगमन के बीच के संबंध को बहुत अच्छी तरह से दर्शाता है, एक गणितीय दृष्टिकोण के माध्यम से जो इस उत्तर के व्यावहारिक दृष्टिकोण का पूरक है।
एड्म ऑक्ट

+1। अरे हाँ, @ माइकलहार्डी का जवाब उस धागे में काफी अच्छा है। इसका उल्लेख करने के लिए धन्यवाद!
us --r11852

+1, इसके अलावा, मुझे लगता है कि इस उत्तर में यह आंकड़ा वास्तव में एनोवा और रैखिक प्रतिगमन के बीच की खाई को पाटने में मददगार है
हायतौ डू

क्या आप इस बात से सहमत होंगे कि ANOVA श्रेणीबद्ध भविष्यवक्ताओं के साथ एक गाऊसी GLM है?
डिगियो

@ डिगियो: नहीं, यह उनके उपयोग की उपयुक्तता की देखरेख करेगा; मैं तस्वीर से GLM को बाहर रखना चाहूंगा।
us --r11852

55

मुझे इस विचार में कुछ रंग डालना चाहिए कि श्रेणीबद्ध ( डमी-कोडेड ) रजिस्टरों वाले ओएलएस एनोवा में कारकों के बराबर हैं । दोनों मामलों में स्तर (या एनोवा के मामले में समूह ) हैं।

ओएलएस रिग्रेशन में रिग्रेसर्स में निरंतर चर भी होना सबसे सामान्य है। ये तार्किक रूप से श्रेणीबद्ध चर और निर्भर चर (DC) के बीच फिट मॉडल में संबंध को संशोधित करते हैं। लेकिन समानांतर पहचान करने की बात नहीं है।

mtcarsडेटा सेट के आधार पर हम पहले मॉडल lm(mpg ~ wt + as.factor(cyl), data = mtcars)को निरंतर चर wt(वजन) द्वारा निर्धारित ढलान के रूप में देख सकते हैं , और अलग-अलग इंटरप्रेटिकल वेरिएबल cylinder(चार, छह या आठ सिलेंडर) के प्रभाव को दर्शाते हैं। यह अंतिम भाग है जो एक तरह से एनोवा के साथ समानांतर बनाता है।

आइए इसे उप-भूखंड पर दाईं ओर देखें (तुरंत बाद में चर्चा की गई एनोवा मॉडल के साथ साइड-टू-साइड तुलना के लिए बाईं ओर तीन उप-भूखंड शामिल हैं):

यहाँ छवि विवरण दर्ज करें

प्रत्येक सिलेंडर इंजन रंग कोडित है, और अलग-अलग अवधारणाओं के साथ फिट लाइनों के बीच की दूरी और डेटा बादल एक एनोवा में समूह-भिन्नता के बराबर है। ध्यान दें कि एक सतत चर (साथ OLS मॉडल में अवरोध weight) गणितीय अलग भीतर-समूह एनोवा में अर्थ का मूल्य के रूप में ही, के प्रभाव के कारण है weightऔर विभिन्न मॉडल मैट्रिक्स (देखें नीचे): मतलब mpgके लिए 4-सिलेंडर कारें, उदाहरण के लिए, mean(mtcars$mpg[mtcars$cyl==4]) #[1] 26.66364जबकि ओएलएस "बेसलाइन" इंटरसेप्ट (कन्वेंशन द्वारा दर्शाती है cyl==4(आर में सबसे कम अंक देने वाले ऑर्डर)) अलग-अलग रूप से चिह्नित है summary(fit)$coef[1] #[1] 33.99079:। लाइनों का ढलान निरंतर चर के लिए गुणांक है weight

यदि आप weightमानसिक रूप से इन रेखाओं को सीधा करके और उन्हें क्षैतिज रेखा पर वापस लाकर प्रभाव को दबाने की कोशिश करते हैं , तो आप aov(mtcars$mpg ~ as.factor(mtcars$cyl))बाईं ओर के तीन उप-भूखंडों पर मॉडल के ANOVA भूखंड के साथ समाप्त हो जाएंगे । weightRegressor अब बाहर है, लेकिन विभिन्न अवरोध करने के लिए अंक से संबंध मोटे तौर पर संरक्षित है - हम बस वामावर्त केवल एक दृश्य डिवाइस के लिए "देख" के रूप में घूर्णन और प्रत्येक अलग स्तर (फिर पहले से ओवरलैपिंग भूखंडों बाहर फैलने कर रहे हैं, कनेक्शन, गणितीय समानता के रूप में नहीं, क्योंकि हम दो अलग-अलग मॉडलों की तुलना कर रहे हैं!)।

cylinder20x

और यह इन ऊर्ध्वाधर खंडों के योग के माध्यम से है जो हम स्वयं अवशिष्टों की गणना कर सकते हैं:

mu_mpg <- mean(mtcars$mpg)                      # Mean mpg in dataset
TSS <- sum((mtcars$mpg - mu_mpg)^2)             # Total sum of squares
SumSq=sum((mtcars[mtcars$cyl==4,"mpg"]-mean(mtcars[mtcars$cyl=="4","mpg"]))^2)+
sum((mtcars[mtcars$cyl==6,"mpg"] - mean(mtcars[mtcars$cyl=="6","mpg"]))^2)+
sum((mtcars[mtcars$cyl==8,"mpg"] - mean(mtcars[mtcars$cyl=="8","mpg"]))^2)

परिणाम: SumSq = 301.2626और TSS - SumSq = 824.7846। से तुलना:

Call:
   aov(formula = mtcars$mpg ~ as.factor(mtcars$cyl))

Terms:
                as.factor(mtcars$cyl) Residuals
Sum of Squares               824.7846  301.2626
Deg. of Freedom                     2        29

वास्तव में एक एनोवा के साथ परीक्षण के रूप में एक ही परिणाम cylinderregressor के रूप में केवल स्पष्ट के साथ रैखिक मॉडल :

fit <- lm(mpg ~ as.factor(cyl), data = mtcars)
summary(fit)
anova(fit)

Analysis of Variance Table

Response: mpg
               Df Sum Sq Mean Sq F value    Pr(>F)    
as.factor(cyl)  2 824.78  412.39  39.697 4.979e-09 ***
Residuals      29 301.26   10.39 

हम जो देखते हैं, वह यह है कि अवशिष्ट - कुल विचरण का वह भाग जो मॉडल द्वारा नहीं समझाया गया है - साथ ही साथ विचरण भी उसी प्रकार का है lm(DV ~ factors), जिसे आप टाइप का OLS या ANOVA ( aov(DV ~ factors)) कहते हैं: जब हम पट्टी करते हैं निरंतर चर के मॉडल हम एक समान प्रणाली के साथ समाप्त होते हैं। इसी तरह, जब हम विश्व स्तर पर या एक सर्वग्राही एनोवा (स्तर से स्तर नहीं) के रूप में मॉडल का मूल्यांकन करते हैं, तो हम स्वाभाविक रूप से समान पी-मूल्य प्राप्त करते हैं F-statistic: 39.7 on 2 and 29 DF, p-value: 4.979e-09

इसका मतलब यह नहीं है कि व्यक्तिगत स्तरों का परीक्षण समान पी-मूल्यों को प्राप्त करने वाला है। OLS के मामले में, हम आमंत्रित कर सकते हैं summary(fit)और प्राप्त कर सकते हैं:

lm(formula = mpg ~ as.factor(cyl), data = mtcars)

                Estimate Std. Error t value                           Pr(>|t|)    
(Intercept)      26.6636     0.9718  27.437                           < 2e-16 ***
as.factor(cyl)6  -6.9208     1.5583  -4.441                           0.000119 ***
as.factor(cyl)8 -11.5636     1.2986  -8.905                           8.57e-10 ***

pp adjusted

  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = mtcars$mpg ~ as.factor(mtcars$cyl))

$`as.factor(mtcars$cyl)`
          diff        lwr        upr                                      p adj
6-4  -6.920779 -10.769350 -3.0722086                                    0.0003424
8-4 -11.563636 -14.770779 -8.3564942                                    0.0000000
8-6  -4.642857  -8.327583 -0.9581313                                    0.0112287

अंत में, हुड के नीचे इंजन पर एक नज़र लेने से ज्यादा आश्वस्त कुछ भी नहीं है, जो कि मॉडल मैट्रेस और कॉलम स्पेस में अनुमानों के अलावा और कोई नहीं है। ये वास्तव में एक एनोवा के मामले में काफी सरल हैं:

(1)[y1y2y3.yn]=[100100010010...001001][μ1μ2μ3]+[ε1ε2ε3.εn]

cyl 4cyl 6cyl 8yij=μi+ϵijμijiyij

दूसरी ओर, OLS प्रतिगमन के लिए मॉडल मैट्रिक्स है:

[y1y2y3y4yn]=[1x12x131x22x231x32x331x42x431xn2xn3][β0β1β2]+[ε1ε2ε3ε4εn]

yi=β0+β1xi1+β2xi2+ϵiβ0β1β2weightdisplacement

lm(mpg ~ wt + as.factor(cyl), data = mtcars)weightβ0weightβ11cyl 4cyl 411(1),cyl 6cyl 8

[y1y2y3y4y5yn]=[1x11x21x31x41x51xn][β0β1]+[101010010101][μ~2μ~3]+[ε1ε2ε3ε4ε5εn]

1μ~2.~

fit <- lm(mpg ~ wt + as.factor(cyl), data = mtcars)
summary(fit)$coef[3] #[1] -4.255582 (difference between intercepts cyl==4 and cyl==6 in OLS)
fit <- lm(mpg ~ as.factor(cyl), data = mtcars)
summary(fit)$coef[2] #[1] -6.920779 (difference between group mean cyl==4 and cyl==6)

1μ~3yi=β0+β1xi+μ~i+ϵi


6
+1, मुझे आपका चित्रमय चित्रण बहुत पसंद है !! प्रकाशन गुणवत्ता!
हेताओ डू

@ hxd1011 यह आपके लिए बहुत अच्छा है। मैं इसकी सराहना करता हूं।
एंटोनी परेलाडा

6

एंटनी पारेलाडा और usεr11852 के पास बहुत अच्छा जवाब था। मैं आपके प्रश्न को परिप्रेक्ष्य के साथ कोडिंग के लिए संबोधित करूंगा R

एनोवा आपको रैखिक मॉडल के गुणांक के बारे में कुछ नहीं बताता है। तो रैखिक प्रतिगमन एनोवा के समान कैसे है?

वास्तव में, हम कर सकते हैं aovमें कार्य Rके रूप में ही रूप में इस्तेमाल किया जा सकता lm। यहाँ कुछ उदाहरण हैं।

> lm_fit=lm(mpg~as.factor(cyl),mtcars)

> aov_fit=aov(mpg~as.factor(cyl),mtcars)

> coef(lm_fit)
    (Intercept) as.factor(cyl)6 as.factor(cyl)8 
      26.663636       -6.920779      -11.563636 

> coef(aov_fit)
    (Intercept) as.factor(cyl)6 as.factor(cyl)8 
      26.663636       -6.920779      -11.563636 

> all(predict(lm_fit,mtcars)==predict(aov_fit,mtcars))
[1] TRUE

जैसा कि आप देख सकते हैं, न केवल हम एनोवा मॉडल से गुणांक प्राप्त कर सकते हैं, बल्कि हम इसे रैखिक मॉडल की तरह ही भविष्यवाणी के लिए भी उपयोग कर सकते हैं।

यदि हम aovफ़ंक्शन के लिए मदद फ़ाइल की जांच करते हैं तो यह कहता है

यह संतुलित या असंतुलित प्रयोगात्मक डिजाइनों के लिए रैखिक मॉडल फिटिंग के लिए lm को एक आवरण प्रदान करता है । Lm से मुख्य अंतर प्रिंट, सारांश और इतने पर फिट को संभालने में है: यह रैखिक मॉडल के बजाय विचरण के विश्लेषण की पारंपरिक भाषा में व्यक्त किया गया है।


1

यदि हम सभी डेटा एंट्री लेते हैं और उन्हें एक सिंगल कॉलम Y में व्यवस्थित करते हैं, तो बाकी कॉलम इंडिकेटर वैरिएबल 1 {ith डेटा मूल एनोवा व्यवस्था में jth कॉलम का तत्व है} तो Y का एक सरल रैखिक प्रतिगमन लेकर अन्य स्तंभों में से कोई भी (स्तंभ B कहते हैं), आपको अपनी ANOV समस्या में उसी DF, SS, MS और F परीक्षण आँकड़ा प्राप्त करना चाहिए।

इस प्रकार एनोवा को बाइनरी चर के साथ डेटा लिखकर 'रैखिक प्रतिगमन' माना जा सकता है। यह भी ध्यान दें कि, बी पर वाई का एक प्रतिगमन एविग के समान ही होना चाहिए। मूल डेटा के साथ गणना किए गए कॉलम बी के।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.