प्रतिगमन के लिए बहुपद विरोधाभास


17

मैं प्रतिगमन फिटिंग में बहुपद विरोधाभासों के उपयोग को नहीं समझ सकता। विशेष रूप से, मैं इस पृष्ठR पर वर्णित अंतराल अंतराल (समान रूप से स्थान के साथ क्रमिक चर) को व्यक्त करने के लिए उपयोग किए जाने वाले एन्कोडिंग का उल्लेख कर रहा हूं ।

उस पृष्ठ के उदाहरण में , अगर मुझे सही तरीके से समझ में आया, तो आर एक अंतराल चर के लिए एक मॉडल फिट करता है, कुछ गुणांक लौटाता है जो इसके रैखिक, द्विघात, या घन प्रवृत्ति को मापता है। इसलिए, फिट मॉडल होना चाहिए:

write=52.7870+14.2587X0.9680X20.1554X3,

जहाँ X को अंतराल चर के विभिन्न स्तर के अनुसार मान 1 , 2 , 3 या लेना चाहिए 4

क्या ये सही है? और, यदि हां, तो बहुपद विरोधाभासों का उद्देश्य क्या था?


7
नहीं, वे गुणांक ऑर्थोगोनल बहुपद शब्दों के लिए हैं: आपने कच्चे बहुपद के लिए मॉडल लिखा है । X , X2 और क्रमशः एल , क्यू , और सी केX3 मूल्यों के साथ (लुक-अप टेबल से) बदलें । LQC
Scortchi - को पुनः स्थापित मोनिका

1
प्रिय @Scortchi, आपके उत्तर के लिए धन्यवाद। मैं समझने का अनुमान लगाता हूं कि आपका क्या मतलब है, लेकिन तब मुझे ईमानदारी से समझ नहीं आया कि ये ऑर्थोगोनल बहुपद शब्द कैसे काम करते हैं। : पी
पिप्पो

1
एक उल्लेखनीय बात के रूप में, आपके पास जो है वह काफी फिट मॉडल नहीं है। आपको या तो लिखने (या ई [लिखने]) पर एक विशाल 'टोपी' की आवश्यकता है, जिसका अर्थ है लिखने का अनुमानित मूल्य या लिखने का अपेक्षित मूल्य; या आपको अवशिष्ट को इंगित करने के लिए अंत में एक '+ ई' की आवश्यकता होती है।
गंग -

@Scortchi क्या है, या आप "लुक-अप टेबल" कैसे पा सकते हैं?
एंटोनी परेलाडा

2
@AntoniParellada: यह ओपी से जुड़े पृष्ठ की तालिका है: ats.ucla.edu/stat/r/library/contrast_coding.htm#ORTHOGONAL । और साथ मिला contr.polyआर में
Scortchi - को पुनः स्थापित मोनिका

जवाबों:


29

बस पुनरावृत्ति करने के लिए (और यदि ओपी हाइपरलिंक भविष्य में विफल हो जाता है), हम एक डेटासेट hsb2को इस तरह देख रहे हैं :

   id     female race ses schtyp prog read write math science socst
1  70        0    4   1      1    1   57    52   41      47    57
2 121        1    4   2      1    3   68    59   53      63    61
...
199 118      1    4   2      1    1   55    62   58      58    61
200 137      1    4   3      1    2   63    65   65      53    61

जिसे यहां आयात किया जा सकता है

हम चर readको चालू और क्रमबद्ध / क्रमिक चर में बदलते हैं:

hsb2$readcat<-cut(hsb2$read, 4, ordered = TRUE)
(means = tapply(hsb2$write, hsb2$readcat, mean))
 (28,40]  (40,52]  (52,64]  (64,76] 
42.77273 49.97849 56.56364 61.83333 

अब हम पूरी तरह से तैयार सिर्फ एक नियमित रूप से एनोवा चलाने के लिए कर रहे हैं - हाँ, यह अनुसंधान है, और हम मूल रूप से एक सतत निर्भर चर, है write, और एक व्याख्यात्मक कई स्तरों के साथ चर, readcat। आर में हम उपयोग कर सकते हैंlm(write ~ readcat, hsb2)


1. विपरीत मैट्रिक्स उत्पन्न करना:

आदेशित चर के चार अलग-अलग स्तर हैं readcat, इसलिए हमारे पास विरोधाभास होंगे।n1=3

table(hsb2$readcat)

(28,40] (40,52] (52,64] (64,76] 
     22      93      55      30 

सबसे पहले, पैसे के लिए चलते हैं, और अंतर्निहित आर फ़ंक्शन पर एक नज़र डालें:

contr.poly(4)
             .L   .Q         .C
[1,] -0.6708204  0.5 -0.2236068
[2,] -0.2236068 -0.5  0.6708204
[3,]  0.2236068 -0.5 -0.6708204
[4,]  0.6708204  0.5  0.2236068

अब हुड के नीचे क्या चला गया विच्छेद करें:

scores = 1:4  # 1 2 3 4 These are the four levels of the explanatory variable.
y = scores - mean(scores) # scores - 2.5

y=[1.5,0.5,0.5,1.5]

seq_len(n) - 1=[0,1,2,3]

n = 4; X <- outer(y, seq_len(n) - 1, "^") # n = 4 in this case

[11.52.253.37510.50.250.12510.50.250.12511.52.253.375]

वहाँ क्या हुआ? के outer(a, b, "^")तत्वों को बढ़ाता aहै b, ताकि संचालन से पहला स्तंभ परिणाम हो, , ( - 0.5 ) 0 , 0.5 0 और 1.5 0 ; दूसरे कॉलम से ( - 1.5 ) 1 , ( - 0.5 ) 1 , 0.5 1 और 1.5 1 ; तीसरा ( - 1.5 ) 2 = 2.25 से(1.5)0(0.5)00.501.50(1.5)1(0.5)10.511.51(1.5)2=2.25, , 0.5 2 = 0.25 और 1.5 2 = 2.25 ; और चौथा, ( - 1.5 ) 3 = - 3.375 , ( - 0.5 ) 3 = - 0.125 , 0.5 3 = 0.125 और 1.5 3 = 3.375(0.5)2=0.250.52=0.251.52=2.25(1.5)3=3.375(0.5)3=0.1250.53=0.1251.53=3.375

इसके बाद हम इस मैट्रिक्स का एक orthonormal अपघटन करते हैं और Q ( ) का कॉम्पैक्ट प्रतिनिधित्व करते हैं । इस पोस्ट में इस्तेमाल किए गए आर में क्यूआर फैक्टराइजेशन में उपयोग किए जाने वाले कार्यों के कुछ आंतरिक कामकाज को आगे यहां बताया गया हैQRc_Q = qr(X)$qr

[202.500.52.23604.5840.50.447200.50.8940.92961.342]

... जिनमें से हम केवल विकर्ण को बचाते हैं ( z = c_Q * (row(c_Q) == col(c_Q)))। विकर्ण में क्या निहित है: क्यू आर अपघटन के भाग के "नीचे" प्रविष्टियां । बस? खैर, नहीं ... यह पता चला है कि एक ऊपरी त्रिकोणीय मैट्रिक्स के विकर्ण में मैट्रिक्स के आइगेनवेल्यूज़ होते हैं!RQR

अगला हम निम्नलिखित फ़ंक्शन को कॉल करें: raw = qr.qy(qr(X), z), जिसके परिणामस्वरूप "मैन्युअल" दो आपरेशन द्वारा भी दोहराया जा सकता है: 1. का संक्षिप्त रूप टर्निंग , यानी , में क्यू , एक परिवर्तन के साथ प्राप्त किया जा सकता है, और 2. बाहर ले जाने मैट्रिक्स गुणन Q z , जैसा कि में है ।Qqr(X)$qrQQ = qr.Q(qr(X))QzQ %*% z

महत्वपूर्ण रूप से, R के eigenvalues ​​द्वारा को गुणा करने से घटक कॉलम वैक्टर की ऑर्थोगोनलिटी में परिवर्तन नहीं होता है, लेकिन यह देखते हुए कि eigenvalues ​​का निरपेक्ष मान शीर्ष क्रम से ऊपर बाएं से दाएं दाईं ओर घटते क्रम में दिखाई देता है, Q z का गुणन घटने की ओर बढ़ जाएगा उच्च क्रम बहुपद स्तंभों में मान:QRQz

Matrix of Eigenvalues of R
     [,1]      [,2] [,3]      [,4]
[1,]   -2  0.000000    0  0.000000
[2,]    0 -2.236068    0  0.000000
[3,]    0  0.000000    2  0.000000
[4,]    0  0.000000    0 -1.341641

गुणन क्रियाओं के पहले और बाद के और बाद के अप्रभावित पहले दो स्तंभों के बाद के स्तंभ वैक्टर (द्विघात और घन) में मानों की तुलना करें ।QR

Before QR factorization operations (orthogonal col. vec.)
     [,1] [,2] [,3]   [,4]
[1,]    1 -1.5 2.25 -3.375
[2,]    1 -0.5 0.25 -0.125
[3,]    1  0.5 0.25  0.125
[4,]    1  1.5 2.25  3.375


After QR operations (equally orthogonal col. vec.)
     [,1] [,2] [,3]   [,4]
[1,]    1 -1.5    1 -0.295
[2,]    1 -0.5   -1  0.885
[3,]    1  0.5   -1 -0.885
[4,]    1  1.5    1  0.295

अंत में हम (Z <- sweep(raw, 2L, apply(raw, 2L, function(x) sqrt(sum(x^2))), "/", check.margin = FALSE))मैट्रिक्स rawको ऑर्थोनॉमिक वैक्टर में बदलते हैं :

Orthonormal vectors (orthonormal basis of R^4)
     [,1]       [,2] [,3]       [,4]
[1,]  0.5 -0.6708204  0.5 -0.2236068
[2,]  0.5 -0.2236068 -0.5  0.6708204
[3,]  0.5  0.2236068 -0.5 -0.6708204
[4,]  0.5  0.6708204  0.5  0.2236068

इस समारोह बस विभाजित (द्वारा मैट्रिक्स "को सामान्य" "/") द्वारा प्रत्येक तत्व columnwise । तो इसे दो चरणों में विघटित किया जा सकता है:(i), जिसके परिणामस्वरूप, प्रत्येक स्तंभ के लिए हर(जो)में(ii)हर स्तंभ मेंप्रत्येक तत्व को(i)के संबंधित मान से विभाजित किया जाता है।col.xi2(i) apply(raw, 2, function(x)sqrt(sum(x^2)))2 2.236 2 1.341(ii)(i)

इस बिंदु पर कॉलम वैक्टर का एक असामान्य आधार बनाते हैं , जब तक कि हम पहले कॉलम से छुटकारा नहीं पा लेते हैं, जो इंटरसेप्ट होगा, और हमने इसका परिणाम फिर से तैयार किया है :R4contr.poly(4)

[0.67082040.50.22360680.22360680.50.67082040.22360680.50.67082040.67082040.50.2236068]

इस मैट्रिक्स के कॉलम हैं ऑर्थोनॉर्मल हैं , जैसा कि इसके द्वारा दिखाया जा सकता है (sum(Z[,3]^2))^(1/4) = 1और z[,3]%*%z[,4] = 0, उदाहरण के लिए (संयोग से वही पंक्तियों के लिए जाता है)। और, प्रत्येक स्तंभ प्रारंभिक ऊपर उठाने का परिणाम है करने के लिए 1 -ST, 2 -nd और 3 यानी - -rd शक्ति क्रमश: रैखिक, द्विघात और घनscores - mean123


2. व्याख्यात्मक चर में स्तरों के बीच अंतर को समझाने के लिए कौन से विरोधाभासी (स्तंभ) महत्वपूर्ण योगदान देते हैं?

हम सिर्फ एनोवा को चला सकते हैं और सारांश देख सकते हैं ...

summary(lm(write ~ readcat, hsb2))

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  52.7870     0.6339  83.268   <2e-16 ***
readcat.L    14.2587     1.4841   9.607   <2e-16 ***
readcat.Q    -0.9680     1.2679  -0.764    0.446    
readcat.C    -0.1554     1.0062  -0.154    0.877 

... देखने के लिए की एक रेखीय प्रभाव है कि वहाँ readcatपर writeहै, तो मूल मानों (पोस्ट की शुरुआत में कोड के तीसरे खंड में) के रूप में reproduced किया जा सकता है कि:

coeff = coefficients(lm(write ~ readcat, hsb2))
C = contr.poly(4)
(recovered = c(coeff %*% c(1, C[1,]),
               coeff %*% c(1, C[2,]),
               coeff %*% c(1, C[3,]),
               coeff %*% c(1, C[4,])))
[1] 42.77273 49.97849 56.56364 61.83333

... और ...

enter image description here

... या बहुत बेहतर ...

enter image description here

होने के नाते ओर्थोगोनल विरोधाभासों उनके घटकों का योग शून्य करने के लिए कहते हैं i=1tai=0 के लिए स्थिरांक, और उनमें से किसी भी दो के बिंदु गुणनफल शून्य है। अगर हम उनकी कल्पना कर सकें तो वे कुछ इस तरह दिखेंगे:a1,,at

enter image description here

ऑर्थोगोनल कॉन्ट्रास्ट के पीछे का विचार यह है कि हम जो एक्सट्रैक्ट (एक रेखीय रिग्रेशन के माध्यम से गुणांक पैदा करने वाले इस मामले में) कर सकते हैं, डेटा के स्वतंत्र पहलुओं का परिणाम होगा। अगर हम बस इस्तेमाल करते हैं तो ऐसा नहीं होगाX0,X1,.Xn

आलेखीय रूप से, यह समझना बहुत आसान है। बड़े वर्ग ब्लैक ब्लॉक्स में समूहों द्वारा वास्तविक साधनों की तुलना अनुमानित मूल्यों से करें, और देखें कि द्विघात और घन बहुपद के न्यूनतम योगदान के साथ एक सीधी रेखा सन्निकटन (केवल घट के साथ सन्निहित वक्रों के साथ) इष्टतम है:

enter image description here

यदि, प्रभाव के लिए, एनोवा के गुणांक अन्य सन्निकटन (द्विघात और घन) के लिए रैखिक विपरीत के लिए बड़े थे, निरर्थक साजिश जो इस प्रकार है कि प्रत्येक "योगदान" के बहुपद भूखंडों को स्पष्ट रूप से चित्रित किया जाएगा:

enter image description here

कोड यहाँ है


+1 वाह। क्या यह उत्तर (मैंने इसे अब तक अंत तक नहीं पढ़ा है) को मेरे पुराने, भूले हुए प्रश्न के उत्तर के रूप में देखा जा सकता है, यह भी आँकड़े ।stackexchange.com/q/63639/3277 ?
ttnphns

(+1) @ttnphns: यकीनन यह और भी बेहतर होगा।
Scortchi - को पुनः स्थापित मोनिका

बस एक टिप: आप मुझे यहाँ लिंक के साथ टिप्पणी करना चाहते हैं; या वहां एक उत्तर जारी करें - जिसे मुझे स्वीकार करने की संभावना है।
tnnphns

1
@ttnphns और @Sortchi आपका धन्यवाद! मैंने इन अवधारणाओं को समझने के लिए कुछ समय बिताया, और बहुत प्रतिक्रिया की उम्मीद नहीं की। इसलिए यह बहुत सकारात्मक आश्चर्य है। मुझे लगता है कि qr.qy()फ़ंक्शन को समझाने के संबंध में कुछ झुर्रियाँ हैं , लेकिन मैं यह देखने की कोशिश करूंगा कि क्या मेरे पास कुछ समय होने के साथ ही मैं आपके प्रश्न के बारे में कुछ न्यूनतम कह सकता हूं।
एंटोनी परेलाडा

1
@ एल्विस मैंने एक अच्छा सारांश वाक्य चुनने की कोशिश की और इसे पोस्ट में कहीं रख दिया। मुझे लगता है कि यह एक अच्छा बिंदु है, और एक अच्छे गणितीय स्पष्टीकरण के लिए कहता है, लेकिन यह इस बिंदु पर बहुत अधिक विस्तृत हो सकता है।
एंटोनी परेलाडा

5

मैं आपके उदाहरण का उपयोग करके बताऊंगा कि यह कैसे काम करता है। चार समूहों के साथ बहुपद विरोधाभासों का उपयोग करके निम्नलिखित पैदावार होती है।

wआरमैंटी1=μ-0.67एल+0.5क्यू-0.22सीwआरमैंटी2=μ-0.22एल-0.5क्यू+0.67सीwआरमैंटी3=μ+0.22एल-0.5क्यू-0.67सीwआरमैंटी4=μ+0.67एल+0.5क्यू+0.22सी

जहां पहला समीकरण सबसे कम पढ़ने वाले स्कोर के समूह के लिए काम करता है और सबसे अच्छा पढ़ने के स्कोर के समूह के लिए चौथा एक है। हम इन समीकरणों की तुलना सामान्य रेखीय प्रतिगमन (दबाने वाले) का उपयोग करके दिए गए से कर सकते हैंआरमैं निरंतर है)

Ewritei=μ+readiL+readi2Q+readi3C

Usually instead of L,Q,C you would have β1,β2,β3 and written at first position. But this writing resembles the one with polynomial contrasts. So numbers in front of L,Q,C are actually instead of readi,readi2,readi3. You can see that coefficients before L have linear trend, before Q quadratic and before C cubic.

Then R estimates parameters μ,L,Q,C and gives you

μ^=52.79,L^=14.26,Q^=0.97,C^=0.16
Where μ^=14i=14Ewritei and estimated coefficients μ^,L^,Q^,C^ are something like estimates at normal linear regression. So from the output you can see if estimated coefficients are significantly different from zero, so you could anticipate some kind of linear, quadratic or cubic trend.

In that example is significantly non-zero only L^. So your conclusion could be: We see that the better scoring in writing depends linearly on reading score, but there is no significant quadratic or cubic effect.

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