আর-এ [স্বীকৃত] ত্রুটিযুক্ত সরল রৈখিক মডেল


19

আর-তে স্বতঃসংশ্লিষ্ট ত্রুটিগুলি সহ আমি একটি রৈখিক মডেল কীভাবে ফিট করব? স্ট্যাটায় আমি praisকমান্ডটি ব্যবহার করতাম , তবে আর আর সমতুল্য আমি খুঁজে পাই না ...

উত্তর:


23

কটাক্ষপাত আছে glsপ্যাকেজ থেকে (সাধারণ লিস্ট স্কোয়ার) nlme

আপনি রিগ্রেশন এর ত্রুটিগুলির জন্য একটি সম্পর্কিত সম্পর্ক প্রোফাইল সেট করতে পারেন, যেমন এআরএমএ, ইত্যাদি:

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

এআরএমএ (1,1) ত্রুটির জন্য।


1
আমি কি নতুন ডেটাসেটে "পূর্বাভাস" ফাংশনটি ব্যবহার করতে পারি এবং একই ত্রুটির কাঠামো ধরে রাখতে পারি? জিএলএস কমান্ড কীভাবে জানতে পারে যে পর্যবেক্ষণগুলি কী আদেশে রয়েছে?
Zach

27

gls()থেকে ফাংশনটি ছাড়াও nlme, আপনি এমএলই ব্যবহার 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 

অরিমা () ফাংশনটির সুবিধা হ'ল আপনি অনেক বড় বিভিন্ন এআরএমএ ত্রুটি প্রক্রিয়াটি ফিট করতে পারেন। আপনি যদি পূর্বাভাস প্যাকেজ থেকে অটো.রিমা () ফাংশনটি ব্যবহার করেন তবে আপনি স্বয়ংক্রিয়ভাবে এআরএমএ ত্রুটি সনাক্ত করতে পারবেন:

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

1
"করর = করআর 1 (0.5, ফর্ম = ~ 1) এর জন্য 0.5 কি?"
Zach

1
এটি অপটিমাইজেশনের জন্য একটি প্রাথমিক মান দেয়। এটি বাদ দিলে এটি প্রায় কোনও পার্থক্য করে না।
রব হ্যান্ডম্যান

1
+1 arimaবিকল্পটি praisপ্রথম নজরে স্টাটার চেয়ে আরও আলাদা দেখায় , তবে এটি আরও নমনীয় এবং tsdiagআপনার এআর (1) অনুমানটি আসলে কতটা ফিট করে তার একটি সুন্দর দৃশ্য পেতে আপনিও এটি ব্যবহার করতে পারেন use
ওয়েইন

1
আমি যদি কেবল ধ্রুবকটিতে y চালিত করি তবে আমি কীভাবে অরিমা ব্যবহার করব?
ব্যবহারকারী 43790

7

প্যাকেজ এনএলএম থেকে ফাংশন জিএলএস ব্যবহার করুন । এখানে উদাহরণ।

##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 হয় তবে সর্বদা হিসাবে একত্রিতকরণ নিশ্চিত করার জন্য বেশ কয়েকটি মান চেষ্টা করা ভাল।

যেমন ডঃ জি নির্দেশ করেছেন আপনি অন্যান্য পারস্পরিক সম্পর্ক কাঠামো, যেমন এআরএমএও ব্যবহার করতে পারেন।

মনে রাখবেন যে সাধারণভাবে সর্বনিম্ন স্কোয়ারের অনুমানগুলি সামঞ্জস্যপূর্ণ যদি রিগ্রেশন ত্রুটির কোভারিয়েন্স ম্যাট্রিক্স পরিচয় ম্যাট্রিক্সের একাধিক না হয়, তাই আপনি যদি নির্দিষ্ট কোভারিয়েন্স কাঠামোর সাথে মডেল ফিট করেন, প্রথমে আপনাকে এটি উপযুক্ত কিনা তা পরীক্ষা করা দরকার need


"করর = করআর 1 (0.5, ফর্ম = ~ 1) এর জন্য 0.5 কি?"
Zach

3

আপনি gls আউটপুট উপর পূর্বাভাস ব্যবহার করতে পারেন। Predict.gls দেখুন। এছাড়াও আপনি পারস্পরিক সম্পর্ক কাঠামোতে "ফর্ম" শব্দটি দ্বারা পর্যবেক্ষণের ক্রম নির্দিষ্ট করতে পারেন। উদাহরণস্বরূপ:
corr=corAR1(form=~1)নির্দেশ করে যে ডাটাবেলের ক্রমটি তারা টেবিলে থাকে। corr=corAR1(form=~Year)আদেশটি ফ্যাক্টর ইয়ারের অন্যতম বলে নির্দেশ করে .. অবশেষে "0.5" মানটি corr=corAR1(0.5,form=~1)?সাধারণত প্যারামিটারের মান নির্ধারণ করে যা ভেরিয়েন্স স্ট্রাকচারের প্রতিনিধিত্ব করে (ফাই, এআর ক্ষেত্রে, এমএ ক্ষেত্রে থিটা ..) ।)। এটি সেট আপ করা এবং রব হ্যান্ডম্যান যেমন উল্লেখ করেছেন তেমন অপ্টিমাইজেশনের জন্য ব্যবহার করা optionচ্ছিক।


সঠিক (gls () বনাম আরিমা ()) যদিও ভবিষ্যদ্বাণী করা বা লাগানো মানগুলি অনেক আলাদা হবে? যেহেতু gls কেবল স্থির প্রভাবগুলি ব্যবহার করবে যখন আরিমা ফিটেড মানগুলিতে অরিমা ত্রুটি অন্তর্ভুক্ত করবে।
বি_মিনার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.