Learn R Programming

midasr (version 0.5)

midas_sim: Simulate simple MIDAS regression response variable

Description

Given the predictor variable and the coefficients simulate MIDAS regression response variable.

Usage

midas_sim(n, x, theta, rand_gen = rnorm, innov = rand_gen(n, ...), ...)

Arguments

n
The sample size
x
a ts object with MIDAS regression predictor variable
theta
a vector with MIDAS regression coefficients
rand_gen
the function which generates the sample of innovations, the default is rnorm
innov
the vector with innovations, the default is NULL, i.e. innovations are generated using argument rand_gen
...
additional arguments to rand_gen.

Value

  • a ts object

Details

MIDAS regression with one predictor variable has the following form:

$$y_t=\sum_{j=0}^{h}\theta_jx_{tm-j}+u_t,$$ where $m$ is the frequency ratio and $h$ is the number of high frequency lags included in the regression.

MIDAS regression involves times series with different frequencies. In R the frequency property is set when creating time series objects ts. Hence the frequency ratio $m$ which figures in MIDAS regression is calculated from frequency property of time series objects supplied.

Examples

Run this code
##The parameter function
theta_h0 <- function(p, dk) {
   i <- (1:dk-1)/100
   pol <- p[3]*i + p[4]*i^2
   (p[1] + p[2]*i)*exp(pol)
}

##Generate coefficients
theta0 <- theta_h0(c(-0.1,10,-10,-10),4*12)

##Plot the coefficients
plot(theta0)

##Generate the predictor variable, leave 4 low frequency lags of data for burn-in.
xx <- ts(arima.sim(model = list(ar = 0.6), 600 * 12), frequency = 12)

##Simulate the response variable
y <- midas_sim(500, xx, theta0)

x <- window(xx, start=start(y))
midas_r(y ~ mls(y, 1, 1) + fmls(x, 4*12-1, 12, theta_h0), start = list(x = c(-0.1, 10, -10, -10)))

Run the code above in your browser using DataLab