У меня есть набор данных среднегодовых значений температуры на разных широтах в разные годы. Я хочу использовать это, чтобы предсказать широту, на которой данная температура может быть найдена в данном году;то есть, «в 1980 году, на какой широте среднегодовая температура была бы 20 ° C?»
Мне нужно использовать для этого модели, относящиеся к году, потому что соотношение между широтой и температурой менялось с течением времени (хотя не в приведенных ниже выборочных данных, которые генерируются случайным образом). Это будет включать:
- Подгонка GAM к набору данных, сгруппированных / разделенных по годам.
- Для каждого отдельного GAM (то есть для каждого года) используйте
predict.gam
, чтобы вычислить прогнозируемое значение для каждого элемента в списке температур. - Рекомбинируйте их, чтобы получить кадр данных со столбцами, представляющими
year
, newdata_value
(значение температуры, используемое для прогнозирования) и predicted_value
(широта от подачи каждого newdata_value
в GAM для конкретного года).
Вот набор игрушечных данных:
years <- seq(1968, 2018, 1)
lat <- seq(34.5, 44.5, 1)
dat <- expand.grid(years, lat)
names(dat) <- c("years","lat")
dat$temp <- runif(dim(dat)[1], 5, 20) # add random temperature data points
newdata_values <- seq(2, 16, 2) # temperature values to use for prediction
Я пробовал различные решения purrr
и split-apply-combine
и ничего не понял. Какие-либо предложения?