线性回归 - 将预测值附加到同一数据集

Linear Regression - Append Predicted Values to Same dataset

我最近开始使用 R 编程。这是我的数据集

WeekOfYear  Production
         1      202612
         2      245633
         3      299653
         4      252612
         5      299633
         6      288993
         7      254653
         8      288612
         9      277733
        10      245633

我需要预测一年中剩余几周的“生产”值

relation<-lm(Production~WeekOfYear,dataset)

predict(relation,data.frame(WeekOfYear=c(11)))

如何将第 11 周到第 52 周(年底)的预测值附加到如下相同的数据集

WeekOfYear  Production
        1       202612
        2       245633
        3       299653
        4       252612
        5       299633
        6       288993
        7       254653
        8       288612
        9       277733
       10       245633
       11   predicted value
       12   predicted value

等等

-或-

WeekOfYear  Production  Regression
         1      202612  fitted value
         2      245633  fitted value
         3      299653  fitted value
         4      252612  fitted value
         5      299633  fitted value
         6      288993  fitted value
         7      254653  fitted value
         8      288612  fitted value
         9      277733  fitted value
        10      245633  fitted value
        11              predicted value
        12              predicted value
        13              predicted value
        14              predicted value
         .
         .
        52              predicted value

要附加您的值,您可以使用以下内容

test_data <- data.frame(WeekOfYear=11:52, Production = rep(0, 52-11+1))
test_data$Production <- predict(relation,test_data)

df = rbind(df, test_data)

我用 df 你的数据框定义的地方

df = data.frame(WeekOfYear =
c(1,2,3,4,5,6,7,8,9,10),
Production = c(202612,245633,299653,252612,299633,288993,254653,288612, 277733,245633))

这会给你这样的行为(情节组合得非常快)

我不确定你的数据是否遵循线性行为,但你可能更了解你的数据...

你可以这样做:

relation <- lm(Production ~ WeekOfYear, dat)

WeekOfYear <- 1:52
predict(relation, data.frame(WeekOfYear))

dat2 <- data.frame(WeekOfYear, regression = predict(relation, data.frame(WeekOfYear)))

merge(dat, dat2, by = 'WeekOfYear', all.y = TRUE)

结果:

   WeekOfYear Production regression
1           1     202612   250517.6
2           2     245633   253864.1
3           3     299653   257210.5
4           4     252612   260557.0
5           5     299633   263903.5
6           6     288993   267249.9
7           7     254653   270596.4
8           8     288612   273942.9
9           9     277733   277289.3
10         10     245633   280635.8
11         11         NA   283982.3
12         12         NA   287328.7

----

51         51         NA   417840.9
52         52         NA   421187.4