1. LIBRERIAS

. Cargar los datos

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

3. ESTADISTICA DESCRIPTIVA

# 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

4. GRAFICOS

# 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)

5. ANOVA DE DOS VIAS (BLOQUES)

# 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

6. INTERPRETACION Y CONCLUSION (95% Confianza)

Valor p para Compañía: ~0.239 Valor alfa: 0.05