Basic Example

Fiorella Sandoval 2025-11-20

Librerias

library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.3

## 
## 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
library(ggplot2)
# Crear el data frame
datos <- data.frame(
  Tipo_desayuno = factor(rep(c("Sin desayuno", "Desayuno ligero", "Desayuno completo"), 
                            each = 5),
                        levels = c("Sin desayuno", "Desayuno ligero", "Desayuno completo")),
  Puntuacion = c(8, 7, 9, 13, 10,    # Sin desayuno
                 14, 16, 12, 17, 11, # Desayuno ligero
                 10, 12, 16, 15, 12) # Desayuno completo
)
# Ver las primeras filas del data frame
head(datos)
##     Tipo_desayuno Puntuacion
## 1    Sin desayuno          8
## 2    Sin desayuno          7
## 3    Sin desayuno          9
## 4    Sin desayuno         13
## 5    Sin desayuno         10
## 6 Desayuno ligero         14
df <- group_by(datos,Tipo_desayuno)

resumen <- df %>% summarise(     
          Promedio = mean(Puntuacion),
          Desviacion_estandar = sd(Puntuacion),
          n = n()
          )
resumen
## # A tibble: 3 × 4
##   Tipo_desayuno     Promedio Desviacion_estandar     n
##   <fct>                <dbl>               <dbl> <int>
## 1 Sin desayuno           9.4                2.30     5
## 2 Desayuno ligero       14                  2.55     5
## 3 Desayuno completo     13                  2.45     5
# Gráfico de cajas para visualizar las diferencias
boxplot(Puntuacion ~ Tipo_desayuno, data = datos, 
        main = "Comparación de Desalluno",
        xlab = "Tipo de Desalluno", ylab = "Puntuación")

# Realizar el análisis de varianza (ANOVA)
modelo_anova <- aov(Puntuacion ~ Tipo_desayuno, data = datos)

summary(modelo_anova)
##               Df Sum Sq Mean Sq F value Pr(>F)  
## Tipo_desayuno  2  58.53  29.267   4.933 0.0273 *
## Residuals     12  71.20   5.933                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Opcional: pruebas post-hoc (Tukey HSD) si el ANOVA es significativo
if(summary(modelo_anova)[[1]]$'Pr(>F)'[1] < 0.05) {
  tukey_result <- TukeyHSD(modelo_anova)
  print(tukey_result)
}
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = Puntuacion ~ Tipo_desayuno, data = datos)
## 
## $Tipo_desayuno
##                                   diff        lwr      upr     p adj
## Desayuno ligero-Sin desayuno       4.6  0.4899889 8.710011 0.0284289
## Desayuno completo-Sin desayuno     3.6 -0.5100111 7.710011 0.0886624
## Desayuno completo-Desayuno ligero -1.0 -5.1100111 3.110011 0.7963670
cat("El tipo de desayuno tiene un efecto significativo en el rendimiento de los estudiantes, según el ANOVA realizado en R.")
## El tipo de desayuno tiene un efecto significativo en el rendimiento de los estudiantes, según el ANOVA realizado en R.
cat("El ANOVA se evaluó con α = 0.05")
## El ANOVA se evaluó con α = 0.05
cat("La diferencia significativa detectada por R ocurre entre:
Desayuno ligero y Sin desayuno")
## La diferencia significativa detectada por R ocurre entre:
## Desayuno ligero y Sin desayuno
cat("No se encuentra diferencias entre:
Desayuno completo y Sin desayuno
Desayuno completo y Desayuno ligero")
## No se encuentra diferencias entre:
## Desayuno completo y Sin desayuno
## Desayuno completo y Desayuno ligero