Implementación de Pruebas Estadísticas en R: ANOVA, t-Test Independiente y Pareado
Enviado por Chuletator online y clasificado en Diseño e Ingeniería
Escrito el en
español con un tamaño de 9,44 KB
Configuración Inicial y Carga de Datos
El siguiente script de R implementa diversas pruebas estadísticas, incluyendo ANOVA y t-tests, utilizando datos cargados desde archivos .xlsx.
library(readxl)
a = read_xlsx("ANOVA_unfactor.xlsx", sheet = 1)
attach(a)
Control_1 = na.omit(Control) # Para eliminar textos con "NA"Análisis de Varianza (ANOVA) de un Factor
Preparación de Datos y Estadísticas Descriptivas
Se preparan los datos de los diferentes grupos de antibióticos, eliminando valores faltantes (NA) y calculando estadísticas descriptivas básicas.
Antibiotico_A = na.omit(`Antibiótico A`)
Antibiotico_B = na.omit(`Antibiótico B`)
length(Control_1) # 14
length(Antibiotico_A) # 14
length(Antibiotico_B) # 10
length(`Antibiótico C`) # 16Medias y Varianzas
Cálculo de las medias y varianzas de los grupos:
- Media Control: 5.064286
- Media Antibiótico A: 4.15
- Media Antibiótico B: 5.13
- Media Antibiótico C: 5.1125
mean(Control_1) # 5.064286
mean(Antibiotico_A) # 4.15
mean(Antibiotico_B) # 5.13
mean(`Antibiótico C`) # 5.1125
var(Control_1) # 0.2547802
var(Antibiotico_A) # 0.2273077
var(Antibiotico_B) # 0.2445556Cálculo de la media global (promedio de todos los datos):
b = sum(Control_1, Antibiotico_A, Antibiotico_B, `Antibiótico C`)
b / 54 # 4.853704Ejecución del Modelo ANOVA
Se crean los factores y el vector de respuesta para el modelo ANOVA. La función rep genera una serie con el número de datos de cada grupo, y factor convierte esta serie en una variable categórica.
?rep
c = rep(1:4, c(14, 14, 10, 16)) # Generar una serie con el número de datos de cada grupo
?factor
antibiotico = factor(c)
diametro = c(Control_1, Antibiotico_A, Antibiotico_B, `Antibiótico C`)
cbind(antibiotico, diametro) # Agrupa vectores por columnas
?aov
d = aov(diametro ~ antibiotico) # Ajustar un modelo que relaciona 2 variables
?anova
anova(d)
qf(0.95, 3, 50)Conclusión del ANOVA
Interpretación: Existe evidencia suficiente para rechazar la hipótesis nula (H0). Por lo tanto, los tratamientos con antibióticos afectan el crecimiento de la bacteria, existiendo diferencias significativas en los diámetros de las colonias en los distintos grupos analizados.
boxplot(diametro ~ antibiotico)Pruebas de Comparación Múltiple
Estas pruebas solo se aplican cuando se rechaza la H0 del ANOVA.
Prueba de Tukey HSD
?TukeyHSD
TukeyHSD(d, conf.level = 0.95)Prueba LSD (Diferencia Mínima Significativa, DMS)
Se utiliza el paquete agricolae para realizar la prueba de la Diferencia Mínima Significativa (DMS).
# DIFERENCIA MÍNIMA SIGNIFICATIVA (DMS)
install.packages("agricolae")
library(agricolae)
?LSD.test
e = LSD.test(d, trt = "antibiotico", alpha = 0.05, console = TRUE)
bar.group(e$groups, ylim = c(0, 6), col = "blue")Contraste de Hipótesis para Dos Muestras Independientes
Se analizan datos de dos grupos independientes (Placebo y H-cloro) para comparar sus medias.
a = read_xlsx("Dos_independientes.xlsx", sheet = 1)
attach(a) # Para que el programa reconozca y lea las variablesPaso 1: Prueba de Homogeneidad de Varianzas (Test F)
Hipótesis: H0: $\sigma_1^2 = \sigma_2^2$; H1: $\sigma_1^2 \neq \sigma_2^2$. Se utiliza la distribución F de Fisher (prueba de 2 colas).
b = var(Placebo) # Varianza Placebo: 303.2545
c = var(`H-cloro`) # Varianza H-cloro: 458.8545
c / b # Razón F observada: 1.5131?var.test # Para ejecutar el contraste de 2 varianzas
# x = El que tiene la mayor varianza, y = vector con menor varianza
var.test(`H-cloro`, Placebo, alternative = c("two.sided"))
# F = 1.5131Valores Críticos y Conclusión de Varianzas
Valores críticos: $F_{\alpha/2} = 0.005$. Grados de libertad $gl = gl_1 / gl_2$, donde $gl = n-1$.
?qf
qf(0.005, 10, 10) # 0.1710373 (Valor puntual izquierda)
qf(0.995, 10, 10) # 5.846678 (Valor puntual derecha)El valor F observado (F = 1.51) está entre los valores críticos. El p-value = 0.5244 es mayor que $\alpha/2$. Por lo tanto, se acepta la H0: las varianzas son iguales.
Paso 2: Prueba t para Medias (Varianzas Iguales)
Se realiza la prueba t de Student asumiendo varianzas iguales (var.equal = TRUE).
?t.test
t.test(Placebo, `H-cloro`, alternative = c("two.sided"), var.equal = TRUE)
# T = 2.88. Grados de libertad gl = n1 + n2 - 2 = 11 + 11 - 2 = 20.
?qt
qt(0.005, 20)
qt(0.995, 20)Conclusión de la Prueba t (Two-sided)
El p-value = 0.009289 es menor que $\alpha = 0.01$. Se rechaza H0 y se acepta H1.
Conclusión: Existe evidencia suficiente para rechazar la H0. Por lo tanto, existe diferencia en la presión sistólica media durante la utilización de los fármacos.
Pruebas Unilaterales
Prueba para determinar si el Placebo genera una presión menor que el tratamiento:
t.test(Placebo, `H-cloro`, alternative = c("less"), var.equal = TRUE)
qt(0.01, 20)Conclusión: Existe evidencia suficiente para que la presión sanguínea generada por el placebo no es menor con respecto al tratamiento.
Prueba para determinar si el Tratamiento es mayor que el Placebo:
# Tratamiento > Placebo
t.test(`H-cloro`, Placebo, alternative = c("greater"), var.equal = TRUE)Contraste de Hipótesis para Dos Muestras Dependientes (Pareadas)
A continuación se listan las temperaturas corporales de 7 sujetos diferentes, medidas a las 8 AM y nuevamente a las 12 PM.
- Temperatura (°F) a las 8 AM: 96.6, 97.0, 97.0, 97.8, 97.0, 97.4, 96.6
- Temperatura (°F) a las 12 PM: 99.0, 98.4, 98.0, 98.6, 98.5, 98.9, 98.4
Objetivo: Usar un nivel de significancia de $\alpha = 0.05$ para probar la afirmación de que no hay diferencia entre las temperaturas corporales medidas a las 8 AM y a las 12 PM.
Prueba de Diferencia Media (Two-sided)
1. Hipótesis: H0: $\mu_d = 0$; H1: $\mu_d \neq 0$.
2. Tipo de Distribución: t de Student.
3. Tipo de Prueba: Dos colas.
4. Estadístico de Prueba: $t = (\bar{d} - \mu_d) / (S_d / \sqrt{n})$
library(readxl)
a = read_xlsx("Dos_dependientes.xlsx", sheet = 1)
attach(a)
b = Temp_8AM - Temp_12AM
mean(b) # Media de la diferencia (d-bar): -1.485714
sd(b) # Desviación estándar de la diferencia (Sd): 0.5241774
length(b) # Tamaño de la muestra (n): 7
?t.test
t.test(Temp_8AM, Temp_12AM, alternative = c("two.sided"), mu = 0, paired = TRUE)Cálculo de Valores Críticos y Conclusión
5. Valores Críticos: $t_{\alpha/2} = 0.025$. Grados de libertad (df) = n - 1 = 7 - 1 = 6.
qt(0.025, df = 6) # -2.446912
qt(0.975, df = 6) # 2.446912El estadístico t obtenido (t = -7.499) es menor que el valor crítico izquierdo (-2.447). El p-value = 0.0002908 es menor que $\alpha = 0.05$. Se rechaza la H0.
6. Conclusión: Existe evidencia suficiente para rechazar la hipótesis nula (H0), lo que indica una diferencia significativa entre las temperaturas.
Pruebas Unilaterales de Temperatura
Objetivo: Probar la afirmación de que las temperaturas corporales medidas a las 8 AM son mayores con respecto a las tomadas a las 12 PM ($\alpha = 0.05$).
Prueba Unilateral (Cola Derecha)
1. Hipótesis: H0: $\mu_d = 0$; H1: $\mu_d > 0$ (Temp 8AM > Temp 12PM).
2. Tipo de Distribución: t de Student.
3. Tipo de Prueba: Cola derecha.
t.test(Temp_8AM, Temp_12AM, alternative = c("greater"), paired = TRUE)
qt(0.95, df = 6) # Valor crítico: 1.943187. Conclusión: Se acepta H0. Existe evidencia suficiente para aceptar la H0, por lo tanto, las temperaturas corporales medidas a las 8 AM no son mayores con respecto a las tomadas a las 12 PM.
Prueba Unilateral (Cola Izquierda)
Prueba para determinar si la temperatura a las 12 PM es menor que a las 8 AM.
1. Hipótesis: H0: $\mu_d = 0$; H1: $\mu_d < 0$ (Temp 12PM < Temp 8AM).
2. Tipo de Distribución: t de Student.
3. Tipo de Prueba: Cola izquierda.
t.test(Temp_12AM, Temp_8AM, alternative = c("less"), paired = TRUE)
# t = 7.499. p-value = 0.9999.
qt(0.05, df = 6) # Valor crítico: -1.94318Conclusión: Se acepta H0. Existe evidencia suficiente para aceptar H0, por lo tanto, las temperaturas corporales medidas a las 12 AM no son menores con respecto a las 8 AM.