gpt4 book ai didi

r - 使用情景回归模型进行预测

转载 作者:行者123 更新时间:2023-12-02 03:27:32 24 4
gpt4 key购买 nike

我正在对这些数据运行 AR。

   Date        Price     YOY    Quarter
2000-01-15 2.385368 -312362 Q1
2000-02-15 2.614250 -442117 Q1
2000-03-15 2.828261 -252596 Q1
2000-04-15 3.028842 -292756 Q2
2000-05-15 3.596409 -401578 Q2
......

模型是

price.fit<-lm(log(Price)~+(YOY)+log(lag(Price))+relevel(Quarter,ref="Q4"),subset(Data,Year>=2000))

现在我需要预测接下来的 12 个时期。虚构的数据框“newdata”包括变量 YOY 的估计值(范围)。

newdata
high mean low
.....

如何使用预测函数或其他方法预测 future 12 个月的价格范围(高、中、低)?或者也许使用循环?

最佳答案

有一个通用函数predict(),它可以用于预测。虽然下面使用 predict.lm() 进行说明,但 predict() 应该有效。给定一个 lm 对象和新数据,它返回预测值。

由于回归返回数值,因此必须手动映射转换为因子(高、中、低),为此使用 sapply()

library(lubridate)
dates <- ymd(19990115) + months(0:71)
df <- data.frame(date = dates,
price = sample(100:150, 72, replace = T),
YOY = sample(-40000:-20000, 72, replace = T),
Qtr = as.factor(quarter(dates)))

price.fit <- lm(log(price) ~ +(YOY) + log(lag(price)) + relevel(Qtr, ref = "4"),
data = df[year(df$date) >= 2000,])


pred <- predict.lm(price.fit, newdata = df[year(df$date) < 2000,])
pred
#1 2 3 4 5 6
#4.976734 4.653960 4.605170 4.691348 4.663439 4.969813
#7 8 9 10 11 12
#4.927254 4.727388 4.634729 4.875197 4.700480 4.700480

sapply(pred, function(x) {
if(x < 4.56) "low"
else if(x < 4.75) "medium"
else "high"
})
#1 2 3 4 5 6 7 8
#"high" "medium" "medium" "medium" "medium" "high" "high" "medium"
#9 10 11 12
#"medium" "high" "medium" "medium"

关于r - 使用情景回归模型进行预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29659820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com