В ответ на ваше разъяснение в комментариях, вот один из многих способов получения лаговых переменных, используя функцию lag
в dplyr
(я также добавляю новую строку здесь для более позднего прогнозирования):
df %>%
add_row(ID = 11, Time = "1948-11-01") %>%
mutate(Air_Temperature_lagged = dplyr::lag(Air_Temperature, 1),
Relative_Humidity_lagged = dplyr::lag(Relative_Humidity, 1)) -> df.withlags
Затем вы можете подобрать прямую линейную регрессию, используя lm
, с Precipitation
в качестве зависимой переменной и запаздывающими версиями двух других переменных в качестве предиктора:
precip.model <- lm(data = df.withlags, Precipitation ~ Air_Temperature_lagged + Relative_Humidity_lagged)
Затем вы можете применить свои коэффициенты к самым последним значениям в Air_Temperature
и Relative_Humidity
, чтобы спрогнозировать количество осадков на ноябрь 1948 года, используя функцию predict
.
predict(precip.model, newdata = df.withlags)
1 2 3 4 5 6 7 8 9 10 11
NA 2929.566 3512.551 3236.421 3778.742 2586.012 3473.482 3615.884 3426.378 3534.965 3893.255
Модель предсказывает 3893.255
.
Обратите внимание, что эта модель позволит вам прогнозировать только один период времени в будущем, поскольку у вас нет больше информации в ваших предикторах.