[英]Current and future prediction in a single data frame in r
我在下面有一个数据集,我想对其进行线性回归,然后在单个数据框中获取它们的拟合值和上限和下限。
该数据集包含每个国家和地区组合的五周数据。 即对于 US 和 G 组合线性回归 model 将在其中数量将在五周内按周回归,然后此 model 将用于预测 6 周。 我的最终数据框看起来像这样
我所做的是一种组合
data <- data.frame(country = c("US","US","US","US","US","US","US","US","US","US","UK","UK","UK","UK","UK"),
Area = c("G","G","G","G","G","I","I","I","I","I","A","A","A","A","A"),
week = c(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5),amount = c(12,23,34,32,12,12,34,45,65,45,45,34,23,43,43))
data_1 <- data[(data$country=="US" & data$Area=="G"),]
# model building on initial five weeks
model <- lm(amount ~ week, data = data_1)
# creating one future week: week no 6
future <- data.frame(country="US",Area="G",week=6,amount = NA)
data2 <- rbind(data_1,future)
# prediction on all 6 weeks
pre <- predict(model,newdata = data2,interval = "prediction",level = 0.95)
pre
我从这里得到提示Looping linear regression output in a data frame in r
但无法复制这一点以包括所有其他组合的第 6 周预测。 请帮忙!
我主要是复制你的应对,最后只是结合结果的问题
data_1 <- data[(data$country=="US" & data$Area=="G"),]
# model building on initial five weeks
model <- lm(amount ~ week, data = data_1)
pre1 <- predict(model,newdata = data_1, interval = "prediction",level = 0.95)
# creating one future week: week no 6
future <- data.frame(country="US",Area="G",week=6,amount = NA)
data_2 <- rbind(data_1,future)
# prediction on all 6 weeks
pre2 <- predict(model,newdata = data_2, interval = "prediction",level = 0.95)
rbind(
cbind(data_1,pre1),
cbind(data_2,pre2)
)
country Area week amount fit lwr upr
1 US G 1 12 20.8 -27.67915 69.27915
2 US G 2 23 21.7 -21.99851 65.39851
3 US G 3 34 22.6 -19.38417 64.58417
4 US G 4 32 23.5 -20.19851 67.19851
5 US G 5 12 24.4 -24.07915 72.87915
11 US G 1 12 20.8 -27.67915 69.27915
21 US G 2 23 21.7 -21.99851 65.39851
31 US G 3 34 22.6 -19.38417 64.58417
41 US G 4 32 23.5 -20.19851 67.19851
51 US G 5 12 24.4 -24.07915 72.87915
6 US G 6 NA 25.3 -30.23984 80.83984
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.