Aquí paso los datos de la imagen a vectores para armar la tabla.
# Datos copiados tal cual el problema:
datos <- data.frame(
costo = c(27, 68, 308, # A (Bajo, Medio, Alto)
24, 76, 326, # B
31, 65, 312, # C
23, 67, 300), # D
nivel_uso = rep(c("20_Bajo", "150_Medio", "1000_Alto"), 4),
compania = rep(c("A", "B", "C", "D"), each = 3)
)
# Factores
datos$compania <- as.factor(datos$compania)
datos$nivel_uso <- as.factor(datos$nivel_uso)
print("Vista previa de los datos:")
## [1] "Vista previa de los datos:"
print(datos)
## costo nivel_uso compania
## 1 27 20_Bajo A
## 2 68 150_Medio A
## 3 308 1000_Alto A
## 4 24 20_Bajo B
## 5 76 150_Medio B
## 6 326 1000_Alto B
## 7 31 20_Bajo C
## 8 65 150_Medio C
## 9 312 1000_Alto C
## 10 23 20_Bajo D
## 11 67 150_Medio D
## 12 300 1000_Alto D
# Resumen estadístico por compañía usando dplyr
df_resumen <- datos %>%
group_by(compania) %>%
summarise(
Promedio = mean(costo),
Desviacion = sd(costo),
n = n()
)
print("Resumen estadístico:")
## [1] "Resumen estadístico:"
print(df_resumen)
## # A tibble: 4 × 4
## compania Promedio Desviacion n
## <fct> <dbl> <dbl> <int>
## 1 A 134. 152. 3
## 2 B 142 161. 3
## 3 C 136 153. 3
## 4 D 130 149. 3
# Gráfico de cajas (Boxplot) con ggplot2
grafico <- ggplot(datos, aes(x = compania, y = costo, fill = compania)) +
geom_boxplot(alpha = 0.7) +
labs(title = "Comparación de costos por Compañía",
subtitle = "Se observa la varianza incluyendo los niveles de uso",
x = "Compañía",
y = "Costo ($)") +
theme_minimal()
print(grafico)
# Importante: 'nivel_uso' debe ser un factor para actuar como bloque
mi_anova2 <- aov(costo ~ compania + nivel_uso, data = datos)
print("Tabla ANOVA (Diseño de Bloques):")
## [1] "Tabla ANOVA (Diseño de Bloques):"
summary(mi_anova2)
## Df Sum Sq Mean Sq F value Pr(>F)
## compania 3 222 74 1.841 0.24
## nivel_uso 2 189335 94668 2351.990 2.07e-09 ***
## Residuals 6 241 40
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Valor p para Compañía: ~0.239 Valor alfa: 0.05