Una cadena minorista nacional desea analizar los determinantes de las ventas mensuales de sus tiendas. La gerencia sospecha que tanto decisiones estratégicas (gasto en publicidad y política de precios) como características estructurales (región geográfica y tipo de tienda) influyen en el desempeño comercial. En un contexto de alta competencia y márgenes reducidos, la empresa busca identificar cuáles variables explican mejor la variabilidad en ventas y si ciertas configuraciones de negocio resultan sistemáticamente más rentables. El análisis permitirá fundamentar decisiones de inversión y expansión. Las variables que se incluyen para el análisis son:
Monthly_Sales_kUSD: Ventas mensuales en miles de dólares.
Ad_Spend_kUSD: Gasto mensual en publicidad (miles de dólares).
Price_Index: Índice relativo de precios (1.0 = precio promedio del mercado).
Region: Región geográfica donde opera la tienda.
Store_Type: Tipo de tienda (Mall, Street, Online).
Monthly_Sales_kUSD: Variable de respuesta numérica continua.
Ad_Spend_kUSD: Variable explicativa numérica.
Price_Index: Variable explicativa numérica.
Region: Variable explicativa categórica.
Store_Type: Variable explicativa categórica.
Contamos con datos de 100 observaciones para cada variable.
Las medidas de tendencia central y variabilidad se calcularon para las variables numéricas.
## Monthly_Sales_kUSD Ad_Spend_kUSD Price_Index
## Min. : 64.90 Min. :10.10 Min. :0.7000
## 1st Qu.: 90.28 1st Qu.:29.00 1st Qu.:0.8840
## Median :100.95 Median :37.10 Median :0.9815
## Mean :103.34 Mean :36.27 Mean :0.9807
## 3rd Qu.:113.80 3rd Qu.:44.38 3rd Qu.:1.0610
## Max. :157.60 Max. :70.70 Max. :1.3400
Las ventas mensuales de las tiendas varían entre 64 900 y 157 600 dólares, con un promedio de ventas de 103 340 dólares, mientras que el gasto mensual en publicidad fluctúa entre 10 100 y 70 700 dólares (con un promedio de gasto mensual de 36 270 dólares). El índice relativo de precios por su parte, varía entre 0.70 y 1.34 con un promedio de 0.98.
library(knitr)
vars <- data[c("Monthly_Sales_kUSD", "Ad_Spend_kUSD", "Price_Index")]
data.frame(
Medida = c("sd", "IQR", "CV(%)"),
sapply(vars, function(x) c(sd(x, na.rm=T), IQR(x, na.rm=T), sd(x, na.rm=T)/mean(x, na.rm=T)*100))
) %>% kable(digits=2)| Medida | Monthly_Sales_kUSD | Ad_Spend_kUSD | Price_Index |
|---|---|---|---|
| sd | 17.93 | 12.28 | 0.13 |
| IQR | 23.53 | 15.37 | 0.18 |
| CV(%) | 17.35 | 33.86 | 13.42 |
Con respecto a las medidas de variabilidad, el gasto en publicidad tiene la mayor dispersión relativa entre tiendas (CV=33.86%).
Para las variables categóricas, se realizó una tabla de contingencia y se calculó la moda para cada variable.
tabla <- table(data$Region, data$Store_Type)
tabla_tot <- addmargins(tabla)
kable(tabla_tot, caption = "Table 1. Distribution of Store Type by Region")| Mall | Online | Street | Sum | |
|---|---|---|---|---|
| East | 11 | 6 | 7 | 24 |
| North | 7 | 12 | 11 | 30 |
| South | 10 | 6 | 11 | 27 |
| West | 10 | 2 | 7 | 19 |
| Sum | 38 | 26 | 36 | 100 |
La tabla de contingencia muestra la distribución de los tipos de tienda según la región. La región Norte tiene la mayor cantidad de tiendas (30), y considerando el tipo de tienda, los Mall son los más frecuentes en toda la cadena. Además, las tiendas online destacan en el Norte y son menos comunes en el Oeste.
## [1] "North"
## [1] "Mall"
Con respecto a la moda, la región con más tiendas es el Norte, y el tipo de tienda más frecuente en toda la cadena son los Mall.
# Configurar el área de gráficos: 1 fila, 3 columnas
par(mfrow = c(1, 3))
# Boxplot para Monthly_Sales_kUSD
boxplot(data$Monthly_Sales_kUSD,
main = "Monthly Sales",
ylab = "kUSD",
col = "lightblue",
ylim = c(0, max(data$Monthly_Sales_kUSD, na.rm = TRUE) * 1.1)) # 10% extra para espacio
# Boxplot para Ad_Spend_kUSD
boxplot(data$Ad_Spend_kUSD,
main = "Ad Spend",
ylab = "kUSD",
col = "lightgreen",
ylim = c(0, max(data$Ad_Spend_kUSD, na.rm = TRUE) * 1.1))
# Boxplot para Price_Index
boxplot(data$Price_Index,
main = "Price Index",
ylab = "Index",
col = "lightcoral",
ylim = c(0, max(data$Price_Index, na.rm = TRUE) * 1.1))La visualización por medio de boxplot se realizó para las variables numéricas. El boxplot de Ventas mensuales muestra una distribución ligeramente sesgada hacia la derecha, con la mayoría de ventas por tienda concentradas alredor de la mediana y algunos valores atípicos altos. El boxplot de Gasto mensual en publicidad presenta una distribución relativamente simétrica. El boxplot de índice relativo de precios muestra que los precios se concentran cerca del centro, con una distribución casi simétrica, aunque aparece un valor atípico alto.
# Configurar el área de gráficos: 1 fila, 2 columnas
par(mfrow = c(1, 2))
# Gráfico de Región
barplot(table(data$Region),
main = "Number of Observations by Region",
xlab = "Region",
ylab = "Frequency",
col = "skyblue")
# Gráfico de Store Type
barplot(table(data$Store_Type),
main = "Number of Observations by Store Type",
xlab = "Store Type",
ylab = "Frequency",
col = "lightgreen")Según como se mencionó en la tabla de contingencia, en las frecuencias de las variables categóricas, se observa que la región Norte tiene la mayor cantidad de tiendas (30), y considerando el tipo de tienda, los Mall son los más frecuentes.
data$Region <- factor(data$Region)
data$Store_Type <- factor(data$Store_Type)
# Verificar estructura
str(data)## 'data.frame': 100 obs. of 5 variables:
## $ Monthly_Sales_kUSD: num 157.6 118.9 98.5 89.9 127.2 ...
## $ Ad_Spend_kUSD : num 58.7 50.2 40.7 38.9 51.9 40.6 15.5 37 13.9 45.1 ...
## $ Price_Index : num 0.913 0.946 1.34 0.854 0.836 0.997 0.821 0.853 0.825 0.86 ...
## $ Region : Factor w/ 4 levels "East","North",..: 2 3 3 3 3 4 2 1 2 3 ...
## $ Store_Type : Factor w/ 3 levels "Mall","Online",..: 2 1 3 3 3 1 1 1 3 2 ...
## [1] "East" "North" "South" "West"
## [1] "Mall" "Online" "Street"
La categoría de referencia para las regiones es Este. Y la categoría de referencia según el tipo de tienda es Mall.
m_full <- lm(Monthly_Sales_kUSD ~ Ad_Spend_kUSD + Price_Index + Region + Store_Type,
data = data)
m_null <- lm(Monthly_Sales_kUSD ~ 1, data = data) ## Start: AIC=451.18
## Monthly_Sales_kUSD ~ Ad_Spend_kUSD + Price_Index + Region + Store_Type
##
## Df Sum of Sq RSS AIC
## <none> 7762.0 451.18
## - Price_Index 1 255.2 8017.2 452.42
## - Store_Type 2 2019.2 9781.2 470.30
## - Region 3 2668.7 10430.7 474.73
## - Ad_Spend_kUSD 1 17869.0 25631.0 568.64
El mejor modelo mantiene todas las variables.
m_forw <- step(m_null,scope = list(lower = m_null, upper = m_full),
direction = "forward", trace = 1)## Start: AIC=578.25
## Monthly_Sales_kUSD ~ 1
##
## Df Sum of Sq RSS AIC
## + Ad_Spend_kUSD 1 19149.5 12666 488.15
## + Region 3 4950.6 26865 567.34
## <none> 31815 578.25
## + Store_Type 2 1123.9 30691 578.66
## + Price_Index 1 3.9 31811 580.24
##
## Step: AIC=488.15
## Monthly_Sales_kUSD ~ Ad_Spend_kUSD
##
## Df Sum of Sq RSS AIC
## + Region 3 2698.27 9967.6 470.19
## + Store_Type 2 1941.80 10724.1 475.51
## <none> 12665.9 488.15
## + Price_Index 1 204.39 12461.5 488.52
##
## Step: AIC=470.19
## Monthly_Sales_kUSD ~ Ad_Spend_kUSD + Region
##
## Df Sum of Sq RSS AIC
## + Store_Type 2 1950.44 8017.2 452.42
## <none> 9967.6 470.19
## + Price_Index 1 186.42 9781.2 470.30
##
## Step: AIC=452.42
## Monthly_Sales_kUSD ~ Ad_Spend_kUSD + Region + Store_Type
##
## Df Sum of Sq RSS AIC
## + Price_Index 1 255.19 7762.0 451.18
## <none> 8017.2 452.42
##
## Step: AIC=451.18
## Monthly_Sales_kUSD ~ Ad_Spend_kUSD + Region + Store_Type + Price_Index
El mejor modelo mantiene todas las variables.
## Start: AIC=578.25
## Monthly_Sales_kUSD ~ 1
##
## Df Sum of Sq RSS AIC
## + Ad_Spend_kUSD 1 19149.5 12666 488.15
## + Region 3 4950.6 26865 567.34
## <none> 31815 578.25
## + Store_Type 2 1123.9 30691 578.66
## + Price_Index 1 3.9 31811 580.24
##
## Step: AIC=488.15
## Monthly_Sales_kUSD ~ Ad_Spend_kUSD
##
## Df Sum of Sq RSS AIC
## + Region 3 2698.3 9968 470.19
## + Store_Type 2 1941.8 10724 475.51
## <none> 12666 488.15
## + Price_Index 1 204.4 12462 488.52
## - Ad_Spend_kUSD 1 19149.5 31815 578.25
##
## Step: AIC=470.19
## Monthly_Sales_kUSD ~ Ad_Spend_kUSD + Region
##
## Df Sum of Sq RSS AIC
## + Store_Type 2 1950.4 8017.2 452.42
## <none> 9967.6 470.19
## + Price_Index 1 186.4 9781.2 470.30
## - Region 3 2698.3 12665.9 488.15
## - Ad_Spend_kUSD 1 16897.2 26864.8 567.34
##
## Step: AIC=452.42
## Monthly_Sales_kUSD ~ Ad_Spend_kUSD + Region + Store_Type
##
## Df Sum of Sq RSS AIC
## + Price_Index 1 255.2 7762.0 451.18
## <none> 8017.2 452.42
## - Store_Type 2 1950.4 9967.6 470.19
## - Region 3 2706.9 10724.1 475.51
## - Ad_Spend_kUSD 1 17631.7 25648.9 566.71
##
## Step: AIC=451.18
## Monthly_Sales_kUSD ~ Ad_Spend_kUSD + Region + Store_Type + Price_Index
##
## Df Sum of Sq RSS AIC
## <none> 7762.0 451.18
## - Price_Index 1 255.2 8017.2 452.42
## - Store_Type 2 2019.2 9781.2 470.30
## - Region 3 2668.7 10430.7 474.73
## - Ad_Spend_kUSD 1 17869.0 25631.0 568.64
El mejor modelo mantiene todas las variables.
AIC_back <- tail(m_back$anova$AIC, 1)
AIC_forw <- tail(m_forw$anova$AIC, 1)
AIC_hyb <- tail(m_hyb$anova$AIC, 1)
AIC_comp <- data.frame(
Metodo = c("Backward", "Forward", "Hibrido"),
AIC = c(AIC_back, AIC_forw, AIC_hyb))
AIC_comp## Metodo AIC
## 1 Backward 451.1825
## 2 Forward 451.1825
## 3 Hibrido 451.1825
Según los resultados obtenidos, el mejor modelo es el que mantiene todas las variables.
# Modelo sin interacción
mod <- lm(Monthly_Sales_kUSD ~ Ad_Spend_kUSD + Price_Index + Region + Store_Type,
data = data)
# Ver resultados
summary(mod)##
## Call:
## lm(formula = Monthly_Sales_kUSD ~ Ad_Spend_kUSD + Price_Index +
## Region + Store_Type, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -17.8924 -6.3417 -0.2626 5.5328 23.3267
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 106.66087 2.18174 48.888 < 2e-16 ***
## Ad_Spend_kUSD 1.13455 0.07796 14.553 < 2e-16 ***
## Price_Index -12.33687 7.09358 -1.739 0.08535 .
## RegionNorth 8.86737 2.61169 3.395 0.00101 **
## RegionSouth -4.52363 2.62159 -1.726 0.08779 .
## RegionWest -1.52442 2.84871 -0.535 0.59385
## Store_TypeOnline -2.89696 2.42644 -1.194 0.23558
## Store_TypeStreet -10.33292 2.16772 -4.767 6.98e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9.185 on 92 degrees of freedom
## Multiple R-squared: 0.756, Adjusted R-squared: 0.7375
## F-statistic: 40.73 on 7 and 92 DF, p-value: < 2.2e-16
# Modelo con interacción
modin <- lm(Monthly_Sales_kUSD ~ Ad_Spend_kUSD * Price_Index * Region * Store_Type,
data = data)
# Ver resultados
summary(modin)##
## Call:
## lm(formula = Monthly_Sales_kUSD ~ Ad_Spend_kUSD * Price_Index *
## Region * Store_Type, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -16.3264 -4.1685 -0.0783 3.4139 22.5000
##
## Coefficients: (2 not defined because of singularities)
## Estimate Std. Error
## (Intercept) 106.86768 2.72412
## Ad_Spend_kUSD 1.47306 0.31137
## Price_Index -11.17579 18.92013
## RegionNorth 6.56118 4.73465
## RegionSouth -6.02023 4.41450
## RegionWest 4.37408 4.17348
## Store_TypeOnline -7.76120 6.88339
## Store_TypeStreet -14.36199 5.75041
## Ad_Spend_kUSD:Price_Index 1.03864 2.17213
## Ad_Spend_kUSD:RegionNorth -0.36565 0.40908
## Ad_Spend_kUSD:RegionSouth -0.28594 0.40849
## Ad_Spend_kUSD:RegionWest -0.01634 0.41015
## Price_Index:RegionNorth -25.72387 36.50753
## Price_Index:RegionSouth -68.58375 57.00354
## Price_Index:RegionWest 60.98414 32.12828
## Ad_Spend_kUSD:Store_TypeOnline -1.04221 0.46053
## Ad_Spend_kUSD:Store_TypeStreet -1.19937 0.71791
## Price_Index:Store_TypeOnline -49.12573 46.84129
## Price_Index:Store_TypeStreet 24.75854 46.95082
## RegionNorth:Store_TypeOnline 10.29644 8.36382
## RegionSouth:Store_TypeOnline 0.85908 9.06568
## RegionWest:Store_TypeOnline -18.02344 41.09101
## RegionNorth:Store_TypeStreet 6.67116 7.54876
## RegionSouth:Store_TypeStreet 9.10051 7.39205
## RegionWest:Store_TypeStreet -12.16139 8.51429
## Ad_Spend_kUSD:Price_Index:RegionNorth -2.47757 2.83458
## Ad_Spend_kUSD:Price_Index:RegionSouth -6.79641 7.78943
## Ad_Spend_kUSD:Price_Index:RegionWest 2.38035 3.07810
## Ad_Spend_kUSD:Price_Index:Store_TypeOnline -0.75741 4.46493
## Ad_Spend_kUSD:Price_Index:Store_TypeStreet 4.62528 5.46168
## Ad_Spend_kUSD:RegionNorth:Store_TypeOnline 1.43100 0.56644
## Ad_Spend_kUSD:RegionSouth:Store_TypeOnline 1.11549 0.73620
## Ad_Spend_kUSD:RegionWest:Store_TypeOnline -0.53238 5.79488
## Ad_Spend_kUSD:RegionNorth:Store_TypeStreet 0.56511 0.85465
## Ad_Spend_kUSD:RegionSouth:Store_TypeStreet 1.09048 0.79180
## Ad_Spend_kUSD:RegionWest:Store_TypeStreet -1.59066 1.38280
## Price_Index:RegionNorth:Store_TypeOnline 70.41481 58.95181
## Price_Index:RegionSouth:Store_TypeOnline 136.25873 79.20963
## Price_Index:RegionWest:Store_TypeOnline NA NA
## Price_Index:RegionNorth:Store_TypeStreet 25.52878 61.30283
## Price_Index:RegionSouth:Store_TypeStreet 91.55038 75.89690
## Price_Index:RegionWest:Store_TypeStreet -94.33892 95.91491
## Ad_Spend_kUSD:Price_Index:RegionNorth:Store_TypeOnline -0.16347 5.43544
## Ad_Spend_kUSD:Price_Index:RegionSouth:Store_TypeOnline 10.26904 9.27076
## Ad_Spend_kUSD:Price_Index:RegionWest:Store_TypeOnline NA NA
## Ad_Spend_kUSD:Price_Index:RegionNorth:Store_TypeStreet -6.66309 6.34457
## Ad_Spend_kUSD:Price_Index:RegionSouth:Store_TypeStreet -5.30131 9.61992
## Ad_Spend_kUSD:Price_Index:RegionWest:Store_TypeStreet -29.32679 12.57896
## t value Pr(>|t|)
## (Intercept) 39.230 < 2e-16 ***
## Ad_Spend_kUSD 4.731 1.65e-05 ***
## Price_Index -0.591 0.5572
## RegionNorth 1.386 0.1715
## RegionSouth -1.364 0.1783
## RegionWest 1.048 0.2993
## Store_TypeOnline -1.128 0.2645
## Store_TypeStreet -2.498 0.0156 *
## Ad_Spend_kUSD:Price_Index 0.478 0.6345
## Ad_Spend_kUSD:RegionNorth -0.894 0.3754
## Ad_Spend_kUSD:RegionSouth -0.700 0.4869
## Ad_Spend_kUSD:RegionWest -0.040 0.9684
## Price_Index:RegionNorth -0.705 0.4841
## Price_Index:RegionSouth -1.203 0.2342
## Price_Index:RegionWest 1.898 0.0630 .
## Ad_Spend_kUSD:Store_TypeOnline -2.263 0.0277 *
## Ad_Spend_kUSD:Store_TypeStreet -1.671 0.1006
## Price_Index:Store_TypeOnline -1.049 0.2990
## Price_Index:Store_TypeStreet 0.527 0.6001
## RegionNorth:Store_TypeOnline 1.231 0.2236
## RegionSouth:Store_TypeOnline 0.095 0.9249
## RegionWest:Store_TypeOnline -0.439 0.6627
## RegionNorth:Store_TypeStreet 0.884 0.3808
## RegionSouth:Store_TypeStreet 1.231 0.2236
## RegionWest:Store_TypeStreet -1.428 0.1589
## Ad_Spend_kUSD:Price_Index:RegionNorth -0.874 0.3860
## Ad_Spend_kUSD:Price_Index:RegionSouth -0.873 0.3868
## Ad_Spend_kUSD:Price_Index:RegionWest 0.773 0.4427
## Ad_Spend_kUSD:Price_Index:Store_TypeOnline -0.170 0.8659
## Ad_Spend_kUSD:Price_Index:Store_TypeStreet 0.847 0.4008
## Ad_Spend_kUSD:RegionNorth:Store_TypeOnline 2.526 0.0145 *
## Ad_Spend_kUSD:RegionSouth:Store_TypeOnline 1.515 0.1356
## Ad_Spend_kUSD:RegionWest:Store_TypeOnline -0.092 0.9271
## Ad_Spend_kUSD:RegionNorth:Store_TypeStreet 0.661 0.5113
## Ad_Spend_kUSD:RegionSouth:Store_TypeStreet 1.377 0.1741
## Ad_Spend_kUSD:RegionWest:Store_TypeStreet -1.150 0.2551
## Price_Index:RegionNorth:Store_TypeOnline 1.194 0.2375
## Price_Index:RegionSouth:Store_TypeOnline 1.720 0.0911 .
## Price_Index:RegionWest:Store_TypeOnline NA NA
## Price_Index:RegionNorth:Store_TypeStreet 0.416 0.6787
## Price_Index:RegionSouth:Store_TypeStreet 1.206 0.2330
## Price_Index:RegionWest:Store_TypeStreet -0.984 0.3297
## Ad_Spend_kUSD:Price_Index:RegionNorth:Store_TypeOnline -0.030 0.9761
## Ad_Spend_kUSD:Price_Index:RegionSouth:Store_TypeOnline 1.108 0.2729
## Ad_Spend_kUSD:Price_Index:RegionWest:Store_TypeOnline NA NA
## Ad_Spend_kUSD:Price_Index:RegionNorth:Store_TypeStreet -1.050 0.2983
## Ad_Spend_kUSD:Price_Index:RegionSouth:Store_TypeStreet -0.551 0.5839
## Ad_Spend_kUSD:Price_Index:RegionWest:Store_TypeStreet -2.331 0.0235 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 8.763 on 54 degrees of freedom
## Multiple R-squared: 0.8697, Adjusted R-squared: 0.761
## F-statistic: 8.007 on 45 and 54 DF, p-value: 2.397e-12
Como el \(R^2\) ajustado no mejora sustancialmente, utilizaremos el modelo sin interacción. Además no tenemos evidencia teórica de que el efecto de una variable pueda depender de la otra.
##
## Call:
## lm(formula = Monthly_Sales_kUSD ~ Ad_Spend_kUSD + Price_Index +
## Region + Store_Type, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -17.8924 -6.3417 -0.2626 5.5328 23.3267
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 106.66087 2.18174 48.888 < 2e-16 ***
## Ad_Spend_kUSD 1.13455 0.07796 14.553 < 2e-16 ***
## Price_Index -12.33687 7.09358 -1.739 0.08535 .
## RegionNorth 8.86737 2.61169 3.395 0.00101 **
## RegionSouth -4.52363 2.62159 -1.726 0.08779 .
## RegionWest -1.52442 2.84871 -0.535 0.59385
## Store_TypeOnline -2.89696 2.42644 -1.194 0.23558
## Store_TypeStreet -10.33292 2.16772 -4.767 6.98e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9.185 on 92 degrees of freedom
## Multiple R-squared: 0.756, Adjusted R-squared: 0.7375
## F-statistic: 40.73 on 7 and 92 DF, p-value: < 2.2e-16
Intercepto: β0 = 106.66. En promedio las ventas mensuales en la Región Este en las tiendas tipo Mall son de $106 660 cuando el Gasto mensual en publicidad y el índice relativo de precios es 0. \((µ_{Este/Mall} = 106.66)\).
Gasto mensual en publicidad: \(β_1=1.14\). Las ventas mensuales aumentan en promedio $1140 por cada mil dólares adicionales en gasto mensual en publicidad, manteniendo constante la Región (Este) y el tipo de tienda (Mall) y el índice relativo de precios es 0. La diferencia es estadísticamente significativa \((p=0)#\), lo que indica que la publicidad tiene un impacto importante en las ventas.
Índice relativo de precios: \(β_2=-12.34, p=0.09\). El índice relativo de precios no genera una diferencia estadísticamente significativa en las ventas mensuales, manteniendo constante la región Este, las tiendas tipo Mall y el gasto mensual en publicidad en 0.
Región Norte: \(β_3 = 8.87\). Las ventas mensuales en las tiendas tipo mall en la región norte aumentan en promedio $8870 con respecto a las ventas mensuales en la región este en las tiendas tipo mall, cuando el Gasto mensual en publicidad y el índice relativo de precios es 0. (\(µ_{RN/mall} = 106.66 + 8.87 = 115.53\)). La diferencia es estadísticamente significativa \((p<0.01)#\), lo que indica que la región norte tiene un impacto importante en las ventas mensuales.
Región Sur: \(β_4 = -4.52, p=0.08\). Las ventas mensuales en las tiendas tipo mall en la región sur no presentan diferencia estadísticamente significativa con las ventas mensuales en las tiendas tipo mall en la región este, cuando el Gasto mensual en publicidad y el índice relativo de precios es 0.
Región Oeste: \(β_5 = -1.52, p=0.59\). Las ventas mensuales en las tiendas tipo mall en la región oeste no presentan diferencia estadísticamente significativa con las ventas mensuales en las tiendas tipo mall en la región este, cuando el Gasto mensual en publicidad y el índice relativo de precios es 0.
Tienda tipo online: \(β_6 = -2.9, p=0.24\). Las ventas mensuales en las tiendas online no presentan diferencia estadísticamente significativa con las ventas mensuales en las tiendas tipo mall en la región este, cuando el Gasto mensual en publicidad y el índice relativo de precios es 0.
Tienda tipo calle: \(\beta_7 = -10.33, p=0\). Las ventas mensuales en las tiendas tipo calle disminuyen en promedio $10 330 con respecto a las ventas mensuales en las tiendas tipo mall en la región este, cuando el Gasto mensual en publicidad y el índice relativo de precios es 0. La diferencia es estadísticamente significativa \((p=0)\), lo que indica que las tiendas tipo calle tienen un impacto negativo importante en las ventas mensuales.
Ajuste del modelo. \(R^2=0.74\) el modelo explica aproximadamente el 74% de la variabilidad de las ventas mensuales, lo que indica un ajuste sustancial en un contexto de corte transversal.
res <- residuals(mod)
qqnorm(res,main = "QQ-plot de los residuos",col="blue",pch=16)
qqline(res, col = "red")La gráfica no nos dice con certeza si se cumple la normalidad. Por lo que, usaremos un test de normalidad.
Como tenemos más de 30 datos usamos la prueba Jarque - Bera.
\(H_0\): Los residuos siguen una distribución aproximadamente normal.
\(H_1\): Los residuos no siguen una distribución normal.
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
##
## Jarque Bera Test
##
## data: res
## X-squared = 2.3003, df = 2, p-value = 0.3166
Como p-value es mayor que 0.05 no tengo evidencia para rechazar \(H_0\). Por lo tanto, los residuos siguen una distribución aproximadamente normal.
fit <- fitted(mod)
plot(fit, res,pch=19,col="blue",
xlab = "Valores ajustados (ŷ)",
ylab = "Residuos (e)",
main = "Residuos vs valores ajustados")
abline(h = 0, lty = 2)No podemos observar un comportamiento que siempre se mantenga.
Hipótesis:
\(H_0\): Los residuales tienen varianza constante
\(H_1\): los residuales no tienen varianza constante.
##
## studentized Breusch-Pagan test
##
## data: mod
## BP = 7.8093, df = 7, p-value = 0.3497
Como p-value es 0.34 y es mayor que 0.05, no tengo evidencia para rechazar \(H_0\). Por tanto, la prueba de Breusch–Pagan proporciona evidencia de homocedasticidad, indicando que los residuales tienen varianza constante.
orden <- seq(1,dim(data)[1])
plot(orden, res, pch=16,col="blue",
xlab = "Orden de observaciones",
ylab = "Residuos (e)",
main = "Residuos en el tiempo (independencia)")
abline(h = 0, lty = 2)Hipótesis:
\(H_0\): Los errores son independientes.
\(H_1\): Los errores no son independientes.
##
## Durbin-Watson test
##
## data: mod
## DW = 1.9028, p-value = 0.3059
## alternative hypothesis: true autocorrelation is greater than 0
El p-value es 0.3059 es mayor que 0.05. Esto indica que no hay evidencia suficiente para rechazar la hipótesis nula, sugirendo que los errores son independientes entre sí.
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
## GVIF Df GVIF^(1/(2*Df))
## Ad_Spend_kUSD 1.075445 1 1.037037
## Price_Index 1.022412 1 1.011144
## Region 1.154541 3 1.024240
## Store_Type 1.094995 2 1.022947
El análisis de multicolinealidad mediante VIF mostró que ninguna de las variables presenta problemas de colinealidad pues todos los VIF son menores a 5. Para las los factores se utilizó el GVIF ajustado por el número de niveles, que permite compararlos con las variables numéricas. Por tanto, las variables incluidas en el modelo son independientes entre sí.
Los hallazgos del modelo muestran que las ventas mensuales dependen significativamente del gasto en publicidad, la región y el tipo de tienda. Las tiendas que invierten más en publicidad tienden a generar mayores ventas, las ubicadas en la región Norte presentan un desempeño superior, y las tiendas de tipo Street venden menos que los Mall. Las demás variables analizadas no mostraron efectos estadísticamente confiables, por lo que no se observa que influyan en las diferencias de ventas entre las tiendas.
Una de las principales limitaciones de este análisis es que solo se consideraron algunas variables (gasto en publicidad, precio, región y tipo de tienda), por lo que otros factores que podrían influir en las ventas, como promociones, perfil de clientes, zona más específica, no fueron incluidos.
Además, algunas categorías de las variables categóricas tienen pocos casos, lo que puede afectar la precisión de los coeficientes estimados.