oos_lag_forc: Out-of-sample lagged linear model forecast conditioned on...

Description Usage Arguments Value See Also Examples

View source: R/oos_lag_forc.R

Description

oos_lag_forc takes a linear model call, an integer number of periods ahead to forecast, a period to end the initial coefficient estimation and begin forecasting, an optional vector of time data associated with the linear model, and an optional integer number of past periods to estimate the linear model over. Linear model data is lagged by h_ahead periods and the linear model is re-estimated with data up to estimation_end minus the number of periods specified in estimation_window to create a lagged linear model. If estimation_window is left NULL then the linear model is estimated with all available data up to estimation_end. Coefficients are multiplied by present period realized values of the covariates to create a forecast for h_ahead periods ahead. This process is iteratively repeated for each period after estimation_end with coefficients updating in each period. Returns an out-of-sample forecast conditional on realized values that would have been available at the forecast origin. Optionally returns the coefficients used to create each forecast. Tests the out-of-sample performance of a linear model had it been lagged and conditioned on available information.

Usage

1
2
3
4
5
6
7
8
oos_lag_forc(
  lm_call,
  h_ahead,
  estimation_end,
  time_vec = NULL,
  estimation_window = NULL,
  return_betas = FALSE
)

Arguments

lm_call

Linear model call of the class lm.

h_ahead

Integer representing the number of periods ahead that is being forecasted.

estimation_end

Value of any class representing when to end the initial coefficient estimation period and begin forecasting.

time_vec

Vector of any class that is equal in length to the data in lm_call.

estimation_window

Integer representing the number of past periods that the linear model should be estimated over in each period.

return_betas

Boolean, selects whether the coefficients used in each period to create the forecast are returned. If TRUE, a data frame of betas is returned to the Global Environment.

Value

Forecast object that contains the out-of-sample forecast.

See Also

For a detailed example see the help vignette: vignette("lmForc", package = "lmForc")

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
date <- as.Date(c("2010-03-31", "2010-06-30", "2010-09-30", "2010-12-31",
                  "2011-03-31", "2011-06-30", "2011-09-30", "2011-12-31", 
                  "2012-03-31", "2012-06-30"))
y  <- c(1.09, 1.71, 1.09, 2.46, 1.78, 1.35, 2.89, 2.11, 2.97, 0.99)
x1 <- c(4.22, 3.86, 4.27, 5.60, 5.11, 4.31, 4.92, 5.80, 6.30, 4.17)
x2  <- c(10.03, 10.49, 10.85, 10.47, 9.09, 10.91, 8.68, 9.91, 7.87, 6.63)
data <- data.frame(date, y, x1, x2)

oos_lag_forc(
  lm_call = lm(y ~ x1 + x2, data),
  h_ahead = 2L,
  estimation_end = as.Date("2011-03-31"),
  time_vec = data$date,
  estimation_window = NULL,
  return_betas = FALSE
)

oos_lag_forc(
  lm_call = lm(y ~ x1 + x2, data),
  h_ahead = 2L,
  estimation_end = 6L
)

lmForc documentation built on Jan. 4, 2022, 1:11 a.m.