# Datos del problema
SQT <- 1200 # Suma de cuadrados de tratamientos
SQTOTAL <- 1800 # Suma de cuadrados total
N <- 47 # Número total de observaciones
k <- 3 # Número de tratamientos
alpha <- 0.05 # Nivel de significancia
# Calcular grados de libertad
gl_trat <- k - 1 # Grados de libertad para tratamientos
gl_error <- N - k # Grados de libertad para el error
gl_total <- N - 1 # Grados de libertad totales
# Calcular suma de cuadrados del error
SQE <- SQTOTAL - SQT
# Calcular cuadrados medios
CM_trat <- SQT / gl_trat # Cuadrado medio de tratamientos
CM_error <- SQE / gl_error # Cuadrado medio del error
# Estadístico F
F_calculado <- CM_trat / CM_error
# Calcular el F crítico
F_critico <- qf(1 - alpha, df1 = gl_trat, df2 = gl_error)
# Valor-p usando la distribución F
p_valor <- pf(F_calculado, gl_trat, gl_error, lower.tail = FALSE)
# Mostrar resultados
cat("Análisis de varianza:\n")
## Análisis de varianza:
cat("Grados de libertad tratamientos:", gl_trat, "\n")
## Grados de libertad tratamientos: 2
cat("Grados de libertad error:", gl_error, "\n")
## Grados de libertad error: 44
cat("Cuadrado medio tratamientos:", round(CM_trat, 2), "\n")
## Cuadrado medio tratamientos: 600
cat("Cuadrado medio error:", round(CM_error, 2), "\n")
## Cuadrado medio error: 13.64
cat("Estadístico F calculado:", round(F_calculado, 4), "\n")
## Estadístico F calculado: 44
cat("F crítico:", round(F_critico, 4), "\n")
## F crítico: 3.2093
cat("Valor-p:", round(p_valor, 4), "\n")
## Valor-p: 0
# Conclusión
if (F_calculado > F_critico) {
cat("\nConclusión: Hay diferencias significativas entre los tratamientos (F > F crítico).\n")
} else {
cat("\nConclusión: No hay diferencias significativas entre los tratamientos (F <= F crítico).\n")
}
##
## Conclusión: Hay diferencias significativas entre los tratamientos (F > F crítico).