我有一个由学年、学时和学生人数组成的数据集。我一直在尝试通过学生的数量来预测未来的学时。
df <- data.frame("year = c(2018,2019,2020,2021), "student" = c(1000,1200,1350,1450), "credit" = c(4000,4300,4730,4250))
mod <- lm(credit ~ year + student, data = df)
summary(mod)
我想预测一下未来几年的学时数,比如2022年到2025年,这也考虑到了预测的学生人数。有办法做到这一点吗?
<表类>年信贷 学生 tbody><<tr>2018 4000 1000 2019 4300 1200 2020 4730 1350 2021 4250 1450 2022 NA NA 2023 NA NA 2024 NA NA 2025 NA NA 表类>
您需要传递一个数据帧给predict()作为newdata参数。数据框架要求您为每个预测指定独立变量的值。如果你也想基于线性模型预测学生的数量,并将其作为输入,那么你可以先做这一步。比如:
lm.student <- lm(students ~ year, df)
pred.student <- predict(lm.student, newdata = data.frame(year=2022:2025))
mod <- lm(credit ~ year + student, data = df)
MyNewData <- data.frame (year=2022:2025, student=pred.student)
pred <- predict(mod, newdata = MyNewData)