【问题标题】:Using R to forecast future values使用 R 预测未来值
【发布时间】:2021-03-06 20:25:57
【问题描述】:

我目前正在做一个练习,我想使用多元线性回归来预测明年,但我有错误。

线性回归有效,但我无法使用 R 预测未来值。

mod5 <- tslm(tsdata[,5]~tsdata[,10]+tsdata[,11]+tsdata[,12]+tsdata[,13]+tsdata[,14]+tsdata[,28]+tsdata[,29]+tsdata[,30]+tsdata[,31]+tsdata[,32]+tsdata[, 15] + tsdata[, 16] + tsdata[,17]+tsdata[,18]+tsdata[,6]+tsdata[,7]+tsdata[,8]+tsdata[,9]+tsdata[,1])
fmod5 <- forecast(mod5,h=12)
tsdata <- structure(c(1, 2, 3, 4, 5, 6, 2008, 2008, 2008, 2008, 2008, 2008, 
1, 2, 3, 4, 5, 6, 76, 115, 77, 84, 114, 87, 59, 64, 59, 48, 80, 
78, 0.56, 0.4, 0.61, 0.58, 0.66, 0.7, 0.13, 0.12, 0.18, 0.22, 
0.23, 0.19, 0.19, 0.43, 0.2, 0.19, 0.09, 0.1, 0.1, 0.03, 0, 0, 
0, 0, 0.26, 0.24, 0.14, 0.3, 0.28, 0.22, 0.27, 0.43, 0.2, 0.19, 
0.09, 0.14, 0.26, 0.13, 0.11, 0.11, 0.26, 0.26, 0.19, 0.13, 0.42, 
0.32, 0.31, 0.26, 0, 0.06, 0.1, 0.05, 0.04, 0.09, 0.4, 0.53, 
0.29, 0.27, 0.28, 0.1, 0.39, 0.21, 0.53, 0.45, 0.54, 0.65, 0.19, 
0.25, 0.16, 0.27, 0.17, 0.24, 0.25, 0.51, 0.51, 0.35, 0.34, 0.34, 
0.03, 0, 0, 0, 0, 0, 0.26, 0.21, 0.05, 0.08, 0.14, 0.32, 0, 0, 
0, 0, 0, 0.05, 0.1, 0.25, 0, 0.01, 0.06, 0.08, 0.17, 0.12, 0.27, 
0.23, 0.15, 0.27, 0, 0, 0, 0, 0, 0, 0.25, 0.33, 0.42, 0.34, 0.36, 
0.19, 0.06, 0.01, 0.02, 0.07, 0.2, 0.06, 0.1, 0.06, 0.22, 0.25, 
0.06, 0, 0.27, 0.31, 0.42, 0.5, 0.51, 0.44, 0.21, 0.15, 0.29, 
0.15, 0.21, 0.14, 0.4, 0.46, 0.05, 0.09, 0.21, 0.4, 0, 0, 0, 
0, 0, 0, 0.1, 0.06, 0.22, 0.25, 0.06, 0, 0, 0, 0, 0, 0, 0, 0, 
0.0087, 0.01, 0.07, 0, 0, 0, 0, 0.05, 0.03, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0.01, 0, 0, 0.06, 0.01, 0.06, 0.11, 0.04, 0, 0.76, 
0.9, 0.68, 0.59, 0.77, 0.94, 0, 0, 0, 0.04, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0087, 0, 0, 0.03, 0, 0, 0, 0.01, 
0.01, 0, 0.02, 0, 0, 0, 0, 0, 0, 0.03, 0.02, 0.1, 0.05, 0, 0, 
0.05, 0, 0, 0, 0.07, 0, 0, 0, 0, 0, 0, 0, 0.01, 0.01, 0, 0.03, 
0.00877, 0, 0, 0, 0.05, 0, 0.00877, 0, 0, 0, 0, 0, 0, 0, 0.01, 
0.0087, 0, 0.01, 0.01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0.0087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0.01, 0, 0.04, 0.02, 0.01, 0, 0, 0, 0, 0, 0.03, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0.01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 98, 92, 
101, 110, 100), .Dim = c(6L, 67L), .Dimnames = list(NULL, c("period", 
"year", "month", "numadmit", "numrt", "cc1", "cc2", "cc3", "cc4", 
"hr1", "hr2", "hr3", "hr4", "hr5", "age1", "age2", "age3", "female", 
"tumEA", "tumLA", "tumLP", "tumNC", "tumOC", "tumOT", "tumPH", 
"tumSL", "tumTH", "c0", "c1", "c3", "c4", "c7", "h800", "h801", 
"h802", "h803", "h804", "h805", "h807", "h808", "h809", "h812", 
"h814", "h820", "h824", "h826", "h829", "h831", "h833", "h834", 
"h835", "h843", "h844", "h848", "h850", "h851", "h852", "h855", 
"h856", "h868", "h894", "h908", "h949", "h950", "h952", "h972", 
"numdiag")), .Tsp = c(1, 1.41666666666667, 12), class = c("mts", 
"ts", "matrix"))

【问题讨论】:

  • 贴一些数据,你正在使用哪些包,以及错误信息。
  • 我正在使用 fpp2,预测,
  • 这是我的拟合值,但我想预测下一年:
  • 您可以使用dput(head(tsdata)) 显示您的一些数据(编辑原始问题并将结果粘贴到那里)。
  • 谢谢@EricKrantz先生,我做了修改

标签: r


【解决方案1】:

您必须拥有预测变量/特征变量的值,除非它们是月份或季节,才能进行预测。

最好也尝试在 tslm 函数中使用公式格式,以使事情变得更简单。这是来自book fpp2 的示例。

fit.consBest <- tslm(Consumption ~ Income + Savings + Unemployment,
                   data = uschange)

newdata <- data.frame(
              Income = c(1, 1, 1, 1),
              Savings = c(0.5, 0.5, 0.5, 0.5),
              Unemployment = c(0, 0, 0, 0))

fcast.up <- forecast(fit.consBest, newdata = newdata)

【讨论】:

    猜你喜欢
    • 2018-01-29
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    • 2021-10-24
    • 2022-08-03
    • 2020-08-19
    相关资源
    最近更新 更多