# Paso 1: Crear los datos
grupo1 <- c(30.2, 29.8, 31.4, 30.9, 29.5, 30.6, 31.2, 30.8, 29.9, 30.4)
grupo2 <- c(33.5, 32.8, 33.2, 33.1, 32.9, 33.6, 32.7, 33.0, 33.4, 33.2)
grupo3 <- c(35.6, 36.2, 35.8, 36.0, 35.7, 36.3, 36.1, 35.9, 36.4, 36.0)
# Unir los datos en un solo marco de datos
resistencia <- c(grupo1, grupo2, grupo3)
grupos <- factor(rep(c("Grupo 1", "Grupo 2", "Grupo 3"), each = 10))
datos <- data.frame(Resistencia = resistencia, Grupo = grupos)
# Ver los datos para confirmar
print(datos)
## Resistencia Grupo
## 1 30.2 Grupo 1
## 2 29.8 Grupo 1
## 3 31.4 Grupo 1
## 4 30.9 Grupo 1
## 5 29.5 Grupo 1
## 6 30.6 Grupo 1
## 7 31.2 Grupo 1
## 8 30.8 Grupo 1
## 9 29.9 Grupo 1
## 10 30.4 Grupo 1
## 11 33.5 Grupo 2
## 12 32.8 Grupo 2
## 13 33.2 Grupo 2
## 14 33.1 Grupo 2
## 15 32.9 Grupo 2
## 16 33.6 Grupo 2
## 17 32.7 Grupo 2
## 18 33.0 Grupo 2
## 19 33.4 Grupo 2
## 20 33.2 Grupo 2
## 21 35.6 Grupo 3
## 22 36.2 Grupo 3
## 23 35.8 Grupo 3
## 24 36.0 Grupo 3
## 25 35.7 Grupo 3
## 26 36.3 Grupo 3
## 27 36.1 Grupo 3
## 28 35.9 Grupo 3
## 29 36.4 Grupo 3
## 30 36.0 Grupo 3
# Paso 2: Realizar el análisis ANOVA
modelo_anova <- aov(Resistencia ~ Grupo, data = datos)
# Mostrar resultados del ANOVA
resultado <- summary(modelo_anova)
print(resultado)
## Df Sum Sq Mean Sq F value Pr(>F)
## Grupo 2 152.96 76.48 421 <2e-16 ***
## Residuals 27 4.91 0.18
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Paso 3: Cálculos detallados (opcional)
# Extraer valores específicos para comprobar manualmente
ss_entre <- sum((tapply(resistencia, grupos, mean) - mean(resistencia))^2 * table(grupos))
ss_dentro <- sum((resistencia - rep(tapply(resistencia, grupos, mean), table(grupos)))^2)
df_entre <- length(levels(grupos)) - 1
df_dentro <- length(resistencia) - length(levels(grupos))
ms_entre <- ss_entre / df_entre
ms_dentro <- ss_dentro / df_dentro
f_calculado <- ms_entre / ms_dentro
# Mostrar los valores clave
cat("\nCálculos detallados:")
##
## Cálculos detallados:
cat("\nSuma de cuadrados entre grupos (SS_entre):", ss_entre)
##
## Suma de cuadrados entre grupos (SS_entre): 152.9647
cat("\nSuma de cuadrados dentro de los grupos (SS_dentro):", ss_dentro)
##
## Suma de cuadrados dentro de los grupos (SS_dentro): 4.905
cat("\nGrados de libertad entre grupos (df_entre):", df_entre)
##
## Grados de libertad entre grupos (df_entre): 2
cat("\nGrados de libertad dentro de los grupos (df_dentro):", df_dentro)
##
## Grados de libertad dentro de los grupos (df_dentro): 27
cat("\nMedia cuadrática entre grupos (MS_entre):", ms_entre)
##
## Media cuadrática entre grupos (MS_entre): 76.48233
cat("\nMedia cuadrática dentro de los grupos (MS_dentro):", ms_dentro)
##
## Media cuadrática dentro de los grupos (MS_dentro): 0.1816667
cat("\nEstadístico F:", f_calculado)
##
## Estadístico F: 421.0037
# Paso 4: Comprobar significancia
if (resultado[[1]]$`Pr(>F)`[1] < 0.05) {
cat("\nEl resultado es estadísticamente significativo (p < 0.05).")
} else {
cat("\nEl resultado NO es estadísticamente significativo (p >= 0.05).")
}
##
## El resultado es estadísticamente significativo (p < 0.05).
# Paso 5: Gráfico de cajas para visualizar los datos
boxplot(Resistencia ~ Grupo, data = datos,
main = "Resistencia al corte por tipo de roca",
xlab = "Grupo",
ylab = "Resistencia",
col = c("lightblue", "lightgreen", "lightpink"))
