R [बंद] में स्वत: संबंधित त्रुटियों के साथ सरल रैखिक मॉडल


19

R में स्वतःभरण त्रुटियों के साथ मैं एक रैखिक मॉडल कैसे फिट करूं? स्टैटा में मैं praisकमांड का उपयोग करूंगा , लेकिन मैं आर के समकक्ष नहीं मिल सकता ...

जवाबों:


23

glsपैकेज nlme से (सामान्यीकृत कम से कम वर्गों) पर एक नज़र है

आप प्रतिगमन में त्रुटियों के लिए सहसंबंध प्रोफ़ाइल सेट कर सकते हैं, जैसे ARMA, आदि:

 gls(Y ~ X, correlation=corARMA(p=1,q=1))

ARMA (1,1) त्रुटियों के लिए।


1
क्या मैं नए डेटासेट पर "पूर्वानुमान" फ़ंक्शन का उपयोग कर सकता हूं, और उसी त्रुटि संरचना को बनाए रख सकता हूं? Gls कमांड को कैसे पता चलता है कि अवलोकन किस क्रम में हैं?
जच

27

gls()फ़ंक्शन के अलावा nlme, आप MLE का उपयोग करके पैकेज arima()में फ़ंक्शन का उपयोग भी कर सकते हैं stats। यहां दोनों कार्यों के साथ एक उदाहरण दिया गया है।

x <- 1:100
e <- 25*arima.sim(model=list(ar=0.3),n=100)
y <- 1 + 2*x + e

###Fit the model using gls()
require(nlme)
(fit1 <- gls(y~x, corr=corAR1(0.5,form=~1)))
Generalized least squares fit by REML
  Model: y ~ x 
  Data: NULL 
  Log-restricted-likelihood: -443.6371

Coefficients:
(Intercept)           x 
   4.379304    1.957357 

Correlation Structure: AR(1)
 Formula: ~1 
 Parameter estimate(s):
      Phi 
0.3637263 
Degrees of freedom: 100 total; 98 residual
Residual standard error: 22.32908 

###Fit the model using arima()
(fit2 <- arima(y, xreg=x, order=c(1,0,0)))

Call:
arima(x = y, order = c(1, 0, 0), xreg = x)

Coefficients:
         ar1  intercept       x
      0.3352     4.5052  1.9548
s.e.  0.0960     6.1743  0.1060

sigma^2 estimated as 423.7:  log likelihood = -444.4,  aic = 896.81 

Arima () फ़ंक्शन का लाभ यह है कि आप ARMA त्रुटि प्रक्रियाओं की एक बहुत बड़ी विविधता को फिट कर सकते हैं। यदि आप पूर्वानुमान पैकेज से auto.arima () फ़ंक्शन का उपयोग करते हैं, तो आप स्वचालित रूप से ARMA त्रुटि की पहचान कर सकते हैं:

require(forecast)    
fit3 <- auto.arima(y, xreg=x)

1
"गल = corAR1 (0.5, फ़ॉर्म = ~ 1)" के लिए 0.5 क्या है?
जाच

1
यह अनुकूलन के लिए एक प्रारंभिक मूल्य देता है। इसे छोड़ दिया जाए तो लगभग कोई फर्क नहीं पड़ता।
रॉब Hyndman

1
+1 arimaविकल्प praisपहली नज़र में स्टैटा से अधिक भिन्न दिखता है , लेकिन यह अधिक लचीला है और आप tsdiagअपने एआर (1) धारणा को वास्तव में फिट होने का अच्छा दृश्य प्राप्त करने के लिए भी उपयोग कर सकते हैं ।
वेन

1
यदि मैं केवल एक स्थिरांक पर y पुनः प्राप्त करता हूं तो मैं arima () का उपयोग कैसे करूं?
user43790

7

पैकेज nlme से फ़ंक्शन gls का उपयोग करें । यहाँ उदाहरण है।

##Generate data frame with regressor and AR(1) error. The error term is 
## \eps_t=0.3*\eps_{t-1}+v_t
df <- data.frame(x1=rnorm(100), err=filter(rnorm(100)/5,filter=0.3,method="recursive"))

##Create ther response
df$y <- 1 + 2*df$x + df$err

###Fit the model
gls(y~x, data=df, corr=corAR1(0.5,form=~1))

Generalized least squares fit by REML
  Model: y ~ x 
  Data: df 
  Log-restricted-likelihood: 9.986475

 Coefficients:
 (Intercept)           x 
   1.040129    2.001884 

 Correlation Structure: AR(1)
 Formula: ~1 
 Parameter estimate(s):
     Phi 
 0.2686271 
Degrees of freedom: 100 total; 98 residual
Residual standard error: 0.2172698 

चूंकि मॉडल को अधिकतम संभावना का उपयोग करके फिट किया गया है, इसलिए आपको शुरुआती मूल्यों की आपूर्ति करने की आवश्यकता है। डिफ़ॉल्ट शुरुआती मूल्य 0 है, लेकिन हमेशा के लिए अभिसरण सुनिश्चित करने के लिए कई मूल्यों की कोशिश करना अच्छा है।

जैसा कि डॉ। जी ने बताया है कि आप अन्य सहसंबंध संरचनाओं का भी उपयोग कर सकते हैं, अर्थात् ARMA।

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


"गल = corAR1 (0.5, फ़ॉर्म = ~ 1)" के लिए 0.5 क्या है?
जच

3

आप gls आउटपुट पर पूर्वानुमान का उपयोग कर सकते हैं। देखें? साथ ही आप सहसंबंध संरचना में "प्रपत्र" शब्द द्वारा अवलोकन के आदेश को निर्दिष्ट कर सकते हैं। उदाहरण के लिए:
corr=corAR1(form=~1)इंगित करता है कि डेटा का क्रम वह है जो वे तालिका में हैं। corr=corAR1(form=~Year)इंगित करता है कि आदेश कारक वर्ष में से एक है .. अंत में "0.5" मूल्य corr=corAR1(0.5,form=~1)?आम तौर पर एमए के मामले में एआर, थीटा के मामले में विचरण संरचना (फी, का प्रतिनिधित्व करने के लिए अनुमानित पैरामीटर के मूल्य के लिए सेट है)। ।)। जैसा कि रॉब हयंडमैन ने उल्लेख किया है, अनुकूलन के लिए इसे स्थापित करना और उपयोग करना वैकल्पिक है।


सही (gls) (Arima बनाम) () के अनुसार, पूर्वानुमानित या फिट किए गए मान कहीं अधिक भिन्न होंगे? चूंकि gls केवल निश्चित प्रभावों का उपयोग करेंगे, जबकि Arima फिट मानों के लिए arima त्रुटियों को शामिल करेगा।
B_Miner
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.