Fabimath
Fabián Ramírez Díaz
Magíster en Ciencias Mención Matemática
Ingeniero Civil Matemático
Universidad Técnica Federico Santa María
Publicadas encuestas docentes USM.
(26/12/2022) No hay novedades.
# Crear vectores con los datos de cada marca
marca1 <- c(3.41, 1.83, 2.69, 2.04, 2.83, 2.46, 1.84, 2.34)
marca2 <- c(3.58, 3.83, 2.64, 3.00, 3.19, 3.57, 3.04, 3.09)
marca3 <- c(3.32, 2.62, 3.92, 3.88, 2.50, 3.30, 2.28, 3.57)
marca4 <- c(3.22, 2.61, 2.07, 2.58, 2.80, 2.98, 2.30, 1.66)
# Crear el data frame "largo" con dos columnas: puntaje y marca
datos <- data.frame(
puntaje = c(marca1, marca2, marca3, marca4),
marca = factor(rep(c("Marca 1", "Marca 2", "Marca 3", "Marca 4"), each = 8))
)
modelo = aov(datos$puntaje~datos$marca)
summary(modelo)
medias <- tapply(datos$puntaje, datos$marca, mean)
medias
varian <- tapply(datos$puntaje, datos$marca, var)
varian
# Definir contraste C = (1, -1, -1, 1)
C <- c(1, -1, -1, 1)
# Calcular el valor del contraste L = C' * medias
L <- sum(C * medias)
# Verificar que el contraste sea ortogonal (suma ponderada = 0)
sum(C)
# Varianza residual (del ANOVA)
MSE <- summary(modelo)[[1]]["Residuals", "Mean Sq"]
# Tamaño de muestra por grupo (iguales)
n <- 8
# Varianza del contraste
var_L <- MSE * sum(C^2 / n)
# Estadístico t y F del contraste
t_contraste <- L / sqrt(var_L)
F_contraste <- t_contraste^2
# Valor-p
p_valor <- 1 - pf(F_contraste, df1 = 1, df2 = modelo$df.residual)
# Mostrar resultados ------------------------------------------
cat("Medias por marca:\n")
print(medias)
cat("\nContraste C = (1, -1, -1, 1)\n")
cat("L =", L, "\n")
cat("Var(L) =", var_L, "\n")
cat("F =", F_contraste, "\n")
cat("p-valor =", p_valor, "\n")
# También se puede usar built-in con contr.sum si se quiere automatizar# Definir contraste C = (1, -1, -1, 1)
C <- c(1, -1, -1, 1)
# Calcular el valor del contraste L = C' * medias
L <- sum(C * medias)
# Verificar que el contraste sea ortogonal (suma ponderada = 0)
sum(C)
# Varianza residual (del ANOVA)
MSE <- summary(modelo)[[1]]["Residuals", "Mean Sq"]
# Tamaño de muestra por grupo (iguales)
n <- 8
# Varianza del contraste
var_L <- MSE * sum(C^2 / n)
# Estadístico t y F del contraste
t_contraste <- L / sqrt(var_L)
F_contraste <- t_contraste^2
# Valor-p
p_valor <- 1 - pf(F_contraste, df1 = 1, df2 = modelo$df.residual)
# Mostrar resultados ------------------------------------------
cat("Medias por marca:\n")
print(medias)
cat("\nContraste C = (1, -1, -1, 1)\n")
cat("L =", L, "\n")
cat("Var(L) =", var_L, "\n")
cat("F =", F_contraste, "\n")
cat("p-valor =", p_valor, "\n")
# -------------------------------------------------------------
# Datos
# -------------------------------------------------------------
marca1 <- c(3.41, 1.83, 2.69, 2.04, 2.83, 2.46, 1.84, 2.34)
marca2 <- c(3.58, 3.83, 2.64, 3.00, 3.19, 3.57, 3.04, 3.09)
marca3 <- c(3.32, 2.62, 3.92, 3.88, 2.50, 3.30, 2.28, 3.57)
marca4 <- c(3.22, 2.61, 2.07, 2.58, 2.80, 2.98, 2.30, 1.66)
datos <- data.frame(
puntaje = c(marca1, marca2, marca3, marca4),
marca = factor(rep(c("Marca 1", "Marca 2", "Marca 3", "Marca 4"), each = 8))
)
# -------------------------------------------------------------
# ANOVA
# -------------------------------------------------------------
modelo <- aov(puntaje ~ marca, data = datos)
summary(modelo)
# -------------------------------------------------------------
# Scheffé (todas las comparaciones)
# -------------------------------------------------------------
if (!require(agricolae)) install.packages("agricolae", dependencies = TRUE)
library(agricolae)
scheffe_result <- scheffe.test(modelo, "marca", group = FALSE)
# Mostrar tabla completa de comparaciones y p-valores
scheffe_result$comparison
lsd_result <- LSD.test(modelo, "marca", group = FALSE)
# Mostrar tabla de comparaciones con p-valores
lsd_result$comparison
bonf_result <- LSD.test(modelo, "marca", p.adj = "bonferroni", group = FALSE)
# Mostrar tabla de comparaciones con p-valores
bonf_result$comparison
tukey_result <- TukeyHSD(modelo, "marca", conf.level = 0.95)
# Mostrar la tabla completa de comparaciones y p-valores
tukey_result$marca