Tôi đã trang bị mô hình ARIMA (1,1,1) -GARCH (1,1) cho chuỗi thời gian của giá nhật ký tỷ giá AUD / USD được lấy mẫu trong khoảng thời gian một phút trong vài năm, cho tôi hơn hai triệu điểm dữ liệu để ước tính mô hình. Bộ dữ liệu có sẵn ở đây . Để rõ ràng, đây là mô hình ARMA-GARCH được trang bị để trả về nhật ký do sự tích hợp đơn hàng đầu tiên của giá gỗ. Chuỗi thời gian AUD / USD ban đầu trông như thế này:
Sau đó, tôi đã cố gắng mô phỏng một chuỗi thời gian dựa trên mô hình được trang bị, đưa cho tôi những điều sau:
Tôi đều mong đợi và mong muốn chuỗi thời gian mô phỏng khác với chuỗi ban đầu, nhưng tôi không hy vọng sẽ có sự khác biệt đáng kể như vậy. Về bản chất, tôi muốn loạt mô phỏng hoạt động hoặc nhìn rộng ra như bản gốc.
Đây là mã R tôi đã sử dụng để ước tính mô hình và mô phỏng chuỗi:
library(rugarch)
rows <- nrow(data)
data <- (log(data[2:rows,])-log(data[1:(rows-1),]))
spec <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "std")
fit <- ugarchfit(spec = spec, data = data, solver = "hybrid")
sim <- ugarchsim(fit, n.sim = rows)
prices <- exp(diffinv(fitted(sim)))
plot(seq(1, nrow(prices), 1), prices, type="l")
Và đây là đầu ra ước tính:
*---------------------------------*
* GARCH Model Fit *
*---------------------------------*
Conditional Variance Dynamics
-----------------------------------
GARCH Model : sGARCH(1,1)
Mean Model : ARFIMA(1,0,1)
Distribution : std
Optimal Parameters
------------------------------------
Estimate Std. Error t value Pr(>|t|)
mu 0.000000 0.000000 -1.755016 0.079257
ar1 -0.009243 0.035624 -0.259456 0.795283
ma1 -0.010114 0.036277 -0.278786 0.780409
omega 0.000000 0.000000 0.011062 0.991174
alpha1 0.050000 0.000045 1099.877416 0.000000
beta1 0.900000 0.000207 4341.655345 0.000000
shape 4.000000 0.003722 1074.724738 0.000000
Robust Standard Errors:
Estimate Std. Error t value Pr(>|t|)
mu 0.000000 0.000002 -0.048475 0.961338
ar1 -0.009243 0.493738 -0.018720 0.985064
ma1 -0.010114 0.498011 -0.020308 0.983798
omega 0.000000 0.000010 0.000004 0.999997
alpha1 0.050000 0.159015 0.314436 0.753190
beta1 0.900000 0.456020 1.973598 0.048427
shape 4.000000 2.460678 1.625568 0.104042
LogLikelihood : 16340000
Tôi đánh giá rất cao bất kỳ hướng dẫn nào về cách cải thiện mô hình và mô phỏng của tôi, hoặc bất kỳ hiểu biết nào về các lỗi tôi có thể đã mắc phải. Dường như phần dư của mô hình không được sử dụng làm thuật ngữ nhiễu trong nỗ lực mô phỏng của tôi, mặc dù tôi không chắc chắn cách kết hợp nó.
ugarchspec()
và cácugarchsim()
chức năng cư trú). Hãy chắc chắn rằng mã của bạn có thể được lặp lại bất cứ khi nào bạn đặt câu hỏi ở đây và nó sẽ "giúp mọi người giúp bạn".