I'm running some regression analyses using a nested file. The code that I have is similar to this:
library(tidyverse)
library(purrr)
library(betareg)
# 1. Create dataframe ----
dt <- data.frame(Marker = as.factor(paste0('m', rep(seq(1,10), 10))),
Year = rep(1990:1999, each = 10),
Ahat = rnorm(100, 0.5, 0.1)) %>%
mutate(Group = case_when(
Marker %in% c("m1", "m2", "m3") ~ "A",
Marker %in% c("m4", "m5", "m6") ~ "B",
Marker %in% c("m7", "m8") ~ "C",
TRUE ~ "D"))
# 2 Nesting ----
nested_dt <- dt %>%
group_by(Group) %>%
nest()
# 3 Beta Regression Function
marker_model <- function(dt) {
betareg(Ahat ~ Year, data = dt)
}
# 4 Run Reg Model
models <- nested_dt %>% mutate(mod = map(data, marker_model))
It works fine, but I'd like now to get predicted values from a different time frame (e.g., 2000 to 2010). When using a normal file (not nested), I could easily do this using:
fit <- betareg(formula = Ahat ~ Year, dt)
overtime <- data.frame(Year = seq(2000, 2010))
predict(fit, type = "response", newdata = overtime)
So, does anyone know how to use this predict function on nested files (models in this case)?
Thank you!
You can get predicted values using
map, as you create themodcolumn with it. But extracting the predicted in a human readable manner is not easy.Or just: