楼主: tylerma3223
11212 2

[有偿编程] 求教R语言做预测的方法 [推广有奖]

  • 0关注
  • 16粉丝

已卖:4976份资源

教授

3%

还不是VIP/贵宾

-

威望
1
论坛币
222362 个
通用积分
6.5552
学术水平
42 点
热心指数
72 点
信用等级
44 点
经验
19872 点
帖子
512
精华
0
在线时间
925 小时
注册时间
2013-1-28
最后登录
2023-11-29

楼主
tylerma3223 学生认证  发表于 2018-1-15 10:37:05 |AI写论文
100论坛币
复制代码
现有代码是:
y<-rnorm(n = 100,mean = 2,sd = 1)
y<-sort(y)
x1<-rnorm(n = 100,mean = 2,sd = 1)
x2<-rnorm(n = 100,mean = 2,sd = 1)
x3<-rnorm(n = 100,mean = 2,sd = 1)

date1<-seq.Date(from = as.Date("1992-12-31"),by = "q",length.out = 100)

da01<-data.frame(date1,x1,x2,x3)
da01

lm1<-lm(y~x1+x2+x3,data = da01)

summary(lm1)

plot(date1,y,type = "l")



#思路是:(1) y对x1的3阶滞后项、x2的4阶滞后项、x3的3阶滞后项做回归,得出回归方程lm2
# (2) 根据x1 x2 x3 的现有数据,把y向前预测3期
# (3) 在同一张图上画出y的时间序列图,实际数值用黑实线,预测数值用黑虚线,95%置信区间用红色。

#(4)求高手把R代码补充齐全,谢谢!
图片1.jpg

图片1.jpg (30.84 KB)

图片1.jpg

关键词:R语言 回归方程 置信区间 时间序列 滞后项

沙发
cheetahfly 在职认证  发表于 2018-1-15 10:37:06
  1. # 数据准备
  2. y <- rnorm(n = 100, mean = 2, sd = 1)
  3. y <- sort(y)
  4. x1 <- rnorm(n = 100, mean = 2, sd = 1)
  5. x2 <- rnorm(n = 100, mean = 2, sd = 1)
  6. x3 <- rnorm(n = 100, mean = 2, sd = 1)

  7. date1 <- seq.Date(from = as.Date("1992-12-31"), by = "q", length.out = 103)

  8. da02 <- data.frame(date1, y = c(y, rep(NA, 3)), x1 = c(rep(NA, 3), x1), x2 = c(rep(NA, 4), x2[1:99]), x3 = c(rep(NA, 3), x3))
  9. train <- da02[1:100, ]
  10. newdata <- da02[101:103, ]

  11. # 建模和预测
  12. lm2 <- lm(y ~ x1 + x2 + x3, data = train)
  13. prediction <- predict(lm2, newdata = newdata, interval = "prediction")
  14. predicted <- data.frame(date = date1[100:103], y = c(y[100], prediction[, "fit"]),
  15.                         lwr =  c(y[100], prediction[, "lwr"]),
  16.                         upr =  c(y[100], prediction[, "upr"]))

  17. # 画图
  18. plot(x = date1, y = c(y, rep(NA, 3)), type = "l", xlab = "date", ylab = "y")
  19. lines(x = predicted$date, y = predicted$y, lty = 2)
  20. lines(x = predicted$date, y = predicted$lwr, lty = 3, col = "red")
  21. lines(x = predicted$date, y = predicted$upr, lty = 3, col = "red")
  22. abline(v = predicted$date[1], col = "blue")
复制代码

plot.png


藤椅
tylerma3223 学生认证  发表于 2018-1-22 21:28:02
cheetahfly 发表于 2018-1-15 10:37
方法可行,亲测成功,谢谢您的帮助。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-21 10:30