在 R 中的 ARDL 模型中绘制回归线

问题描述 投票:0回答:0

我正在开展一个项目,我在该项目中实施了 ARDL 模型,并希望在黑色回归线上看到过去的值,在蓝色的同一线上看到模型生成的预测值,但出现错误:

Error in is.constant(y): 'list' object cannot be coerced to type 'double'
.我附上了数据样本,我们将不胜感激任何帮助。

数据样本:

structure(list(Row = c("2021-01-01", "2021-01-02", "2021-01-03", 
"2021-01-04", "2021-01-05", "2021-01-06", "2021-01-07", "2021-01-08", 
"2021-01-09", "2021-01-10", "2021-01-11", "2021-01-12", "2021-01-13", 
"2021-01-14", "2021-01-15", "2021-01-16", "2021-01-17", "2021-01-18", 
"2021-01-19", "2021-01-20", "2021-01-21", "2021-01-22", "2021-01-23", 
"2021-01-24", "2021-01-25", "2021-01-26", "2021-01-27", "2021-01-28", 
"2021-01-29", "2021-01-30"), Date = structure(c(18628, 18629, 
18630, 18631, 18632, 18633, 18634, 18635, 18636, 18637, 18638, 
18639, 18640, 18641, 18642, 18643, 18644, 18645, 18646, 18647, 
18648, 18649, 18650, 18651, 18652, 18653, 18654, 18655, 18656, 
18657), class = "Date"), Inflation = c(136, 136.3, 136.4, 136.5, 
136.6, 136.8, 136.9, 137, 137.2, 137.3, 137.4, 137.5, 137.7, 
137.8, 137.9, 138.1, 138.2, 138.3, 138.5, 138.6, 138.7, 138.8, 
139, 139.1, 139.2, 139.4, 139.5, 139.6, 139.7, 139.9), ATOM_Complete = c(0, 
-0.453943, 0.399285, 0.182872, 0.220046, 0.463671000000001, -0.405467000000001, 
-0.323575, 0.587951, -0.109354, -0.708655, -0.0216700000000003, 
0.522982000000001, 0.216621999999999, 1.499416, 1.090329, -0.522449, 
0.987390999999999, -0.516599999999999, -0.0742460000000005, -1.749442, 
0.859947, 0.297435999999999, -0.0705479999999987, -0.481712000000001, 
-0.0388529999999996, -0.731108, 1.140646, -0.146628000000001, 
0.0664419999999994)), row.names = c(NA, -30L), class = c("data.table", 
"data.frame"), .internal.selfref = <pointer: 0x000002b44e2ee710>)

ardl_model1 <- dLagM::ardlDlm(ATOM_Complete ~ Inflation, data = data_1, p = 3, q = 5)

代码:

Model1_fcst_7_days <- dLagM::forecast(ardl_model1, x = data_1$Inflation, h = 7)
model1_fccst7 <- Model1_fcst_7_days$forecasts
model1_fccst7

# Predict actual and forecasted values

actual_values <- data_1$ATOM_Complete
forecasted_values <- predict(ardl_model1, newdata = data_1)

# Combine actual and forecasted values

all_values <- c(actual_values, forecasted_values)

# Create a date sequence for the x-axis

dates <- seq(as.Date("2023-01-17"), by = "day", length.out = length(all_values))

# Plot the actual and forecasted values with regression line

plot(dates, all_values, type = "l", col = "black", xlab = "Date", ylab = "ATOM_Complete")
lines(dates[-(1:length(actual_values))], forecasted_values, col = "blue")
r time-series regression forecasting ardl
© www.soinside.com 2019 - 2024. All rights reserved.