to_lm {ARDL} | R Documentation |
Convert dynlm model (ardl, uecm, recm) to lm model
Description
Takes a dynlm
model of class
'ardl',
'uecm' or 'recm' and converts it into an lm
model. This
can help using the model as a regular lm
model with
functions that are not compatible with dynlm
models such
as the predict
function to forecast.
Usage
to_lm(object, fix_names = FALSE, data_class = NULL, ...)
Arguments
object |
An object of |
fix_names |
A logical, indicating whether the variable names should be
rewritten without special functions and character in the names such as "d()"
or "L()". When |
data_class |
If "ts", it converts the data class to
|
... |
Currently unused argument. |
Value
to_lm
returns an object of class
"lm"
.
Author(s)
Kleanthis Natsiopoulos, klnatsio@gmail.com
See Also
Examples
## Convert ARDL into lm ------------------------------------------------
ardl_3132 <- ardl(LRM ~ LRY + IBO + IDE, data = denmark, order = c(3,1,3,2))
ardl_3132_lm <- to_lm(ardl_3132)
summary(ardl_3132)$coefficients
summary(ardl_3132_lm)$coefficients
## Convert UECM into lm ------------------------------------------------
uecm_3132 <- uecm(ardl_3132)
uecm_3132_lm <- to_lm(uecm_3132)
summary(uecm_3132)$coefficients
summary(uecm_3132_lm)$coefficients
## Convert RECM into lm ------------------------------------------------
recm_3132 <- recm(ardl_3132, case = 2)
recm_3132_lm <- to_lm(recm_3132)
summary(recm_3132)$coefficients
summary(recm_3132_lm)$coefficients
## Use the lm model to forecast ----------------------------------------
# Forecast using the in-sample data
insample_data <- ardl_3132$model
head(insample_data)
predicted_values <- predict(ardl_3132_lm, newdata = insample_data)
# The predicted values are expected to be the same as the fitted values
ardl_3132$fitted.values
predicted_values
# Convert to ts class for the plot
predicted_values <- ts(predicted_values, start = c(1974,4), frequency=4)
plot(denmark$LRM, lwd=4) #The input dependent variable
lines(ardl_3132$fitted.values, lwd=4, col="blue") #The fitted values
lines(predicted_values, lty=2, lwd=2, col="red") #The predicted values
## Convert to lm for post-estimation testing ---------------------------
# Ramsey's RESET test for functional form
library(lmtest) # for resettest()
library(strucchange) # for efp(), and sctest()
## Not run:
# This produces an error.
# resettest() cannot use data of class 'zoo' such as the 'denmark' data
# used to build the original model
resettest(uecm_3132, type = c("regressor"))
## End(Not run)
uecm_3132_lm <- to_lm(uecm_3132, data_class = "ts")
resettest(uecm_3132_lm, power = 2)
# CUSUM test for structural change detection
## Not run:
# This produces an error.
# efp() does not understand special functions such as "d()" and "L()"
efp(uecm_3132$full_formula, data = uecm_3132$model)
## End(Not run)
uecm_3132_lm_names <- to_lm(uecm_3132, fix_names = TRUE)
fluctuation <- efp(uecm_3132_lm_names$full_formula,
data = uecm_3132_lm_names$model)
sctest(fluctuation)
plot(fluctuation)