library(openxlsx)
dat1<- read.xlsx("C:/rstudio/anova_ejercisio_3.xlsx")
print(dat1)
##    id grupos Puntos.de.alumnos
## 1   1     45                54
## 2   2     45                47
## 3   3     45                53
## 4   4     45                51
## 5   5     45                47
## 6   6     45                49
## 7   7     45                52
## 8   8     45                42
## 9   9     45                41
## 10 10     45                30
## 11 11     45                41
## 12 12     45                31
## 13 13     45                33
## 14 14     45                38
## 15 15     45                43
## 16 16     45                45
## 17 17     45                53
## 18 18     45                47
## 19 19     45                32
## 20 20     60                38
## 21 21     60                53
## 22 22     60                39
## 23 23     60                52
## 24 24     60                36
## 25 25     60                53
## 26 26     60                56
## 27 27     60                48
## 28 28     60                47
## 29 29     60                48
## 30 30     60                52
## 31 31     60                48
## 32 32     60                41
## 33 33     60                46
## 34 34     60                58
## 35 35     60                50
## 36 36     60                44
## 37 37     60                38
## 38 38     60                48
## 39 39     90                45
## 40 40     90                54
## 41 41     90                49
## 42 42     90                52
## 43 43     90                45
## 44 44     90                47
## 45 45     90                58
## 46 46     90                45
## 47 47     90                59
## 48 48     90                54
## 49 49     90                51
## 50 50     90                52
## 51 51     90                40
## 52 52     90                51
## 53 53     90                60
## 54 54     90                38
## 55 55     90                52
## 56 56     90                36
## 57 57     90                58

#HIPOTESIS

Hipótesis nula (H0): No hay diferencia significativa en el rendimiento (puntos) de los alumnos entre los diferentes tiempos de duración de clase (45, 60 y 90 minutos).

H0: μ45 = μ60 = μ90

Donde μ45, μ60 y μ90 son las medias de puntos para los grupos de 45, 60 y 90 minutos respectivamente.

Hipótesis alternativa (H1): Existe al menos una diferencia significativa en el rendimiento (puntos) de los alumnos entre los diferentes tiempos de duración de clase.

H1: Al menos una μi es diferente de las demás

Modelo estadístico:

El modelo estadístico correspondiente para un diseño completamente aleatorizado (DCA) es:

Yij = μ + τi + εij

Donde:

Yij es la observación (puntos) del j-ésimo alumno en el i-ésimo grupo (tiempo de clase) μ es la media general de todos los grupos τi es el efecto del i-ésimo grupo (tiempo de clase) εij es el error experimental asociado a la j-ésima observación en el i-ésimo grupo Asumimos que los errores εij son independientes y siguen una distribución normal con media 0 y varianza constante σ².

Este modelo nos permite analizar si existen diferencias significativas entre los grupos (tiempos de clase) en términos de los puntos obtenidos por los alumnos.

ESTADISTICA DESCRIPTIVA

BOXPLOT

a) Se realiza un boxplot para visualizar la distribucion de Puntos de alumnos por grupo

boxplot(Puntos.de.alumnos~as.factor(grupos), data = dat1, xlab = "grupos",  ylab = "Puntos de Alumnos", las=1, 
        cex.axis=1.2, cex.lab=1.2)

#El gráfico muestra que el grupo 90 tiene la puntuación media más alta en comparación con los otros grupos. El grupo 45 tiene la puntuación media más baja. También podemos ver que el grupo 90 tiene el rango intercuartílico más amplio, lo que significa que hay más variabilidad en las puntuaciones de este grupo. El grupo 60 tiene el rango intercuartílico más estrecho, lo que significa que hay menos variabilidad en las puntuaciones de este grupo

#Estadisticas Descriptivas

b) Se calculan las estadisticas descriptivas para los puntos de los alumnos en cada grupo

library(summarytools)
descr(dat1$Puntos.de.alumnos)
## Descriptive Statistics  
## dat1$Puntos.de.alumnos  
## N: 57  
## 
##                     Puntos.de.alumnos
## ----------------- -------------------
##              Mean               46.84
##           Std.Dev                7.42
##               Min               30.00
##                Q1               41.00
##            Median               48.00
##                Q3               52.00
##               Max               60.00
##               MAD                7.41
##               IQR               11.00
##                CV                0.16
##          Skewness               -0.41
##       SE.Skewness                0.32
##          Kurtosis               -0.60
##           N.Valid               57.00
##         Pct.Valid              100.00
with(dat1, stby(Puntos.de.alumnos, grupos,descr))
## Descriptive Statistics  
## Puntos.de.alumnos by grupos  
## Data Frame: dat1  
## N: 19  
## 
##                         45       60       90
## ----------------- -------- -------- --------
##              Mean    43.63    47.11    49.79
##           Std.Dev     7.87     6.37     6.99
##               Min    30.00    36.00    36.00
##                Q1    38.00    41.00    45.00
##            Median    45.00    48.00    51.00
##                Q3    51.00    52.00    54.00
##               Max    54.00    58.00    60.00
##               MAD     8.90     5.93     8.90
##               IQR    10.50     9.50     9.00
##                CV     0.18     0.14     0.14
##          Skewness    -0.38    -0.20    -0.37
##       SE.Skewness     0.52     0.52     0.52
##          Kurtosis    -1.24    -1.12    -0.92
##           N.Valid    19.00    19.00    19.00
##         Pct.Valid   100.00   100.00   100.00

#El diagrama de caja y bigotes muestra que los tres grupos tienen promedios similares. Sin embargo, el grupo 90 tiene una mayor dispersión en sus datos, lo que significa que hay mayor variabilidad en las puntuaciones de los alumnos de este grupo. El grupo 45 tiene la menor dispersión en sus datos, lo que significa que las puntuaciones de los alumnos de este grupo son más homogéneas.

DCA: ANOVA

c) Se realiza el anova para comparar las medias de los puntos de alumnos entre los grupos

fit1 = aov(Puntos.de.alumnos~factor(grupos), data=dat1)
summary(fit1)
##                Df Sum Sq Mean Sq F value Pr(>F)  
## factor(grupos)  2  362.2  181.11   3.591 0.0343 *
## Residuals      54 2723.4   50.43                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

#El análisis de varianza (ANOVA) muestra que hay una diferencia significativa entre los grupos (p = 0.0343). Esto significa que no todos los grupos tienen las mismas puntuaciones medias, por lo que hay una variación significativa en las puntuaciones medias de los estudiantes entre los grupos.

#Verificacion de supuestos ## Normalidad de residuos #Verficamos si los residuos del modelo siguen una distribucion normal

shapiro.test(residuals(fit1))
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(fit1)
## W = 0.95279, p-value = 0.02636

#El test de Shapiro-Wilk para la normalidad de los residuos nos da un valor p de 0.02636. Como el valor p es menor que 0.05, rechazamos la hipótesis nula de que los residuos son normales. Por lo tanto, podemos inferir que los residuos no son normales

##Homocedasticidad #Verificamos la homocedasticidad mediante un grafico de residuos y el test de levene

plot(fit1, which = 3)

library(car)
## Cargando paquete requerido: carData
leveneTest(Puntos.de.alumnos~ factor(grupos), data=dat1)

#Este gráfico es una forma visual de verificar si los residuos tienen varianza constante a lo largo de los valores ajustados.

#El gráfico muestra una línea roja suave que es casi horizontal, lo que indica que la varianza de los residuos es constante a lo largo de los valores ajustados.

Los puntos negros del gráfico representan los residuos estandarizados.

El test de levene es otro método para verificar la homocedasticidad.

El test de levene se usa para comparar las varianzas de dos grupos o más.

El resultado del test de levene muestra un valor p de 0.05, lo que significa que hay una diferencia significativa entre las varianzas de los grupos.

En conclusion, podemos decir que no se cumple el supuesto de homocedasticidad.}

coef(fit1)
##      (Intercept) factor(grupos)60 factor(grupos)90 
##        43.631579         3.473684         6.157895
dummy.coef(fit1)
## Full coefficients are 
##                                              
## (Intercept):       43.63158                  
## factor(grupos):          45       60       90
##                    0.000000 3.473684 6.157895
predict(fit1, newdata = data.frame(grupos = c("45", "60", "90")))
##        1        2        3 
## 43.63158 47.10526 49.78947
library(emmeans)
## Welcome to emmeans.
## Caution: You lose important information if you filter this package's results.
## See '? untidy'
emmeans(fit1, specs = ~ grupos)
##  grupos emmean   SE df lower.CL upper.CL
##      45   43.6 1.63 54     40.4     46.9
##      60   47.1 1.63 54     43.8     50.4
##      90   49.8 1.63 54     46.5     53.1
## 
## Confidence level used: 0.95
options(contrasts = c("contr.sum", "contr.poly"))
fit2 = aov( Puntos.de.alumnos ~ factor(grupos), data = dat1 )
coef(fit2)
##     (Intercept) factor(grupos)1 factor(grupos)2 
##      46.8421053      -3.2105263       0.2631579
dummy.coef(fit2)
## Full coefficients are 
##                                                    
## (Intercept):         46.84211                      
## factor(grupos):            45         60         90
##                    -3.2105263  0.2631579  2.9473684
## AJUSTE DEL MODELO DE UNICA MEDIA ( UNA MEDIA GLOBAL Y UN INTERCEPTO) 
fit0=aov( Puntos.de.alumnos ~ 1, data =dat1)
## COMPARANDO CON EL MODELO DE MEDIAS
anova(fit1, fit0)
# inferencia para los efectos: test
summary.lm(fit1)
## 
## Call:
## aov(formula = Puntos.de.alumnos ~ factor(grupos), data = dat1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -13.7895  -4.7895   0.8947   4.8947  10.8947 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        43.632      1.629  26.781  < 2e-16 ***
## factor(grupos)60    3.474      2.304   1.508  0.13748    
## factor(grupos)90    6.158      2.304   2.673  0.00993 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.102 on 54 degrees of freedom
## Multiple R-squared:  0.1174, Adjusted R-squared:  0.0847 
## F-statistic: 3.591 on 2 and 54 DF,  p-value: 0.03434
# intervalos de confianza
confint(fit1)
##                      2.5 %    97.5 %
## (Intercept)      40.365191 46.897967
## factor(grupos)60 -1.145686  8.093054
## factor(grupos)90  1.538525 10.777265