โมเดลเชิงเส้นเรียบง่ายพร้อมข้อผิดพลาดที่เกี่ยวข้องอัตโนมัติใน R [ปิด]


19

ฉันจะพอดีกับโมเดลเชิงเส้นที่มีข้อผิดพลาดอัตโนมัติที่สัมพันธ์กันใน R ได้อย่างไร ใน stata ฉันจะใช้praisคำสั่ง แต่ฉันไม่พบ R เทียบเท่า ...

คำตอบ:


23

ดูที่gls(ทั่วไปน้อยสุดกำลังสอง) จากแพคเกจnlme

คุณสามารถตั้งค่าโปรไฟล์ความสัมพันธ์สำหรับข้อผิดพลาดในการถดถอยเช่น ARMA ฯลฯ :

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

สำหรับข้อผิดพลาด ARMA (1,1)


1
ฉันสามารถใช้ฟังก์ชัน "ทำนาย" บนชุดข้อมูลใหม่และรักษาโครงสร้างข้อผิดพลาดเดิมได้หรือไม่ คำสั่ง gls รู้ได้อย่างไรว่าการสังเกตนั้นอยู่ในลำดับใด
Zach

27

นอกเหนือgls()จากฟังก์ชั่นจากnlmeคุณยังสามารถใช้arima()ฟังก์ชั่นในstatsแพ็คเกจโดยใช้ MLE นี่คือตัวอย่างที่มีทั้งฟังก์ชั่น

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
0.5 สำหรับใน "corr = corAR1 (0.5, form = ~ 1) คืออะไร"
Zach

1
มันให้ค่าเริ่มต้นสำหรับการเพิ่มประสิทธิภาพ มันทำให้แทบจะไม่แตกต่างกันถ้ามันถูกละไว้
Rob Hyndman

1
+1 arimaตัวเลือกนั้นดูแตกต่างจากของ Stata praisในครั้งแรก แต่มันมีความยืดหยุ่นมากกว่าและคุณยังสามารถใช้tsdiagเพื่อให้เห็นภาพที่ชัดเจนว่าสมมุติฐาน AR (1) ของคุณนั้นเข้ากันได้ดีแค่ไหน
Wayne

1
ฉันจะใช้ arima () ได้อย่างไรถ้าฉันถดถอย y บนค่าคงที่เท่านั้น?
user43790

7

การใช้งานฟังก์ชั่นglsจากแพคเกจnlme นี่คือตัวอย่าง

##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

โปรดทราบว่าโดยทั่วไปการประมาณกำลังสองน้อยที่สุดนั้นจะสอดคล้องกันหากเมทริกซ์ความแปรปรวนร่วมของข้อผิดพลาดการถดถอยไม่ได้เป็นเมทริกซ์เอกลักษณ์หลายตัวดังนั้นหากคุณพอดีกับโมเดลที่มีโครงสร้างความแปรปรวนร่วมเฉพาะก่อนอื่นคุณต้องทดสอบว่ามันเหมาะสมหรือไม่


0.5 สำหรับใน "corr = corAR1 (0.5, form = ~ 1) คืออะไร"
Zach

3

คุณสามารถใช้ทำนายผล GLS เห็นไหม นอกจากนี้คุณสามารถระบุลำดับของการสังเกตด้วยคำว่า "ฟอร์ม" ในโครงสร้างความสัมพันธ์ ตัวอย่างเช่น:
corr=corAR1(form=~1)ระบุว่าลำดับของข้อมูลเป็นสิ่งที่อยู่ในตาราง corr=corAR1(form=~Year)บ่งชี้ว่าคำสั่งซื้อเป็นหนึ่งในปัจจัยปีในที่สุดค่า "0.5" corr=corAR1(0.5,form=~1)?โดยทั่วไปจะถูกตั้งค่าให้เป็นค่าของพารามิเตอร์ที่ประเมินเพื่อแสดงโครงสร้างความแปรปรวน (phi ในกรณีของ AR, theta ในกรณีของ MA .. .) มันเป็นตัวเลือกในการตั้งค่าและใช้สำหรับการเพิ่มประสิทธิภาพตามที่ Rob Hyndman กล่าวถึง


การคาดการณ์หรือค่าติดตั้งจะแตกต่างกันมาก แต่ถูกต้อง (gls () และ Arima ())? เนื่องจาก gls จะใช้เอฟเฟกต์คงที่เท่านั้นในขณะที่ Arima จะรวมข้อผิดพลาด arima กับค่าที่ติดตั้งไว้
B_Miner
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.