Hậu quả của việc mô hình hóa một quy trình không cố định bằng ARMA?


23

Tôi hiểu rằng chúng ta nên sử dụng ARIMA để lập mô hình chuỗi thời gian không cố định. Ngoài ra, mọi thứ tôi đọc đều nói rằng ARMA chỉ nên được sử dụng cho chuỗi thời gian đứng yên.

Điều tôi đang cố gắng hiểu là, điều gì xảy ra trong thực tế khi phân loại sai một mô hình và giả sử d = 0trong một chuỗi thời gian không cố định? Ví dụ:

controlData <- arima.sim(list(order = c(1,1,1), ar = .5, ma = .5), n = 44)

dữ liệu điều khiển trông như thế này:

 [1]   0.0000000   0.1240838  -1.4544087  -3.1943094  -5.6205257
 [6]  -8.5636126 -10.1573548  -9.2822666 -10.0174493 -11.0105225
[11] -11.4726127 -13.8827001 -16.6040541 -19.1966633 -22.0543414
[16] -24.8542959 -25.2883155 -23.6519271 -21.8270981 -21.4351267
[21] -22.6155812 -21.9189036 -20.2064343 -18.2516852 -15.5822178
[26] -13.2248230 -13.4220158 -13.8823855 -14.6122867 -16.4143756
[31] -16.8726071 -15.8499558 -14.0805114 -11.4016515  -9.3330560
[36]  -7.5676563  -6.3691600  -6.8471371  -7.5982880  -8.9692152
[41] -10.6733419 -11.6865440 -12.2503202 -13.5314306 -13.4654890

Giả sử tôi không biết dữ liệu là gì ARIMA(1,1,1), tôi có thể xem qua pacf(controlData).

pacf (controlData)

Sau đó, tôi sử dụng Dickey-Fuller để xem liệu dữ liệu không cố định:

require('tseries')
adf.test(controlData)

# Augmented Dickey-Fuller Test
#
# data:  controlData
# Dickey-Fuller = -2.4133, Lag order = 3, p-value = 0.4099
# alternative hypothesis: stationary

adf.test(controlData, k = 1)

# Augmented Dickey-Fuller Test
#
#data:  controlData
# Dickey-Fuller = -3.1469, Lag order = 1, p-value = 0.1188
# alternative hypothesis: stationary

Vì vậy, tôi có thể giả sử dữ liệu là ARIMA (2,0, *) Sau đó sử dụng auto.arima(controlData)để cố gắng có được sự phù hợp nhất?

require('forecast')
naiveFit <- auto.arima(controlData)
naiveFit
# Series: controlData 
# ARIMA(2,0,1) with non-zero mean 
# 
# Coefficients:
#          ar1      ar2     ma1  intercept
#      1.4985  -0.5637  0.6427   -11.8690
# s.e.  0.1508   0.1546  0.1912     3.2647
#
# sigma^2 estimated as 0.8936:  log likelihood=-64.01
# AIC=138.02   AICc=139.56   BIC=147.05

Vì vậy, mặc dù dữ liệu trong quá khứ và tương lai là ARIMA (1,1,1), tôi có thể bị cám dỗ để phân loại nó là ARIMA (2,0,1). tsdata(auto.arima(controlData))trông cũng tốt

Đây là những gì một người lập mô hình thông tin sẽ tìm thấy:

informedFit <- arima(controlData, order = c(1,1,1))
# informedFit
# Series: controlData 
# ARIMA(1,1,1)                    
#
# Coefficients:
#          ar1     ma1
#       0.4936  0.6859
# s.e.  0.1564  0.1764
#
# sigma^2 estimated as 0.9571:  log likelihood=-62.22
# AIC=130.44   AICc=131.04   BIC=135.79

1) Tại sao các tiêu chí thông tin này tốt hơn mô hình được chọn bởi auto.arima(controlData)?

Bây giờ, tôi chỉ so sánh đồ họa với dữ liệu thực và 2 mô hình:

plot(controlData)
lines(fitted(naiveFit), col = "red")
lines(fitted(informedFit), col = "blue")

tsPlots

2) Chơi người ủng hộ của quỷ, tôi sẽ phải trả những hậu quả gì khi sử dụng ARIMA (2, 0, 1) làm mô hình? Những rủi ro của lỗi này là gì?

3) Tôi chủ yếu quan tâm đến bất kỳ tác động nào đối với các dự đoán chuyển tiếp nhiều giai đoạn. Tôi cho rằng họ sẽ kém chính xác? Tôi chỉ đang tìm kiếm một số bằng chứng.

4) Bạn có đề xuất một phương pháp thay thế cho lựa chọn mô hình không? Có bất kỳ vấn đề nào với lý luận của tôi như là một người lập mô hình "không hiểu biết" không?

Tôi thực sự tò mò những hậu quả khác của loại phân loại sai này là gì. Tôi đã tìm kiếm một số nguồn và không thể tìm thấy bất cứ điều gì. Tất cả các tài liệu tôi có thể tìm thấy chỉ chạm vào chủ đề này, thay vào đó chỉ nêu dữ liệu nên đứng yên trước khi thực hiện ARMA, và nếu nó không cố định, thì nó cần phải được phân biệt d lần.

Cảm ơn!


Ấn tượng của tôi là nó tương tự như giả định "lỗi trực giao" trong hồi quy cắt ngang (nghĩa là nó thiên vị các lỗi tiêu chuẩn nhưng không phải là hệ số), nhưng tôi thực sự thích nghe câu trả lời thực tế.
Shadowtalker

Câu trả lời:


11

Ấn tượng của tôi là câu hỏi này không có câu trả lời duy nhất, hoàn toàn chung chung, vì vậy tôi sẽ chỉ khám phá trường hợp đơn giản nhất, và theo một cách không chính thức.

(1)yt= =yt-1+bạnt,t= =1,...,T,y0= =0
bạntE(bạnt2)= =σbạn2

(2)yt= =Σtôi= =1tbạntôi

Một

(3)yt= =βyt-1+bạnt,t= =1,...,T,y0= =0

β^β

k

(4)y^T+k= =β^kyT

MSE của nó sẽ là

MSEMột[y^T+k]= =E(β^kyT-yT+k)2

(5)= =E[(β^k-1)yT-Σtôi= =T+1T+kbạntôi]2= =E[(β^k-1)2yT2]+kσbạn2

(trung hạn của hình vuông biến mất, cũng như các sản phẩm chéo của các lỗi trong tương lai).

B

(6)Δyt= =γΔyt-1+bạnt

γ^

(7)yt= =yt-1+γ(yt-1-yt-2)+bạnt

để dự báo mức độ của quá trình, chúng ta sẽ có

y^T+1= =yT+γ^(yT-yT-1)

trong thực tế, với DGP thực sự sẽ là

(số 8)y^T+1= =yT+γ^bạnT

B

y^T+k= =yT+(γ^+γ^2+...+γ^k)bạnT

|γ^|<10

(9)y^T+k= =yT+γ^-γ^k+11-γ^bạnT

và như vậy

(10)MSEB[y^T+k]= =E[(γ^-γ^k+11-γ^)2bạnT2]+kσbạn2

trong khi tôi nhắc lại cho thuận tiện

(5)MSEMột[y^T+k]= =E[(β^k-1)2yT2]+kσbạn2

Vì vậy, để mô hình khác biệt hoạt động tốt hơn về mặt dự đoán MSE, chúng tôi muốn

MSEB[y^T+k]MSEMột[y^T+k]

E[(γ^-γ^k+11-γ^)2bạnT2]E[(β^k-1)2yT2]

BMộtβ^

β^>1kkBMột

Mộtβ^<1k

E[(γ^1-γ^)2bạnT2]E[yT2]= =Tσbạn2??

kk

(γ^1-γ^)20B

γ^bạnT

Cov[(γ^1-γ^)2,bạnT2]+E[(γ^1-γ^)2]σbạn2Tσbạn2??

Cov[(γ^1-γ^)2,bạnT2](T-E[(γ^1-γ^)2])σbạn2??

γ^Tγ^(0,1)

Vì vậy, trong tất cả, mà không thảo luận về bất kỳ phương pháp ước tính cụ thể nào, tôi tin rằng chúng ta có thể chỉ ra một cách không chính thức rằng mô hình khác biệt sẽ được kỳ vọng sẽ hoạt động tốt hơn về mặt dự đoán MSE.


1

Đó là một câu hỏi hay.

Theo tôi nhận ra, bạn chỉ cần xem pacf nhưng điều đó là không đủ. ACF và PACF đều cần thiết để chọn mô hình tốt nhất.

Mặt khác, các bài kiểm tra tại chỗ rất yếu và nhạy cảm và cần một lượng lớn độ trễ để được kiểm tra.

Ngoài ra, nên ưu tiên thực hiện chuỗi thời gian cố định trước khi áp dụng bất kỳ mô hình nào. Nói một cách đơn giản, các mô hình ARIMA chỉ xem xét một trường hợp đặc biệt là không cố định (tốt nhất là theo xu hướng).

Về câu hỏi của bạn, tôi không chắc về hàm auto.arima nhưng tôi chắc chắn rằng số lượng điểm dữ liệu trong ví dụ của bạn là nhỏ. Mô hình mô phỏng sử dụng nhiều điểm dữ liệu sẽ trả lời tốt câu hỏi của bạn. Ngoài ra, tôi khuyên bạn nên xem xét ACF của chuỗi thời gian cũng như PACF. Về lựa chọn mô hình, quy tắc ngón tay cái là chọn mô hình đơn giản nhất (lưu ý rằng mô hình đơn giản nhất sau khi thực hiện chuỗi thời gian cố định).

Tôi giới thiệu bạn đến tài liệu tham khảo này . Cuốn sách này không trả lời tất cả các câu hỏi của bạn nhưng cung cấp cho bạn một số manh mối.

----- phần bổ sung ------- @nsw xem xét xu hướng trong dữ liệu của bạn. Nếu bạn xem xét một mô hình đứng yên, nó sẽ dẫn đến dự đoán tăng / giảm nhưng thực tế các mô hình ARMA được thiết kế để dự đoán dữ liệu phẳng. Tôi đã thay đổi mã của bạn để phản ánh sự khác biệt này:

yêu cầu ('dự báo')

yêu cầu ('tseries')

controlData <- arima.sim (danh sách (order = c (1,1,1), ar = .5, ma = .5), n = 1000 )

acf (controlData)

ts.plot (controlData)

naiveFit <- arima (controlData, order = c (2,0,1))

trueFit <- arima (controlData, order = c (1,1,1))

PrnaiveFit <-forecast.Arima (naiveFit, 10)

PrtrueFit <- dự báo.Arima (trueFit, 10)

matplot (cbind (PrnaiveFit $ mean, PrtrueFit $ mean), type = 'b', col = c ('red', 'green'), ylab = c ('dự đoán ion'), pch = c ('n', 't'))


1
Câu hỏi đặt ra tại sao nó được ưa thích để "tạo ra chuỗi thời gian cố định". Điều này không thực sự trả lời câu hỏi đó.
Shadowtalker

@ssdecontrol Bạn nói chung là đúng. Tôi thực sự quan tâm nhiều hơn đến những hậu quả ngụ ý về dự đoán sau khi sai chính tả. Nhưng tôi không muốn đánh Hamed.HM quá nhiều. Anh ấy vẫn trả lời câu hỏi cuối cùng của tôi, "đây có phải là cách đúng để chọn người mẫu không?" Nhưng chỉ để nhắc lại, đó là điều tôi quan tâm nhất ở đây.
Clark Henry
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.