ฉันจะพอดีกับโมเดลเชิงเส้นที่มีข้อผิดพลาดอัตโนมัติที่สัมพันธ์กันใน R ได้อย่างไร ใน stata ฉันจะใช้prais
คำสั่ง แต่ฉันไม่พบ R เทียบเท่า ...
ฉันจะพอดีกับโมเดลเชิงเส้นที่มีข้อผิดพลาดอัตโนมัติที่สัมพันธ์กันใน R ได้อย่างไร ใน stata ฉันจะใช้prais
คำสั่ง แต่ฉันไม่พบ R เทียบเท่า ...
คำตอบ:
ดูที่gls
(ทั่วไปน้อยสุดกำลังสอง) จากแพคเกจnlme
คุณสามารถตั้งค่าโปรไฟล์ความสัมพันธ์สำหรับข้อผิดพลาดในการถดถอยเช่น ARMA ฯลฯ :
gls(Y ~ X, correlation=corARMA(p=1,q=1))
สำหรับข้อผิดพลาด ARMA (1,1)
นอกเหนือ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)
arima
ตัวเลือกนั้นดูแตกต่างจากของ Stata prais
ในครั้งแรก แต่มันมีความยืดหยุ่นมากกว่าและคุณยังสามารถใช้tsdiag
เพื่อให้เห็นภาพที่ชัดเจนว่าสมมุติฐาน AR (1) ของคุณนั้นเข้ากันได้ดีแค่ไหน
การใช้งานฟังก์ชั่น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
โปรดทราบว่าโดยทั่วไปการประมาณกำลังสองน้อยที่สุดนั้นจะสอดคล้องกันหากเมทริกซ์ความแปรปรวนร่วมของข้อผิดพลาดการถดถอยไม่ได้เป็นเมทริกซ์เอกลักษณ์หลายตัวดังนั้นหากคุณพอดีกับโมเดลที่มีโครงสร้างความแปรปรวนร่วมเฉพาะก่อนอื่นคุณต้องทดสอบว่ามันเหมาะสมหรือไม่
คุณสามารถใช้ทำนายผล GLS เห็นไหม นอกจากนี้คุณสามารถระบุลำดับของการสังเกตด้วยคำว่า "ฟอร์ม" ในโครงสร้างความสัมพันธ์ ตัวอย่างเช่น:
corr=corAR1(form=~1)
ระบุว่าลำดับของข้อมูลเป็นสิ่งที่อยู่ในตาราง
corr=corAR1(form=~Year)
บ่งชี้ว่าคำสั่งซื้อเป็นหนึ่งในปัจจัยปีในที่สุดค่า "0.5" corr=corAR1(0.5,form=~1)?
โดยทั่วไปจะถูกตั้งค่าให้เป็นค่าของพารามิเตอร์ที่ประเมินเพื่อแสดงโครงสร้างความแปรปรวน (phi ในกรณีของ AR, theta ในกรณีของ MA .. .) มันเป็นตัวเลือกในการตั้งค่าและใช้สำหรับการเพิ่มประสิทธิภาพตามที่ Rob Hyndman กล่าวถึง