Birkaç yıl boyunca bir dakikalık aralıklarla örneklenen AUD / USD döviz kuru günlük fiyatları zaman serisine bir ARIMA (1,1,1) -GARCH (1,1) modeli ekledim. modeli tahmin etmek için milyon veri noktası. Veri kümesi burada mevcuttur . Açıklık getirmek gerekirse, bu, log fiyatlarının birinci dereceden entegrasyonu nedeniyle log iadelerine takılan bir ARMA-GARCH modeliydi. Orijinal AUD / USD zaman serisi şöyle görünür:
Daha sonra, takılmış modele dayalı bir zaman serisini simüle etmeye çalıştım ve bana aşağıdakileri verdi:
Ben de simüle edilmiş zaman serisinin orijinal seriden farklı olmasını bekliyorum ve arzuluyorum, ama orada böyle önemli bir fark olmasını beklemiyordum. Özünde, simüle edilmiş serilerin orijinaline benzemesini veya genel olarak görünmesini istiyorum.
Bu, modeli tahmin etmek ve seriyi simüle etmek için kullandığım R kodudur:
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")
Ve bu tahmin çıktısı:
*---------------------------------*
* 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
Modelleme ve simülasyonumu nasıl geliştirebileceğime dair herhangi bir rehberlik veya yapmış olabileceğim hatalara ilişkin herhangi bir anlayıştan çok memnun olurum. Görünüşe göre, model kalıntısı simülasyon girişimimde gürültü terimi olarak kullanılmıyor gibi görünüyor, ancak nasıl dahil edileceğimden emin değilim.
ugarchspec()
veugarchsim()
işlevlerin bulunduğu yerde) içermez . Burada bir soru sorduğunuzda kodunuzun yeniden oluşturulabildiğinden emin olun ve "insanların size yardımcı olmasına yardımcı olur".