# Datos carretera_25 <- c(52, 67, 56, 45, 70, 54, 64) autopista_1_75 <- c(59, 60, 61, 51, 56, 63, 57, 65) # ¿hay alguna diferencia ente las variaciones de los # tiempos de manejo or las dos rutas? # Prueba F de varianzas #Carretera media_carr<-mean(carretera_25) media_carr sd_carr<-sd(carretera_25) sd_carr #autopista media_autop<-mean(autopista_1_75) media_autop sd_autop<-sd(autopista_1_75) sd_autop boxplot(carretera_25, autopista_1_75) #Realizar los pasos para probar la hipótesis H_0: sigma_1 ^2 = simga_2 ^2 # valor critico con alpha= 0.05 num dg= 6; den gl=7 f_critico<-qf(0.95, df1 = 6, df2 = 7) f_critico p_val<-var.test(carretera_25, autopista_1_75) p_val # ============Problema 2=========================================== # Pregunta ¿hay alguna diferencia en el número promedio de clientes atendidos? # Paso 1: Crear los datos clientes <- c(55, 54, 59, 56, # Wolfe 66, 76, 67, 71, # White 47, 51, 46, 48) # Korosa clientes empleado <- factor(rep(c("Wolfe", "White", "Korosa"), each = 4)) empleado # Paso 2: Crear el dataframe datos <- data.frame(clientes, empleado) datos # Paso 3: Aplicar ANOVA de un factor modelo <- aov(clientes ~ empleado, data = datos) modelo # Paso 4: Ver resultados del ANOVA summary(modelo) # El valor de F = 51.27 #El valor-p es 1.27 × 10⁻⁶, que es mucho menor que 0.05 #Por tanto, rechazamos la hipótesis nula: sí existen diferencias significativas entre los promedios de clientes atendidos por los empleados. # =============== Problema 3 ==================================== #Los datos muestras las calificaciones que los usuarios han dado a 4 aeroliineas. # ¿hay alguna diferencia entre lo niveles de satisfacción medios con respecto a las 4 aerolineas? #H₀: Las medias de satisfacción de todas las aerolíneas son iguales. #H₁: Al menos una media de satisfacción es diferente. # Paso 1: Ingresar los datos Northern <- c(94, 90, 85, 80) WTA <- c(75, 68, 77, 83, 88) Pocono <- c(70, 73, 76, 78, 80, 68, 65) Branson <- c(68, 70, 72, 65, 74, 65) # Paso 2: Unir todos los datos en un vector satisfaccion <- c(Northern, WTA, Pocono, Branson) # Paso 3: Crear factor con los grupos correspondientes grupo <- factor(c( rep("Northern", length(Northern)), rep("WTA", length(WTA)), rep("Pocono", length(Pocono)), rep("Branson", length(Branson)) )) grupo # Paso 4: Crear el dataframe datos <- data.frame(satisfaccion, grupo) datos #gl_numerador: tratamientos - 1 = 3 #gl_denominador: observaciones - tratamientos : 18 f_critico<-qf(0.95, df1 = 3, df2 = 18) f_critico # Paso 5: ANOVA modelo <- aov(satisfaccion ~ grupo, data = datos) modelo # Paso 6: Ver resultados summary(modelo) # Rechazamos H₀ → hay evidencia estadística suficiente para afirmar que al menos una aerolínea tiene un nivel de satisfacción promedio distinto. # ============ Grafico de los intervalos de confianza ========================= install.packages("dplyr") library(dplyr) install.packages("tidyverse") library(tidyverse) install.packages("ggplot2") library(ggplot2) # Paso 1: Crear los datos # Paso 2: Calcular estadísticas resumen con IC 95% resumen <- datos %>% group_by(grupo) %>% summarise( media = mean(satisfaccion), n = n(), sd = sd(satisfaccion), se = sd / sqrt(n), IC_lower = media - qt(0.975, df = n - 1) * se, IC_upper = media + qt(0.975, df = n - 1) * se ) # Paso 3: Graficar con ggplot2 ggplot(resumen, aes(x = grupo, y = media)) + geom_point(color = "blue", size = 3) + geom_errorbar(aes(ymin = IC_lower, ymax = IC_upper), width = 0.2) + labs( title = "Medias e intervalos de confianza (95%) por aerolínea", x = "Aerolínea", y = "Nivel de satisfacción" ) + theme_minimal() # xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx OTRO CODIGO xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # Paso 1: Datos Northern <- c(94, 90, 85, 80); WTA <- c(75, 68, 77, 83, 88) Pocono <- c(70, 73, 76, 78, 80, 68, 65); Branson <- c(68, 70, 72, 65, 74, 65) satisfaccion <- c(Northern, WTA, Pocono, Branson) grupo <- factor(c(rep("Northern", length(Northern)), rep("WTA", length(WTA)), rep("Pocono", length(Pocono)), rep("Branson", length(Branson)))) datos <- data.frame(satisfaccion, grupo) datos # Paso 2: Calcular estadísticas por grupo niveles <- levels(grupo) media <- tapply(satisfaccion, grupo, mean) n <- tapply(satisfaccion, grupo, length) sd <- tapply(satisfaccion, grupo, sd) se <- sd / sqrt(n) t_valor <- qt(0.975, df = n - 1) IC_lower <- media - t_valor * se IC_upper <- media + t_valor * se resumen <- data.frame(grupo = niveles, media = media, IC_lower = IC_lower, IC_upper = IC_upper) # Paso 3: Instalar y cargar ggplot2 si no está cargado if (!require("ggplot2")) install.packages("ggplot2"); library(ggplot2) # Paso 4: Gráfico ggplot(resumen, aes(x = grupo, y = media)) + geom_point(color = "blue", size = 3) + geom_errorbar(aes(ymin = IC_lower, ymax = IC_upper), width = 0.2) + labs(title = "Medias e intervalos de confianza (95%) por aerolínea", x = "Aerolínea", y = "Nivel de satisfacción") + theme_minimal() # __PRUEBA DE TUKEY POST HOC PARA IDENTIFICAR QUE AEROLINEAS DIFIEREN SIGNIFICATIVAMENTE_________ # Paso 1: Datos Northern <- c(94, 90, 85, 80); WTA <- c(75, 68, 77, 83, 88) Pocono <- c(70, 73, 76, 78, 80, 68, 65); Branson <- c(68, 70, 72, 65, 74, 65) satisfaccion <- c(Northern, WTA, Pocono, Branson) grupo <- factor(c(rep("Northern", length(Northern)), rep("WTA", length(WTA)), rep("Pocono", length(Pocono)), rep("Branson", length(Branson)))) datos <- data.frame(satisfaccion, grupo) # Paso 2: ANOVA modelo <- aov(satisfaccion ~ grupo, data = datos) # Paso 3: Prueba de Tukey HSD tukey <- TukeyHSD(modelo) # Paso 4: Mostrar resultados print(tukey) # Paso 5 (opcional): Gráfico de Tukey plot(tukey, las = 1, col = "blue") ##________ Interpretación ____________ #El gráfico que has compartido corresponde al resultado visual de la **prueba de Tukey HSD (Honest Significant Difference)** tras un análisis ANOVA. Su propósito es comparar todas las posibles **pares de medias** (aerolíneas) para determinar si hay diferencias significativas en el nivel de satisfacción de los usuarios. A continuación te explico **detalladamente cada elemento del gráfico**: # --- ## ✅ Estructura del gráfico ### 1. **Eje Y (vertical) – Comparaciones** # Cada línea horizontal representa una **comparación entre dos aerolíneas**. Por ejemplo: # * **Branson - Pocono** # * **Northern - Branson** # * **WTA - Pocono**, etc. #Cada una compara la media de satisfacción entre esas dos aerolíneas. #--- ### 2. **Eje X (horizontal) – Diferencias de medias** # Representa la **diferencia en las medias** de satisfacción entre los grupos comparados. #* Valores **positivos**: el primer grupo tiene mayor media que el segundo. #* Valores **negativos**: el primer grupo tiene menor media que el segundo. #--- ### 3. **Líneas horizontales azules – Intervalos de confianza al 95%** # Cada línea azul muestra el intervalo de confianza (IC) del 95% para la diferencia de medias entre dos aerolíneas. #--- ### 4. **Línea vertical punteada en 0** # Representa la hipótesis nula: **no hay diferencia** entre las medias comparadas. #Es el punto de referencia: # * Si el IC **incluye el 0** → **no hay diferencia significativa**. #* Si el IC **no incluye el 0** → **sí hay diferencia significativa**. #--- ## ✅ Análisis específico del gráfico ### 🔵 Comparaciones significativas (intervalo **NO toca el 0**): ## * **Northern - Branson**: El intervalo está completamente a la derecha del 0 ⇒ **Significativa** # ⟶ *Los usuarios están significativamente más satisfechos con Northern que con Branson*. # * **Pocono - Northern**: Intervalo completamente a la izquierda del 0 ⇒ **Significativa** # ⟶ *Los usuarios están significativamente menos satisfechos con Pocono que con Northern*. #--- ### ⚪ Comparaciones no significativas (intervalo **incluye el 0**): # * **Branson - Pocono** # * **Branson - WTA** # * **WTA - Pocono** # * **WTA - Northern** # En estas comparaciones, no hay evidencia estadística suficiente para decir que una aerolínea es claramente mejor o peor que la otra en satisfacción promedio. #--- ## 🧠 Interpretación pedagógica # Este gráfico es especialmente útil para: # * Visualizar **qué grupos difieren realmente** en un ANOVA con más de dos niveles. #* Evitar errores del tipo I por comparaciones múltiples, ya que la prueba Tukey **ajusta el p-valor** para mantener el nivel de significancia familiar. #* Identificar **grupos homogéneos** (los que no presentan diferencias significativas entre sí). #--- #_________version 2__________ # Paso 1: Datos Northern <- c(94, 90, 85, 80); WTA <- c(75, 68, 77, 83, 88) Pocono <- c(70, 73, 76, 78, 80, 68, 65); Branson <- c(68, 70, 72, 65, 74, 65) satisfaccion <- c(Northern, WTA, Pocono, Branson) grupo <- factor(c(rep("Northern", length(Northern)), rep("WTA", length(WTA)), rep("Pocono", length(Pocono)), rep("Branson", length(Branson)))) datos <- data.frame(satisfaccion, grupo) # Paso 2: ANOVA modelo <- aov(satisfaccion ~ grupo, data = datos) # Paso 3: Prueba de Tukey HSD tukey <- TukeyHSD(modelo) # Paso 4: Mostrar resultados print(tukey) # Paso 5: Gráfico con nombres completos en el eje Y par(mar = c(5, 12, 4, 2)) # Aumenta el margen izquierdo para nombres largos plot(tukey, las = 1, col = "blue", cex.axis = 0.9) # =============== ANOVA de dos vías =================== # Paso 1: Ingresar los datos en formato largo Conductor <- rep(c("Deans", "Snaverly", "Ormson", "Zollaco", "Fileck"), times = 4) Ruta <- rep(c("Carretera_6", "West_End", "Hikory_St", "Ruta_59"), each = 5) Tiempo <- c( 18, 16, 21, 23, 25, # Carretera_6 17, 23, 21, 22, 24, # West_End 21, 23, 26, 29, 28, # Hikory_St 22, 22, 22, 25, 28 # Ruta_59 ) datos <- data.frame(Conductor, Ruta, Tiempo) # Paso 2: ANOVA de un factor modelo <- aov(Tiempo ~ Ruta, data = datos) # Paso 3: Resultados del ANOVA summary(modelo) #___________________ ANOVA DE DOS VIAS CON INTERACCION _____________________ # Paso 1: Ingresar los datos en formato largo Conductor <- rep(c("Deans", "Snaverly", "Ormson", "Zollaco", "Fileck"), times = 4) Ruta <- rep(c("Carretera_6", "West_End", "Hikory_St", "Ruta_59"), each = 5) Tiempo <- c( 18, 16, 21, 23, 25, # Carretera_6 17, 23, 21, 22, 24, # West_End 21, 23, 26, 29, 28, # Hikory_St 22, 22, 22, 25, 28 # Ruta_59 ) datos <- data.frame(Conductor, Ruta, Tiempo) # Paso 2: Instalar y cargar ggplot2 (si no está cargado) install.packages("ggplot2") # solo si no está instalado library(ggplot2) # Paso 3: Crear boxplot ggplot(datos, aes(x = Ruta, y = Tiempo)) + geom_boxplot(fill = "lightblue", color = "black") + geom_jitter(width = 0.1, aes(color = Conductor), size = 2) + labs(title = "Tiempos de recorrido por ruta", x = "Ruta", y = "Tiempo (minutos)") + theme_minimal() # ++++++++++++++++++++++ GAFICO DE LINEAS ++++++++++++++++++ # Paso 1: Ingresar los datos en formato largo Conductor <- rep(c("Deans", "Snaverly", "Ormson", "Zollaco", "Fileck"), times = 4) Ruta <- rep(c("Carretera_6", "West_End", "Hikory_St", "Ruta_59"), each = 5) Tiempo <- c( 18, 16, 21, 23, 25, # Carretera_6 17, 23, 21, 22, 24, # West_End 21, 23, 26, 29, 28, # Hikory_St 22, 22, 22, 25, 28 # Ruta_59 ) datos <- data.frame(Conductor, Ruta, Tiempo) datos # Paso 2: Asegurar que las rutas se presenten en orden lógico datos$Ruta <- factor(datos$Ruta, levels = c("Carretera_6", "West_End", "Hikory_St", "Ruta_59")) # Paso 3: Instalar y cargar ggplot2 (si es necesario) install.packages("ggplot2") # solo si no está instalado library(ggplot2) # Paso 4: Crear gráfico de líneas ggplot(datos, aes(x = Ruta, y = Tiempo, group = Conductor, color = Conductor)) + geom_line(size = 1) + geom_point(size = 2) + labs(title = "Tiempo de recorrido por ruta y conductor", x = "Ruta", y = "Tiempo (minutos)") + theme_minimal() # ================= interaccón Ruta x conductor ==================== # Paso 1: Crear el data frame con los datos datos <- data.frame( Conductor = rep(c("Deans", "Snaverly", "Ormson", "Zollaco", "Filbeck"), each = 3), Repeticion = rep(1:3, times = 5), US_6 = c(18, 15, 21, 19, 15, 14, 19, 21, 23, 24, 20, 25, 24, 25, 23), West_End = c(14, 17, 20, 20, 24, 25, 23, 21, 19, 20, 24, 22, 24, 24, 24), Hickoy_St = c(20, 21, 22, 24, 23, 22, 25, 19, 24, 30, 28, 29, 28, 28, 28), Route_69 = c(19, 22, 25, 24, 22, 20, 23, 23, 20, 26, 25, 24, 28, 30, 26) ) datos # Paso 2: Convertir a formato largo (long format) library(tidyr) datos_largos <- pivot_longer( datos, cols = c(US_6, West_End, Hickoy_St, Route_69), names_to = "Ruta", values_to = "Tiempo" ) # Paso 3: ANOVA de dos vías con interacción library(stats) modelo <- aov(Tiempo ~ Ruta * Conductor, data = datos_largos) # Paso 4: Mostrar la tabla completa del análisis de varianza summary(modelo) # ================= interaccón conductor x Ruta ==================== # Paso 1: Crear el data frame con los datos datos <- data.frame( Conductor = rep(c("Deans", "Snaverly", "Ormson", "Zollaco", "Filbeck"), each = 3), Repeticion = rep(1:3, times = 5), US_6 = c(18, 15, 21, 19, 15, 14, 19, 21, 23, 24, 20, 25, 24, 25, 23), West_End = c(14, 17, 20, 20, 24, 25, 23, 21, 19, 20, 24, 22, 24, 24, 24), Hickoy_St = c(20, 21, 22, 24, 23, 22, 25, 19, 24, 30, 28, 29, 28, 28, 28), Route_69 = c(19, 22, 25, 24, 22, 20, 23, 23, 20, 26, 25, 24, 28, 30, 26) ) # Paso 2: Convertir a formato largo library(tidyr) datos_largos <- pivot_longer( datos, cols = c(US_6, West_End, Hickoy_St, Route_69), names_to = "Ruta", values_to = "Tiempo" ) # Paso 3: ANOVA de dos vías con interacción Conductor × Ruta modelo <- aov(Tiempo ~ Conductor * Ruta, data = datos_largos) # Paso 4: Mostrar la tabla de ANOVA summary(modelo) # ============== DIAGRAMA DE INTERACCION ================== # Paso 1: Crear el data frame con los datos datos <- data.frame( Conductor = rep(c("Deans", "Snaverly", "Ormson", "Zollaco", "Filbeck"), each = 3), Repeticion = rep(1:3, times = 5), US_6 = c(18, 15, 21, 19, 15, 14, 19, 21, 23, 24, 20, 25, 24, 25, 23), West_End = c(14, 17, 20, 20, 24, 25, 23, 21, 19, 20, 24, 22, 24, 24, 24), Hickoy_St = c(20, 21, 22, 24, 23, 22, 25, 19, 24, 30, 28, 29, 28, 28, 28), Route_69 = c(19, 22, 25, 24, 22, 20, 23, 23, 20, 26, 25, 24, 28, 30, 26) ) # Paso 2: Convertir a formato largo library(tidyr) datos_largos <- pivot_longer( datos, cols = c(US_6, West_End, Hickoy_St, Route_69), names_to = "Ruta", values_to = "Tiempo" ) # Paso 3: Asegurar que las rutas estén en orden lógico datos_largos$Ruta <- factor(datos_largos$Ruta, levels = c("US_6", "West_End", "Hickoy_St", "Route_69")) # Paso 4: Crear gráfico de interacción library(ggplot2) ggplot(datos_largos, aes(x = Ruta, y = Tiempo, group = Conductor, color = Conductor)) + stat_summary(fun = mean, geom = "line", size = 1.2) + stat_summary(fun = mean, geom = "point", size = 2.5) + labs(title = "Diagrama de Interacción: Ruta × Conductor", x = "Ruta", y = "Tiempo promedio (minutos)") + theme_minimal() + theme(legend.position = "bottom")