आर बनाम एक्सेल में आटोक्लेररेशन के लिए फॉर्मूला


13

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

मुझे यह भी जानने में दिलचस्पी होगी कि क्या एक संगणना दूसरे की तुलना में अधिक सही है।


Rसूत्र का और विश्लेषण किया गया है और उसे आँकड़े.स्टैकएक्सचेंज . com / questions / 81754/… पर समझाया गया है ।
whuber

जवाबों:


17

सटीक समीकरण इसमें दिए गए हैं: वेनबल्स, डब्ल्यूएन और रिप्ले, बीडी (2002) एस चौथा संस्करण के साथ आधुनिक एप्लाइड सांख्यिकी। स्प्रिंगर-वर्लग। मैं आपको एक उदाहरण दूंगा:

### simulate some data with AR(1) where rho = .75
xi <- 1:50
yi <- arima.sim(model=list(ar=.75), n=50)

### get residuals
res <- resid(lm(yi ~ xi))

### acf for lags 1 and 2
cor(res[1:49], res[2:50])      ### not quite how this is calculated by R
cor(res[1:48], res[3:50])      ### not quite how this is calculated by R

### how R calculates these
acf(res, lag.max=2, plot=F)

### how this is calculated by R
### note: mean(res) = 0 for this example, so technically not needed here
c0 <- 1/50 * sum( (res[1:50] - mean(res)) * (res[1:50] - mean(res)) ) 
c1 <- 1/50 * sum( (res[1:49] - mean(res)) * (res[2:50] - mean(res)) ) 
c2 <- 1/50 * sum( (res[1:48] - mean(res)) * (res[3:50] - mean(res)) ) 
c1/c0
c2/c0

और इतने पर (जैसे, res[1:47]और res[4:50]अंतराल 3 के लिए)।


धन्यवाद वोल्फगैंग! यही वह है जिसकी तलाश में मैं हूं। अब मैं इसे और एक्सेल में दोहराने की कोशिश कर सकता हूं (मेरे छात्रों के लिए जो केवल एक्सेल का उपयोग करते हैं)।
गलित शुमेली

11

ऑटो सहसंबंध की गणना करने का भोली तरीका (और संभवतः एक्सेल का उपयोग करता है) वेक्टर की 2 प्रतियां बनाने के लिए है, फिर पहली प्रति से 1 n तत्वों को हटा दें और दूसरी प्रतिलिपि से अंतिम n तत्व (जहां n अंतराल है कि आप से गणना कर रहे हैं)। फिर उन 2 वैक्टरों को सहसंबंध की गणना करने के लिए फ़ंक्शन में पास करें। यह विधि ठीक है और एक उचित उत्तर देगी, लेकिन यह इस तथ्य को नजरअंदाज कर देती है कि तुलना की जा रही 2 वैक्टर वास्तव में एक ही चीज के उपाय हैं।

उन्नत संस्करण (जैसा कि वोल्फगैंग द्वारा दिखाया गया है) नियमित सहसंबंध के समान कार्य है, सिवाय इसके कि यह माध्य और विचरण की गणना के लिए पूरे वेक्टर का उपयोग करता है।


3
दूसरा अंतर 1 / n (nk) के बजाय कारक 1 / n है जहां n श्रृंखला की लंबाई और k lags की संख्या है। यह सुनिश्चित करना है कि ऑटोक्रॉलेशन मैट्रिक्स सकारात्मक निश्चित है।
रोब हंडमैन

1
@ रब: मेरा मानना ​​है कि एक्सेल कॉरेल फॉर्मूला n (nk के बजाय) का उपयोग करता है। उदाहरण के लिए, लैग -1 ACF के लिए आपको COVAR (Res [1:49], res [2:50]) / (STDEVP (res [1:49]) - STDEVP का उपयोग करने पर समान परिणाम मिलता है। (Res [2:50])) और फ़ंक्शन COVAR और STDEVP "जनसंख्या" आँकड़े हैं।
गैलिट श्मुइली

@Galit। यहां तक ​​कि COVAR और STDEVP का उपयोग करते हुए, आपके कोड में भाजक 49 होगा, लेकिन ऑटोक्रॉलेशन की पसंदीदा परिभाषा 50 का उपयोग करेगी।
Rob Hyndman

1
1 / n बनाम 1 / (nk) बिंदु ऊपर के अन्य बिंदुओं के अलावा समझने के लिए अच्छा है। लेकिन व्यावहारिक / प्रेक्षित संख्याओं के लिए यह तब तक मायने नहीं रखता है जब तक कि यह सुसंगत हो, क्योंकि यह शब्द अंश और हर दोनों में दिखाई देता है। यदि अंश और हर में अलग-अलग अंशों का उपयोग किया जाता है तो आपको एक समस्या हो सकती है।
ग्रेग स्नो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.