mapea sobre el objeto mable de modelos y aplica gg_tsresiduals() a cada uno.
Tengo una mable que contiene varios modelos:
pacman::p_load(tidyverse, fable, fpp3, feasts)
retail_data |> autoplot() + facet_wrap(vars(State))
retail_train <- retail_data |> filter(year(Month) <= max(year(Month)) – 4)
ft.mod <- retail_train |> model(
drift = RW(Turnover ~ drift())
)
ft.mod
Una mable: 8 x 3
Key: State, Industry [8]
State Industry drift
<chr> <chr> <model>
1 Australian Capital Territory Servicios de comida para llevar <RW c/ deriva>
2 Nueva Gales del Sur Servicios de comida para llevar <RW c/ deriva>
3 Territorio del Norte Servicios de comida para llevar <RW c/ deriva>
4 Queensland Servicios de comida para llevar <RW c/ deriva>
5 Australia Meridional Servicios de comida para llevar <RW c/ deriva>
6 Tasmania Servicios de comida para llevar <RW c/ deriva>
7 Victoria Servicios de comida para llevar <RW c/ deriva>
8 Australia Occidental Servicios de comida para llevar <RW c/ deriva>
Puedo visualizar los residuos de un solo modelo así:
ft.mod |> filter(State == 'Victoria') |> gg_tsresiduals() # plot appears in pane
Pero si intento hacerlo de una vez:
ft.mod |> gg_tsresiduals()
Error: gg_tsresiduals() debe ser utilizado con una mable que contenga sólo un modelo.
Intenté usando map()
:
ft.mod |> map( ~ gg_tsresiduals(.x))
Error: gg_tsresiduals() debe ser utilizado con una mable que contenga sólo un modelo.
¿Cómo puedo usar map para iterar sobre cada modelo con gg_tsresiduals()?
davy.ai
Para usar
map()
para iterar sobre cada modelo congg_tsresiduals()
, primero debe convertir la mable en un tibble usandoas_tibble()
y despuésgather()
para transformar los datos en un formato largo. Luego, puede usargroup_by()
para agrupar los datos por Estado e Industria y, finalmente, usarmap()
para aplicargg_tsresiduals()
a cada modelo usando.$drift
. Aquí está el código:Esto creará una nueva columna llamada
resid
que contiene una lista de objetos ggplot para cada modelo. Puede usarunnest()
para extraer los ggplots de cada modelo en un solo tibble:Esto le dará un tibble con una fila para cada gráfico residual para cada modelo, junto con la información de Estado e Industria. Luego puede usar
facet_wrap()
para crear una cuadrícula de gráficos residuales para cada combinación de Estado-Industria: