Análisis de la Población de Australia

auspobla <- global_economy |>
  select(Country, Year, Population)|>
  filter(Country=="Australia")|>
  update_tsibble(index = Year, regular = TRUE)
autoplot(auspobla, Population)

Podemos observar en la gráfica que no tiene estacionalidad, por lo que solo se analizarán los modelos de Drift y Naive.

# Fit the models
aus_fit <- auspobla |>
  model(
    Drift = RW(Population ~ drift()),
    `Naïve` = NAIVE(Population),
    
  )

aus_fc <- aus_fit |> forecast(h = 5)
# Plot forecasts against actual values
aus_fc |>
  autoplot(auspobla,  level = NULL) +
  autolayer(
    filter_index( auspobla, "2018" ~ .),
    colour = "black"
  ) +
  labs(
    y = "Population",
    title = "Poblacion de Australia"
  ) +
  guides(colour = guide_legend(title = "Forecast"))
## Plot variable not specified, automatically selected `.vars = Population`

Análisis de la Producción de ladrillos

bricks <- aus_production |>
 select(Quarter, Bricks)|>
  filter_index("1956 Q1" ~ "2005 Q2")
bricks
## # A tsibble: 198 x 2 [1Q]
##    Quarter Bricks
##      <qtr>  <dbl>
##  1 1956 Q1    189
##  2 1956 Q2    204
##  3 1956 Q3    208
##  4 1956 Q4    197
##  5 1957 Q1    187
##  6 1957 Q2    214
##  7 1957 Q3    227
##  8 1957 Q4    222
##  9 1958 Q1    199
## 10 1958 Q2    229
## # ℹ 188 more rows
autoplot(bricks, Bricks)

Podemos observar que en este caso si existe cierta estacionalidad, por lo que veremos como pronostica en los modelos naive, snaive y drift.

# Fit the models
bricks_fit <- bricks |>
   model(
   
    Driftl = RW(Bricks ~ drift()),
    `Naïvel` = NAIVE(Bricks),
    `Seasonal Naïvel`= SNAIVE(Bricks),
  )

# Pronosticamos los proximos 12 Trimestres
bricks_fc <- bricks_fit |> forecast(h = 12)

# Plot forecasts against actual values
bricks_fc |>
  autoplot(bricks, level = NULL) +
  autolayer(
    filter_index(bricks,  "2005 Q3" ~ .),
    colour = "black"
  ) +
  labs(
    y = "Cantidad",
    title = "Pronóstico para la producción de ladrillos"
  ) +
  guides(colour = guide_legend(title = "Forecast"))
## Plot variable not specified, automatically selected `.vars = Bricks`

Separare los modelos para poder visaualizarlos uno por uno.

modriftl <- bricks_fc |>
  filter(.model == "Driftl")

modnaivel <- bricks_fc |>
  filter(.model == "Naïvel")

modsnaivel <- bricks_fc |>
  filter(.model == "Seasonal Naïvel")

Procederemos a graficar cada modelo.

 autoplot(modriftl, bricks)+
  labs(
    y = "Cantidad",
    title = "Pronóstico para la producción de ladrillos con modelo Drift"
  )

autoplot(modnaivel , bricks) + labs(
    y = "Cantidad",
    title = "Pronóstico para la producción de ladrillos con modelo Naive"
  )

autoplot(modsnaivel, bricks) + labs(
    y = "Cantidad",
    title = "Pronóstico para la producción de ladrillos con modelo Snaive"
  )

Como se puede observar el modelo que mejor le ajusta es el Snaive, por su comportamiento que tiene estacionalidad y al prónosticar es la más aproximada.

Análisis en las cantidades de New South Wales - Lambs

stock <- aus_livestock |>
  
  filter(Animal=="Lambs", State == "New South Wales")|>
  update_tsibble(index = Month, regular = TRUE)
autoplot(stock, Count)

stock
## # A tsibble: 558 x 4 [1M]
## # Key:       Animal, State [1]
##       Month Animal State            Count
##       <mth> <fct>  <fct>            <dbl>
##  1 1972 Jul Lambs  New South Wales 587600
##  2 1972 Aug Lambs  New South Wales 553700
##  3 1972 Sep Lambs  New South Wales 494900
##  4 1972 Oct Lambs  New South Wales 533500
##  5 1972 Nov Lambs  New South Wales 574300
##  6 1972 Dec Lambs  New South Wales 517500
##  7 1973 Jan Lambs  New South Wales 562600
##  8 1973 Feb Lambs  New South Wales 426900
##  9 1973 Mar Lambs  New South Wales 496300
## 10 1973 Apr Lambs  New South Wales 496000
## # ℹ 548 more rows

Este caso se podría decir que se ve una ligera estacionalidad, por lo que veremos el pronostico a traves de los modelos naive, snaive y drift.

# Fit the models
stock_fit <- stock |>
   model(
   
    Drifts = RW(Count ~ drift()),
    `Naïves` = NAIVE(Count),
    `Seasonal Naïves`= SNAIVE(Count),
  )

# Pronosticamos los proximos 48 meses
stock_fc <- stock_fit |> forecast(h = 48)

# Plot forecasts against actual values
stock_fc |>
  autoplot(stock, level = NULL) +
  autolayer(
    filter_index(stock,  "2019 Jan" ~ .),
    colour = "black"
  ) +
  labs(
    y = "Cantidad",
    title = "Pronóstico para las cantidades de New South Wales - Lambs"
  ) +
  guides(colour = guide_legend(title = "Forecast"))
## Plot variable not specified, automatically selected `.vars = Count`

Separare los modelos para poder visaualizarlos uno por uno.

modrifs <- stock_fc |>
  filter(.model == "Drifts")

modnaives <- stock_fc |>
  filter(.model == "Naïves")

modsnaives <- stock_fc |>
  filter(.model == "Seasonal Naïves")

Procederemos a gráficar cada modelo.

 autoplot(modrifs, stock)+
  labs(
    y = "Cantidad",
    title = "Pronóstico para los animales en existencia de NSW-Lambs con modelo Drift"
  )

autoplot(modnaives , stock) + labs(
    y = "Cantidad",
    title = "Pronóstico para los animales en existencia de NSW-Lambs con modelo Naive"
  )

autoplot(modsnaives, stock) + labs(
    y = "Cantidad",
    title = "Pronóstico para los animales en existencia de NSW-Lambs con modelo Snaive"
  )

Análisis en las riquezas en el hogar

 household <- hh_budget |>
  select(Country, Year, Wealth)|>
  update_tsibble(index = Year, regular = TRUE)
autoplot(household, Wealth)

household
## # A tsibble: 88 x 3 [1Y]
## # Key:       Country [4]
##    Country    Year Wealth
##    <chr>     <dbl>  <dbl>
##  1 Australia  1995   315.
##  2 Australia  1996   315.
##  3 Australia  1997   323.
##  4 Australia  1998   339.
##  5 Australia  1999   354.
##  6 Australia  2000   350.
##  7 Australia  2001   348.
##  8 Australia  2002   349.
##  9 Australia  2003   360.
## 10 Australia  2004   379.
## # ℹ 78 more rows

Este caso se podría decir que no hay estacionalidad, por lo que veremos el pronostico a traves de los modelos naive y drift.

# Fit the models
household_fit <- household |>
   model(
   
    Drifth = RW(Wealth ~ drift()),
    `Naïveh` = NAIVE(Wealth),
    
  )

# Pronosticamos los proximos 5 años
household_fc <- household_fit |> forecast(h = 5)

# Plot forecasts against actual values
household_fc |>
  autoplot(household, level = NULL) +
  autolayer(
    filter_index(household,  "2017" ~ .),
    colour = "black"
  ) +
  labs(
    y = "$MXN",
    title = "Pronóstico para el poder adquisitivo de los hogares"
  ) +
  guides(colour = guide_legend(title = "Forecast"))
## Plot variable not specified, automatically selected `.vars = Wealth`

Separare los modelos para poder visaualizarlos uno por uno.

modrifh <- household_fc |>
  filter(.model == "Drifth")

modnaiveh <- household_fc |>
  filter(.model == "Naïveh")

Procederemos a gráficar cada modelo.

 autoplot(modrifh, household)+
  labs(
    y = "$MXN",
    title = "Pronóstico para el poder adquisitivo de los hogares con modelo Drift"
  )

autoplot(modnaiveh , household) + labs(
    y = "$MXN",
    title = "Pronóstico para el poder adquisitivo de los hogares con modelo Naive"
  )

Análisis en las rotaciones para comida para llevar Australiana

food <- aus_retail |>
  filter(State=="Australian Capital Territory", Industry=="Cafes, restaurants and catering services")|>
  update_tsibble(index = Month, regular = TRUE)
autoplot(food, Turnover)

food
## # A tsibble: 441 x 5 [1M]
## # Key:       State, Industry [1]
##    State                        Industry           `Series ID`    Month Turnover
##    <chr>                        <chr>              <chr>          <mth>    <dbl>
##  1 Australian Capital Territory Cafes, restaurant… A3349849A   1982 Apr      4.4
##  2 Australian Capital Territory Cafes, restaurant… A3349849A   1982 May      3.4
##  3 Australian Capital Territory Cafes, restaurant… A3349849A   1982 Jun      3.6
##  4 Australian Capital Territory Cafes, restaurant… A3349849A   1982 Jul      4  
##  5 Australian Capital Territory Cafes, restaurant… A3349849A   1982 Aug      3.6
##  6 Australian Capital Territory Cafes, restaurant… A3349849A   1982 Sep      4.2
##  7 Australian Capital Territory Cafes, restaurant… A3349849A   1982 Oct      4.8
##  8 Australian Capital Territory Cafes, restaurant… A3349849A   1982 Nov      5.4
##  9 Australian Capital Territory Cafes, restaurant… A3349849A   1982 Dec      6.9
## 10 Australian Capital Territory Cafes, restaurant… A3349849A   1983 Jan      3.8
## # ℹ 431 more rows

Este caso se podría decir que se ve una ligera estacionalidad, por lo que veremos el pronostico a traves de los modelos naive, snaive y drift.

# Fit the models
food_fit <- food |>
   model(
   
    Driftf = RW(Turnover ~ drift()),
    `Naïvef` = NAIVE(Turnover),
    `Seasonal Naïvef`= SNAIVE(Turnover),
  )

# Pronosticamos los proximos 48 meses
food_fc <- food_fit |> forecast(h = 48)

# Plot forecasts against actual values
food_fc |>
  autoplot(food, level = NULL) +
  autolayer(
    filter_index(food,  "2019 Jan" ~ .),
    colour = "black"
  ) +
  labs(
    y = "Cantidad",
    title = "Pronóstico para la comida para llevar"
  ) +
  guides(colour = guide_legend(title = "Forecast"))
## Plot variable not specified, automatically selected `.vars = Turnover`

Separare los modelos para poder visualizarlos uno por uno.

modriftf <- food_fc |>
  filter(.model == "Driftf")

modnaivef <- food_fc |>
  filter(.model == "Naïvef")

modsnaivef <- food_fc |>
  filter(.model == "Seasonal Naïvef")

Procederemos a gráficar cada modelo.

 autoplot(modriftf, food)+
  labs(
    y = "Cantidad",
    title = "Pronóstico para la facturación de la comida para llevar con modelo Drift"
  )

autoplot(modnaivef , food) + labs(
    y = "Cantidad",
    title = "Pronóstico para la facturación de la comida para llevar con modelo Naive"
  )

autoplot(modsnaivef, food) + labs(
    y = "Cantidad",
    title = "Pronóstico para la la facturación de la comida para llevar con modelo Snaive"
  )