M3 Anova 2 factores

Boris 2025-12-04

Librerias

library(ggplot2)
library(dplyr)
## 
## Attaching package: 'dplyr'

## The following objects are masked from 'package:stats':
## 
##     filter, lag

## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union

Data Frame

# Crear el data frame
datos <- read.csv("D://Estadistica4/unidad5/costo.csv",header = TRUE, sep = ";")

# Ver el data frame
print(datos)
##    costo nivel_uso compania
## 1     27        20        a
## 2     68       150        a
## 3    308      1000        a
## 4     24        20        b
## 5     76       150        b
## 6    326      1000        b
## 7     31        20        c
## 8     65       150        c
## 9    312      1000        c
## 10    23        20        d
## 11    67       150        d
## 12   300      1000        d
mi_anova1 <- aov(costo ~ compania,data = datos)
summary(mi_anova1)
##             Df Sum Sq Mean Sq F value Pr(>F)
## compania     3    222      74   0.003      1
## Residuals    8 189577   23697
unique(datos$compania)
## [1] "a" "b" "c" "d"
df <- group_by(datos,compania)
summarise(df,     
          Promedio = mean(costo),
          Desviacion_estandar = sd(costo),
          n = n()
)
## # A tibble: 4 × 4
##   compania Promedio Desviacion_estandar     n
##   <chr>       <dbl>               <dbl> <int>
## 1 a            134.                152.     3
## 2 b            142                 161.     3
## 3 c            136                 153.     3
## 4 d            130                 149.     3
df$compania <- factor(df$compania,labels = c("A","B","C","D"))
# Gráfico de cajas para visualizar las diferencias
boxplot(costo ~ compania , data = df, 
        main = "Comparación",
        xlab = "Compañia", ylab = "Costo")

ggplot(df, aes(x = compania, y = costo, fill = compania)) +
  geom_boxplot(position = position_dodge(0.8), alpha = 0.7) +
  labs(title = "Comparación de costos por Nivel de Uso",
       x = "Compañia",
       y = "Costo",
       fill = "Compañía")+
  coord_flip()  # Esta línea voltea el gráfico

   # +  theme_minimal() 
hist(df$nivel_uso)

plot(df$nivel_uso,df$costo)

# Calcular ANOVA de dos vías sin interacciones
mi_anova2 <- aov(costo ~ compania+nivel_uso,data = df)
summary(mi_anova2)
##             Df Sum Sq Mean Sq  F value   Pr(>F)    
## compania     3    222      74    1.752    0.243    
## nivel_uso    1 189281  189281 4476.218 4.38e-11 ***
## Residuals    7    296      42                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Interpretación
# 1. compañia
#Ho: estimador_comañia =0
#valor p = 0.243>0.05 entonces no rechazamos la hipótesis nula
#Al 95% de confianza, la variable "compania" no tiene un efecto estadísticamente significativo sobre la variable #dependiente "costo". Esto significa que, en promedio, no hay evidencia suficiente para decir que la variable de #respuesta difiere entre las cuatro compañías, ceteris paribus el nivel_uso.
# 2. nivel_uso
#Ho: estimador_nivel_uso =0
#valor p = 4.38*10^-11<0.05 entonces rechazamos la hipótesis nula
#Al 95% de confianza, la variable nivel_uso SI tiene un efecto estadísticamente significativo sobre la variable dependiente "costo".