Carlson Department Store permaneció cerrada cuatro meses (septiembre a diciembre del Año 5) tras el paso de un huracán. Se dispone de 48 meses de ventas previas al huracán (de septiembre del Año 1 a agosto del Año 5) tanto de Carlson como del total de tiendas departamentales del condado, y de las ventas reales del condado durante los cuatro meses en que Carlson estuvo cerrada.
El objetivo es:
# Orden cronológico: t = 1 es septiembre del Año 1 ... t = 48 es agosto del Año 5
mes <- c("Sep","Oct","Nov","Dic",
rep(c("Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"), 3),
"Ene","Feb","Mar","Abr","May","Jun","Jul","Ago")
año <- c(rep(1,4), rep(2,12), rep(3,12), rep(4,12), rep(5,8))
t <- 1:48
carlson <- c(1.71,1.90,2.74,4.20,
1.45,1.80,2.03,1.99,2.32,2.20,2.13,2.43,1.90,2.13,2.56,4.16,
2.31,1.89,2.02,2.23,2.39,2.14,2.27,2.21,1.89,2.29,2.83,4.04,
2.31,1.99,2.42,2.45,2.57,2.42,2.40,2.50,2.09,2.54,2.97,4.35,
2.56,2.28,2.69,2.48,2.73,2.37,2.31,2.23)
condado <- c(55.80,56.40,71.40,117.60,
46.80,48.00,60.00,57.60,61.80,58.20,56.40,63.00,57.60,53.40,71.40,114.00,
46.80,48.60,60.00,58.20,60.60,55.20,51.00,58.80,49.80,54.60,65.40,102.00,
43.80,45.60,59.40,53.40,56.40,52.80,54.00,60.60,47.40,54.60,67.80,100.20,
48.00,51.60,57.60,58.20,60.00,57.00,57.60,61.80)
datos <- data.frame(t, año, mes, carlson, condado)
# Aseguramos que "mes" sea un factor con orden calendario (Ene como base)
niveles_mes <- c("Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic")
datos$mes <- factor(datos$mes, levels = niveles_mes)
kable(head(datos, 12), caption = "Primeras 12 observaciones de la base de datos (48 meses previos al huracán)")
| t | año | mes | carlson | condado |
|---|---|---|---|---|
| 1 | 1 | Sep | 1.71 | 55.8 |
| 2 | 1 | Oct | 1.90 | 56.4 |
| 3 | 1 | Nov | 2.74 | 71.4 |
| 4 | 1 | Dic | 4.20 | 117.6 |
| 5 | 2 | Ene | 1.45 | 46.8 |
| 6 | 2 | Feb | 1.80 | 48.0 |
| 7 | 2 | Mar | 2.03 | 60.0 |
| 8 | 2 | Abr | 1.99 | 57.6 |
| 9 | 2 | May | 2.32 | 61.8 |
| 10 | 2 | Jun | 2.20 | 58.2 |
| 11 | 2 | Jul | 2.13 | 56.4 |
| 12 | 2 | Ago | 2.43 | 63.0 |
Ventas reales del condado durante los cuatro meses en que Carlson permaneció cerrada (septiembre a diciembre del Año 5), usadas más adelante para evaluar el exceso de ventas:
meses_cierre <- factor(c("Sep","Oct","Nov","Dic"), levels = niveles_mes)
t_cierre <- 49:52
condado_real_cierre <- c(69.00, 75.00, 85.20, 121.80)
datos_cierre <- data.frame(t = t_cierre, mes = meses_cierre, condado_real = condado_real_cierre)
kable(datos_cierre, caption = "Ventas reales del condado, Sep-Dic Año 5 (periodo de cierre de Carlson)")
| t | mes | condado_real |
|---|---|---|
| 49 | Sep | 69.0 |
| 50 | Oct | 75.0 |
| 51 | Nov | 85.2 |
| 52 | Dic | 121.8 |
ggplot(datos, aes(x = t, y = carlson)) +
geom_line(color = "steelblue") +
geom_point(color = "steelblue") +
labs(title = "Ventas mensuales de Carlson Department Store (48 meses previos al huracán)",
x = "Mes (t)", y = "Ventas ($ millones)") +
theme_minimal()
ggplot(datos, aes(x = t, y = condado)) +
geom_line(color = "darkorange") +
geom_point(color = "darkorange") +
labs(title = "Ventas totales de tiendas departamentales del condado (48 meses previos al huracán)",
x = "Mes (t)", y = "Ventas ($ millones)") +
theme_minimal()
Ambas series muestran un patrón estacional marcado (pico muy fuerte en diciembre por temporada navideña, mínimos relativos a mitad de año) y una ligera tendencia, lo que justifica un modelo de regresión con tendencia lineal y variables dummy estacionales por mes.
Se ajusta, para cada serie, el modelo:
\[Ventas_t = \beta_0 + \beta_1 \cdot t + \sum_{i=2}^{12} \beta_i \cdot Mes_i + \varepsilon_t\]
donde t es la variable de tendencia (1, 2, …, 48) y
Mes_i son 11 variables dummy (se usa enero como mes base/de
referencia).
modelo_carlson <- lm(carlson ~ t + mes, data = datos)
summary(modelo_carlson)
##
## Call:
## lm(formula = carlson ~ t + mes, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.50750 -0.06604 0.00875 0.07458 0.28750
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.901944 0.090906 20.922 < 2e-16 ***
## t 0.011111 0.001753 6.338 2.78e-07 ***
## mesFeb -0.178611 0.115236 -1.550 0.1301
## mesMar 0.110278 0.115276 0.957 0.3453
## mesAbr 0.096667 0.115342 0.838 0.4077
## mesMay 0.300556 0.115436 2.604 0.0134 *
## mesJun 0.069444 0.115555 0.601 0.5517
## mesJul 0.053333 0.115701 0.461 0.6477
## mesAgo 0.107222 0.115874 0.925 0.3611
## mesSep -0.215556 0.115436 -1.867 0.0702 .
## mesOct 0.090833 0.115342 0.788 0.4363
## mesNov 0.639722 0.115276 5.549 3.03e-06 ***
## mesDic 2.041111 0.115236 17.712 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1629 on 35 degrees of freedom
## Multiple R-squared: 0.9472, Adjusted R-squared: 0.9291
## F-statistic: 52.35 on 12 and 35 DF, p-value: < 2.2e-16
r2_carlson <- summary(modelo_carlson)$r.squared
El modelo explica 94.7% de la variabilidad de las ventas de Carlson (\(R^2\) = 0.9472), lo cual indica un ajuste muy bueno.
modelo_condado <- lm(condado ~ t + mes, data = datos)
summary(modelo_condado)
##
## Call:
## lm(formula = condado ~ t + mes, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.6075 -2.0250 0.0525 1.4963 7.5075
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 48.44875 1.81045 26.761 < 2e-16 ***
## t -0.09125 0.03491 -2.614 0.013119 *
## mesFeb 2.19125 2.29501 0.955 0.346232
## mesMar 13.08250 2.29580 5.698 1.93e-06 ***
## mesAbr 10.77375 2.29713 4.690 4.08e-05 ***
## mesMay 13.71500 2.29899 5.966 8.57e-07 ***
## mesJun 9.90625 2.30137 4.304 0.000128 ***
## mesJul 8.94750 2.30428 3.883 0.000437 ***
## mesAgo 15.33875 2.30772 6.647 1.10e-07 ***
## mesSep 5.93500 2.29899 2.582 0.014182 *
## mesOct 8.12625 2.29713 3.538 0.001161 **
## mesNov 22.46750 2.29580 9.786 1.49e-11 ***
## mesDic 62.00875 2.29501 27.019 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.245 on 35 degrees of freedom
## Multiple R-squared: 0.9692, Adjusted R-squared: 0.9586
## F-statistic: 91.8 on 12 and 35 DF, p-value: < 2.2e-16
r2_condado <- summary(modelo_condado)$r.squared
El modelo del condado explica 96.9% de la variabilidad (\(R^2\) = 0.9692), también un ajuste excelente.
Usamos ambos modelos para pronosticar los meses
t = 49, 50, 51, 52 (septiembre a diciembre del Año 5), es
decir, lo que habría ocurrido si el huracán no hubiera
pasado.
nuevos <- data.frame(t = 49:52, mes = meses_cierre)
pronostico_carlson <- predict(modelo_carlson, newdata = nuevos)
pronostico_condado <- predict(modelo_condado, newdata = nuevos)
tabla_resultado <- data.frame(
Mes = c("Septiembre","Octubre","Noviembre","Diciembre"),
`Carlson_pronosticado` = round(pronostico_carlson, 3),
`Condado_pronosticado` = round(pronostico_condado, 3),
`Condado_real` = condado_real_cierre
)
tabla_resultado$Exceso_condado <- round(tabla_resultado$Condado_real - tabla_resultado$Condado_pronosticado, 3)
kable(tabla_resultado, caption = "Pronósticos (sin huracán) vs. ventas reales del condado")
| Mes | Carlson_pronosticado | Condado_pronosticado | Condado_real | Exceso_condado |
|---|---|---|---|---|
| Septiembre | 2.231 | 49.913 | 69.0 | 19.087 |
| Octubre | 2.548 | 52.013 | 75.0 | 22.987 |
| Noviembre | 3.108 | 66.263 | 85.2 | 18.937 |
| Diciembre | 4.521 | 105.713 | 121.8 | 16.087 |
perdida_carlson <- sum(pronostico_carlson)
Sumando los cuatro meses, Carlson habría vendido aproximadamente 12.41 millones de dólares de septiembre a diciembre del Año 5 de no haber ocurrido el huracán.
estimado_condado_normal <- sum(pronostico_condado)
El condado, de no haber ocurrido el huracán, habría registrado ventas totales estimadas de 273.9 millones de dólares en esos mismos cuatro meses.
Como la tienda permaneció cerrada, sus ventas reales en ese periodo fueron cero. Por lo tanto, la pérdida de ventas estimada de Carlson Department Store es igual al total pronosticado:
\[\text{Pérdida estimada Carlson} = \sum \widehat{Ventas}_{Carlson} \approx \$12.41 \text{ millones}\]
condado_real_total <- sum(condado_real_cierre)
exceso_total <- condado_real_total - estimado_condado_normal
ggplot(tabla_resultado, aes(x = factor(Mes, levels = Mes))) +
geom_col(aes(y = Condado_real, fill = "Ventas reales"), alpha = 0.85) +
geom_col(aes(y = Condado_pronosticado, fill = "Ventas esperadas (sin huracán)"), alpha = 0.55) +
labs(title = "Condado: ventas reales vs. ventas esperadas sin huracán",
x = NULL, y = "Ventas ($ millones)", fill = NULL) +
theme_minimal() +
theme(legend.position = "bottom")
El pronóstico basado en 48 meses de historia (con tendencia y estacionalidad) predice ventas del condado muy por debajo de lo realmente observado en cada uno de los cuatro meses. La diferencia es positiva y consistente (no un solo mes atípico), lo que constituye evidencia estadística a favor de que sí existió un exceso de ventas relacionado con la actividad económica generada por la ayuda federal (más de $8,000 millones) y los pagos de seguros posteriores al huracán.
A los directivos de Carlson Department Store:
Ventas perdidas de Carlson (Sep-Dic Año 5): se estima que, de no haber ocurrido el huracán, Carlson habría vendido aproximadamente $12.41 millones en esos cuatro meses. Dado que la tienda permaneció cerrada y sus ventas reales fueron cero, esta cifra representa la pérdida de ventas reclamable ante la aseguradora.
Ventas esperadas del condado sin huracán: el modelo estima que el condado habría vendido $273.9 millones en el mismo periodo si no hubiera ocurrido el desastre.
Exceso de ventas en el condado: las ventas reales del condado en ese periodo ($351 millones) superan la estimación normal en $77.1 millones, y el exceso se observa en los cuatro meses de forma consistente. Esto respalda el argumento de que las tiendas departamentales del condado (incluida, presumiblemente, Carlson de haber seguido operando) se beneficiaron de un incremento de actividad comercial ligado a la reconstrucción tras el huracán.
Recomendación: Carlson tiene bases sólidas para reclamar ante la aseguradora (a) la pérdida de ventas de aproximadamente $12.41 millones por el cierre, y (b) una compensación adicional o un ajuste a su favor derivado del hecho de que, de haber permanecido abierta, muy probablemente habría capturado una porción del exceso de ventas de $77.1 millones que sí experimentó el resto de las tiendas del condado durante ese mismo periodo.
Nota metodológica: ambos modelos usan variables dummy estacionales (mes) y una variable de tendencia lineal (t), ajustadas por mínimos cuadrados ordinarios sobre los 48 meses previos al huracán. Los pronósticos de septiembre a diciembre del Año 5 son extrapolaciones fuera de la muestra observada; su precisión depende de que el patrón de tendencia y estacionalidad se haya mantenido estable de no haber ocurrido el huracán, supuesto razonable dado el alto \(R^2\) de ambos modelos.