#Ejercicio 1: Aumento de peso en los cerdos

datos_ejercicio1 <- read_xlsx('datos_taller1.xlsx', sheet = "Caso1") %>% clean_names()

Paso 2: Exploración Inicial de Datos

head(datos_ejercicio1)
## # A tibble: 6 × 3
##   cerdo dieta aumento_de_peso_kg
##   <dbl> <chr>              <dbl>
## 1     1 A                   16.2
## 2     2 A                   15.7
## 3     3 A                   15.5
## 4     4 A                   16.1
## 5     5 A                   13.7
## 6     6 A                   14.9
summary(datos_ejercicio1)
##      cerdo          dieta           aumento_de_peso_kg
##  Min.   : 1.00   Length:24          Min.   :13.20     
##  1st Qu.: 6.75   Class :character   1st Qu.:14.22     
##  Median :12.50   Mode  :character   Median :15.65     
##  Mean   :12.50                      Mean   :15.42     
##  3rd Qu.:18.25                      3rd Qu.:16.32     
##  Max.   :24.00                      Max.   :17.70
datos_ejercicio1$aumento_de_peso_kg <- as.numeric(as.character(datos_ejercicio1$aumento_de_peso_kg))
datos_ejercicio1$dieta<- factor(datos_ejercicio1$dieta) #CONVERTIR EN VARIABLE CATEGÓRICA
summary(datos_ejercicio1)
##      cerdo       dieta aumento_de_peso_kg
##  Min.   : 1.00   A:8   Min.   :13.20     
##  1st Qu.: 6.75   B:8   1st Qu.:14.22     
##  Median :12.50   C:8   Median :15.65     
##  Mean   :12.50         Mean   :15.42     
##  3rd Qu.:18.25         3rd Qu.:16.32     
##  Max.   :24.00         Max.   :17.70

Paso 3: Análisis Descriptivo

library(dplyr)
estadisticas <- datos_ejercicio1 %>%
  group_by(dieta) %>%
  summarise(
    Media = mean(aumento_de_peso_kg),
    Desviacion = sd(aumento_de_peso_kg)
  )
print(estadisticas)
## # A tibble: 3 × 3
##   dieta Media Desviacion
##   <fct> <dbl>      <dbl>
## 1 A      15.5      0.857
## 2 B      16.7      0.653
## 3 C      14.0      0.548

Paso 4: Visualización de Datos

boxplot(aumento_de_peso_kg ~ dieta , data = datos_ejercicio1,
        xlab = "dieta",
        ylab = "Aumento de peso (kg)",
        main = "Aumento de peso debido a dieta",
        col = c("lightblue", "lightgreen", "lightpink"))

library(ggplot2)

datos_ejercicio1 %>% 
  ggplot(aes(y = aumento_de_peso_kg, fill = dieta)) + 
  geom_boxplot() +
  labs(x = "dieta",
       y = "Aumento de peso en kg",
       title = "Boxplot de aumento de peso vs dieta") + 
  theme(legend.position = "bottom")

Paso 5: Realizar el ANOVA

resultado_anova <- aov(aumento_de_peso_kg ~ dieta, data = datos_ejercicio1)
summary(resultado_anova)
##             Df Sum Sq Mean Sq F value   Pr(>F)    
## dieta        2  28.71  14.353   29.47 8.02e-07 ***
## Residuals   21  10.23   0.487                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

#Análisis de residuales

residuos <- residuals(resultado_anova)

# Normalidad de residuos
shapiro.test(residuos)
## 
##  Shapiro-Wilk normality test
## 
## data:  residuos
## W = 0.95349, p-value = 0.3219
# Interpretación:

# p > 0.05: No se rechaza la normalidad.
# p ≤ 0.05: Se rechaza la normalidad.

qqnorm(residuos)
qqline(residuos)

Homogeneidad de varianzas

test_levene <- leveneTest(aumento_de_peso_kg ~ dieta, data = datos_ejercicio1)
print(test_levene)
## Levene's Test for Homogeneity of Variance (center = median)
##       Df F value Pr(>F)
## group  2  0.2276 0.7984
##       21
# Interpretación:
  
# p > 0.05: No se rechaza la homogeneidad de varianzas.
# p ≤ 0.05: Se rechaza la homogeneidad de varianzas.

Paso 7: Pruebas Post-hoc

tukey <- TukeyHSD(resultado_anova)
print(tukey)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = aumento_de_peso_kg ~ dieta, data = datos_ejercicio1)
## 
## $dieta
##        diff        lwr        upr     p adj
## B-A  1.2125  0.3329837  2.0920163 0.0061370
## C-A -1.4625 -2.3420163 -0.5829837 0.0011483
## C-B -2.6750 -3.5545163 -1.7954837 0.0000005
plot(tukey, las = 1)

# si el valor es mayor a 0.05 no existe diferencia entre los grupos 

#Ejercicio 2: Calificaciones según el método empleado

datos_ejercicio2 <- read_xlsx('datos_taller1.xlsx', sheet = "Caso2") %>% clean_names()

Paso 2: Exploración Inicial de Datos

head(datos_ejercicio2)
## # A tibble: 6 × 3
##   estudiante metodo      calificacion
##        <dbl> <chr>              <dbl>
## 1          1 Tradicional         75.1
## 2          2 Tradicional         80  
## 3          3 Tradicional         78.6
## 4          4 Tradicional         82.6
## 5          5 Tradicional         77.3
## 6          6 Tradicional         79.7
summary(datos_ejercicio2)
##    estudiante       metodo           calificacion  
##  Min.   : 1.00   Length:30          Min.   :68.00  
##  1st Qu.: 8.25   Class :character   1st Qu.:71.72  
##  Median :15.50   Mode  :character   Median :79.15  
##  Mean   :15.50                      Mean   :78.99  
##  3rd Qu.:22.75                      3rd Qu.:86.03  
##  Max.   :30.00                      Max.   :91.50
datos_ejercicio2$metodo<- factor(datos_ejercicio2$metodo) #CONVERTIR EN VARIABLE CATEGÓRICA
summary(datos_ejercicio2)
##    estudiante            metodo    calificacion  
##  Min.   : 1.00   En Línea   :10   Min.   :68.00  
##  1st Qu.: 8.25   Interactivo:10   1st Qu.:71.72  
##  Median :15.50   Tradicional:10   Median :79.15  
##  Mean   :15.50                    Mean   :78.99  
##  3rd Qu.:22.75                    3rd Qu.:86.03  
##  Max.   :30.00                    Max.   :91.50

Paso 3: Análisis Descriptivo

datos_ejercicio2$calificacion <- as.numeric(as.character(datos_ejercicio2$calificacion))

# Ahora realiza el cálculo
estadisticas <- datos_ejercicio2 %>%
  group_by(metodo) %>%
  summarise(
    Media = mean(calificacion, na.rm = TRUE),
    Desviacion = sd(calificacion, na.rm = TRUE)
  )

print(estadisticas)
## # A tibble: 3 × 3
##   metodo      Media Desviacion
##   <fct>       <dbl>      <dbl>
## 1 En Línea     70.3       1.71
## 2 Interactivo  87.8       2.16
## 3 Tradicional  78.9       2.34

Paso 4: Visualización de Datos

boxplot(calificacion ~ metodo, data = datos_ejercicio2,
        xlab = "Método",
        ylab = "Calificación",
        main = "Calificación de acuerdo con el método empleado",
        col = c("lightblue", "lightgreen", "lightpink"))

library(ggplot2)

datos_ejercicio2 %>% 
  ggplot(aes(y = datos_ejercicio2$calificacion, fill = datos_ejercicio2$metodo)) + 
  geom_boxplot() +
  labs(x = "método",
       y = "calificación",
       title = "Boxplot de la calificación según el método") + 
  theme(legend.position = "bottom")
## Warning: Use of `datos_ejercicio2$calificacion` is discouraged.
## ℹ Use `calificacion` instead.
## Warning: Use of `datos_ejercicio2$metodo` is discouraged.
## ℹ Use `metodo` instead.

# Paso 5: Realizar el ANOVA

resultado_anova <- aov(calificacion ~ metodo, data = datos_ejercicio2)
summary(resultado_anova)
##             Df Sum Sq Mean Sq F value   Pr(>F)    
## metodo       2 1522.6   761.3   174.5 3.61e-16 ***
## Residuals   27  117.8     4.4                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

#Análisis de residuales

residuos <- residuals(resultado_anova)

# Normalidad de residuos
shapiro.test(residuos)
## 
##  Shapiro-Wilk normality test
## 
## data:  residuos
## W = 0.97515, p-value = 0.6873
# Interpretación:

# p > 0.05: No se rechaza la normalidad.
# p ≤ 0.05: Se rechaza la normalidad.

qqnorm(residuos)
qqline(residuos)

Homogeneidad de varianzas

leveneTest(calificacion ~ metodo, data = datos_ejercicio2)
## Levene's Test for Homogeneity of Variance (center = median)
##       Df F value Pr(>F)
## group  2  0.6283 0.5411
##       27
# Interpretación:
  
# p > 0.05: No se rechaza la homogeneidad de varianzas.
# p ≤ 0.05: Se rechaza la homogeneidad de varianzas.
# Paso 7: Pruebas Post-hoc


tukey <- TukeyHSD(resultado_anova)
print(tukey)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = calificacion ~ metodo, data = datos_ejercicio2)
## 
## $metodo
##                          diff        lwr       upr p adj
## Interactivo-En Línea    17.45  15.134097 19.765903     0
## Tradicional-En Línea     8.62   6.304097 10.935903     0
## Tradicional-Interactivo -8.83 -11.145903 -6.514097     0
plot(tukey, las = 1)

# si el valor es mayor a 0.05 no existe diferencia entre los grupos 

#Tecer ejercicio: Reducción de presión según el tratamiento empleado

datos_ejercicio3 <- read_xlsx('datos_taller1.xlsx', sheet = "Caso3") %>% clean_names()

Paso 2: Exploración Inicial de Datos

head(datos_ejercicio3)
## # A tibble: 6 × 3
##   paciente tratamiento reduccion_de_presion_mm_hg
##      <dbl> <chr>                            <dbl>
## 1        1 X                                    8
## 2        2 X                                   10
## 3        3 X                                    9
## 4        4 X                                    7
## 5        5 X                                    8
## 6        6 X                                    9
summary(datos_ejercicio3)
##     paciente    tratamiento        reduccion_de_presion_mm_hg
##  Min.   : 1.0   Length:27          Min.   : 4.000            
##  1st Qu.: 7.5   Class :character   1st Qu.: 6.000            
##  Median :14.0   Mode  :character   Median : 9.000            
##  Mean   :14.0                      Mean   : 8.815            
##  3rd Qu.:20.5                      3rd Qu.:12.000            
##  Max.   :27.0                      Max.   :14.000
datos_ejercicio3$tratamiento <- factor(datos_ejercicio3$tratamiento) #CONVERTIR EN VARIABLE CATEGÓRICA
summary(datos_ejercicio3)
##     paciente    tratamiento reduccion_de_presion_mm_hg
##  Min.   : 1.0   X:9         Min.   : 4.000            
##  1st Qu.: 7.5   Y:9         1st Qu.: 6.000            
##  Median :14.0   Z:9         Median : 9.000            
##  Mean   :14.0               Mean   : 8.815            
##  3rd Qu.:20.5               3rd Qu.:12.000            
##  Max.   :27.0               Max.   :14.000

Paso 3: Análisis Descriptivo

library(dplyr)
estadisticas <- datos_ejercicio3 %>%
  group_by(tratamiento) %>%
  summarise(
    Media = mean(reduccion_de_presion_mm_hg),
    Desviacion = sd(reduccion_de_presion_mm_hg)
  )
print(estadisticas)
## # A tibble: 3 × 3
##   tratamiento Media Desviacion
##   <fct>       <dbl>      <dbl>
## 1 X            8.67      1    
## 2 Y           12.7       1    
## 3 Z            5.11      0.782

Paso 4: Visualización de Datos

boxplot(reduccion_de_presion_mm_hg ~ tratamiento, data = datos_ejercicio3,
        xlab = "tratamiento",
        ylab = "Reduccion_de_presion_mm_hg",
        main = "reducción de presión en función del tratamiento",
        col = c("lightblue", "lightgreen", "lightpink"))

library(ggplot2)

datos_ejercicio3 %>% 
  ggplot(aes(y =datos_ejercicio3$reduccion_de_presion_mm_hg, fill = datos_ejercicio3$tratamiento)) + 
  geom_boxplot() +
  labs(x = "tratamiento",
       y = "reduccion_de_presion_mm_hg",
       title = "Boxplot de la reducción de la presión frente al tratamiento") + 
  theme(legend.position = "bottom")
## Warning: Use of `datos_ejercicio3$reduccion_de_presion_mm_hg` is discouraged.
## ℹ Use `reduccion_de_presion_mm_hg` instead.
## Warning: Use of `datos_ejercicio3$tratamiento` is discouraged.
## ℹ Use `tratamiento` instead.

Paso 5: Realizar el ANOVA

resultado_anova <- aov(reduccion_de_presion_mm_hg ~ tratamiento, data = datos_ejercicio3)
summary(resultado_anova)
##             Df Sum Sq Mean Sq F value   Pr(>F)    
## tratamiento  2 257.19  128.59   147.7 3.23e-14 ***
## Residuals   24  20.89    0.87                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

#Análisis de residuales

residuos <- residuals(resultado_anova)

# Normalidad de residuos
shapiro.test(residuos)
## 
##  Shapiro-Wilk normality test
## 
## data:  residuos
## W = 0.94111, p-value = 0.1297
# Interpretación:

# p > 0.05: No se rechaza la normalidad.
# p ≤ 0.05: Se rechaza la normalidad.

qqnorm(residuos)
qqline(residuos)

leveneTest(datos_ejercicio3$reduccion_de_presion_mm_hg ~ tratamiento, data = datos_ejercicio3)
## Levene's Test for Homogeneity of Variance (center = median)
##       Df F value Pr(>F)
## group  2   0.381 0.6873
##       24
# Interpretación:
  
# p > 0.05: No se rechaza la homogeneidad de varianzas.
# p ≤ 0.05: Se rechaza la homogeneidad de varianzas.

Paso 7: Pruebas Post-hoc

tukey <- TukeyHSD(resultado_anova)
print(tukey)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = reduccion_de_presion_mm_hg ~ tratamiento, data = datos_ejercicio3)
## 
## $tratamiento
##          diff       lwr       upr p adj
## Y-X  4.000000  2.901717  5.098283 0e+00
## Z-X -3.555556 -4.653839 -2.457273 1e-07
## Z-Y -7.555556 -8.653839 -6.457273 0e+00
plot(tukey, las = 1)

# si el valor es mayor a 0.05 no existe diferencia entre los grupos