rugarch
প্যাকেজটি ব্যবহার করে এবং কিছু জাল তথ্য সহ বাস্তবায়নের উদাহরণ এখানে । ফাংশন ugarchfit
গড় সমীকরণের বহিরাগত regressors অন্তর্ভুক্তি (ব্যবহার করে নোট জন্য করতে পারবেন external.regressors
মধ্যে fit.spec
নিচের কোডে)।
স্বরলিপিগুলি স্থির করতে, মডেলটি হ'ল
যেখানে এবং সময়ে covariate বোঝাতে , এবং "স্বাভাবিক" অনুমানের / পরামিতি উপর প্রয়োজনীয়তা এবং নতুনত্ব প্রক্রিয়ার সঙ্গে ।
Yটিεটিσ2টি= λ0+ + λ1এক্সটি , ১+ + λ2এক্সটি , ২+ + εটি,= σটিজেডটি,= ω + α ϵ ϵ2টি - 1+ + βσ2টি - 1,
এক্সটি , ১এক্সটি , ২টিজেডটি
উদাহরণে ব্যবহৃত প্যারামিটার মানগুলি নিম্নরূপ।
## Model parameters
nb.period <- 1000
omega <- 0.00001
alpha <- 0.12
beta <- 0.87
lambda <- c(0.001, 0.4, 0.2)
নীচের চিত্রটি এবং পাশাপাশি সিরিজটি । তাদের জেনারেট করতে ব্যবহৃত কোড নিচে প্রদান করা হয়।এক্সটি , ১এক্সটি , ২YটিR
## Dependencies
library(rugarch)
## Generate some covariates
set.seed(234)
ext.reg.1 <- 0.01 * (sin(2*pi*(1:nb.period)/nb.period))/2 + rnorm(nb.period, 0, 0.0001)
ext.reg.2 <- 0.05 * (sin(6*pi*(1:nb.period)/nb.period))/2 + rnorm(nb.period, 0, 0.001)
ext.reg <- cbind(ext.reg.1, ext.reg.2)
## Generate some GARCH innovations
sim.spec <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1,1)),
mean.model = list(armaOrder = c(0,0), include.mean = FALSE),
distribution.model = "norm",
fixed.pars = list(omega = omega, alpha1 = alpha, beta1 = beta))
path.sgarch <- ugarchpath(sim.spec, n.sim = nb.period, n.start = 1)
epsilon <- as.vector(fitted(path.sgarch))
## Create the time series
y <- lambda[1] + lambda[2] * ext.reg[, 1] + lambda[3] * ext.reg[, 2] + epsilon
## Data visualization
par(mfrow = c(3,1))
plot(ext.reg[, 1], type = "l", xlab = "Time", ylab = "Covariate 1")
plot(ext.reg[, 2], type = "l", xlab = "Time", ylab = "Covariate 2")
plot(y, type = "h", xlab = "Time")
par(mfrow = c(1,1))
নীচের মত একটি ফিট ugarchfit
করা হয়।
## Fit
fit.spec <- ugarchspec(variance.model = list(model = "sGARCH",
garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(0, 0),
include.mean = TRUE,
external.regressors = ext.reg),
distribution.model = "norm")
fit <- ugarchfit(data = y, spec = fit.spec)
প্যারামিটার অনুমান হয়
## Results review
fit.val <- coef(fit)
fit.sd <- diag(vcov(fit))
true.val <- c(lambda, omega, alpha, beta)
fit.conf.lb <- fit.val + qnorm(0.025) * fit.sd
fit.conf.ub <- fit.val + qnorm(0.975) * fit.sd
> print(fit.val)
# mu mxreg1 mxreg2 omega alpha1 beta1
#1.724885e-03 3.942020e-01 7.342743e-02 1.451739e-05 1.022208e-01 8.769060e-01
> print(fit.sd)
#[1] 4.635344e-07 3.255819e-02 1.504019e-03 1.195897e-10 8.312088e-04 3.375684e-04
এবং সম্পর্কিত সত্য মান হয়
> print(true.val)
#[1] 0.00100 0.40000 0.20000 0.00001 0.12000 0.87000
নিম্নলিখিত চিত্রটি 95% আত্মবিশ্বাসের ব্যবধান এবং সত্য মানের সাথে একটি পরামিতি অনুমান দেখায়। R
জেনারেট করতে এটা প্রদান করা হয় ব্যবহার করা কোড নিচে হয়।
plot(c(lambda, omega, alpha, beta), pch = 1, col = "red",
ylim = range(c(fit.conf.lb, fit.conf.ub, true.val)),
xlab = "", ylab = "", axes = FALSE)
box(); axis(1, at = 1:length(fit.val), labels = names(fit.val)); axis(2)
points(coef(fit), col = "blue", pch = 4)
for (i in 1:length(fit.val)) {
lines(c(i,i), c(fit.conf.lb[i], fit.conf.ub[i]))
}
legend( "topleft", legend = c("true value", "estimate", "confidence interval"),
col = c("red", "blue", 1), pch = c(1, 4, NA), lty = c(NA, NA, 1), inset = 0.01)