imidas_r: Restricted MIDAS regression with I(1) regressors

View source: R/imidasreg.R

imidas_rR Documentation

Restricted MIDAS regression with I(1) regressors

Description

Estimate restricted MIDAS regression using non-linear least squares, when the regressor is I(1)

Usage

imidas_r(
  formula,
  data,
  start,
  Ofunction = "optim",
  weight_gradients = NULL,
  ...
)

Arguments

formula

formula for restricted MIDAS regression. Formula must include fmls function

data

a named list containing data with mixed frequencies

start

the starting values for optimisation. Must be a list with named elements

Ofunction

the list with information which R function to use for optimisation The list must have element named Ofunction which contains character string of chosen R function. Other elements of the list are the arguments passed to this function. The default optimisation function is optim with argument method="BFGS". Other supported functions are nls

weight_gradients

a named list containing gradient functions of weights. The weight gradient function must return the matrix with dimensions d_k \times q, where d_k and q are the number of coefficients in unrestricted and restricted regressions correspondingly. The names of the list should coincide with the names of weights used in formula. The default value is NULL, which means that the numeric approximation of weight function gradient is calculated. If the argument is not NULL, but the weight used in formula is not present, it is assumed that there exists an R function which has the name of the weight function appended with .gradient.

...

additional arguments supplied to optimisation function

Details

Given MIDAS regression:

y_t=∑_{j=0}^k∑_{i=0}^{m-1}θ_{jm+i} x_{(t-j)m-i}+\mathbf{z_t}β+u_t

estimate the parameters of the restriction

θ_h=g(h,λ),

where h=0,...,(k+1)m, together with coefficients β corresponding to additional low frequency regressors.

It is assumed that x is a I(1) process, hence the special transformation is made. After the transformation midas_r is used for estimation.

MIDAS regression involves times series with different frequencies.

The restriction function must return the restricted coefficients of the MIDAS regression.

Value

a midas_r object which is the list with the following elements:

coefficients

the estimates of parameters of restrictions

midas_coefficients

the estimates of MIDAS coefficients of MIDAS regression

model

model data

unrestricted

unrestricted regression estimated using midas_u

term_info

the named list. Each element is a list with the information about the term, such as its frequency, function for weights, gradient function of weights, etc.

fn0

optimisation function for non-linear least squares problem solved in restricted MIDAS regression

rhs

the function which evaluates the right-hand side of the MIDAS regression

gen_midas_coef

the function which generates the MIDAS coefficients of MIDAS regression

opt

the output of optimisation procedure

argmap_opt

the list containing the name of optimisation function together with arguments for optimisation function

start_opt

the starting values used in optimisation

start_list

the starting values as a list

call

the call to the function

terms

terms object

gradient

gradient of NLS objective function

hessian

hessian of NLS objective function

gradD

gradient function of MIDAS weight functions

z_env

the environment in which data is placed

use_gradient

TRUE if user supplied gradient is used, FALSE otherwise

nobs

the number of effective observations

convergence

the convergence message

fitted.values

the fitted values of MIDAS regression

residuals

the residuals of MIDAS regression

Author(s)

Virmantas Kvedaras, Vaidotas Zemlys

See Also

midas_r.midas_r

Examples

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)
}

theta0 <- theta.h0(c(-0.1,10,-10,-10),4*12)

xx <- ts(cumsum(rnorm(600*12)), frequency = 12)

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

x <- window(xx, start=start(y))

imr <- imidas_r(y~fmls(x,4*12-1,12,theta.h0)-1,start=list(x=c(-0.1,10,-10,-10)))


mpiktas/midasr documentation built on Aug. 24, 2022, 2:32 p.m.