Autor: Álvaro Alonso Fernández
Departamento de Ciencias de la Vida
Universidad de Alcalá (España)
Queremos comparar una variable dependiente entre dos grupos diferentes. Estos últimos pueden ser independientes entre si (no pareados) o estar relacionados (pareados). En este último caso podría ser un grupo de personas que se someten a una dieta para engordar (peso antes y después de la dieta, para ver si la dieta ha influido o no en el peso).
Empezamos creando los dos grupos por medio de dos vectores gr1y gr2. Recuerda que es indiferente utilizar = o <-:
gr1 = c(55,65,76,89,86,78,90,76,49,89,99,78,67,78,90,99,65,66)
gr2 = c(59,69,76,89,90,87,97,80,58,98,92,87,67,79,91,98,69,76)
str(gr1)
## num [1:18] 55 65 76 89 86 78 90 76 49 89 ...
str(gr2)
## num [1:18] 59 69 76 89 90 87 97 80 58 98 ...
¿Qué aspecto tienen nuestros datos? Recuerda que es muy importante tener una idea de cómo son nuestros datos antes de empezar a hacer cualquier análisis estadístico. Los vamos a representar gráficamente por medio de un boxplot:
boxplot (gr1,gr2, xlab="Grupo", ylab="Variable", col="grey")
Es un requisito de este test por tanto ahora hay que comprobar si nuestros datos son normales, para ello se realiza el test de Shapiro en donde H0=datos son normales, es decir si p es menor de 0.05 los datos no son normales:
shapiro.test(gr1)
##
## Shapiro-Wilk normality test
##
## data: gr1
## W = 0.95493, p-value = 0.5075
shapiro.test(gr2)
##
## Shapiro-Wilk normality test
##
## data: gr2
## W = 0.93285, p-value = 0.2179
Podemos también hacer un análisis visual de la normalidad (los puntos de la figura cuanto más cerca de la línea mucho mejor):
qqnorm(gr1)
qqline(gr1)
qqnorm(gr2)
qqline(gr2)
var.test(gr1,gr2)
##
## F test to compare two variances
##
## data: gr1 and gr2
## F = 1.2229, num df = 17, denom df = 17, p-value = 0.6829
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
## 0.4574651 3.2692902
## sample estimates:
## ratio of variances
## 1.222942
Otro requisito más. En este caso el p valor nos indica que las varianzas son homogéneas.
Realizamos una t-Student no pareada:
t.test(gr1,gr2, var.equal=TRUE, paired=FALSE)
##
## Two Sample t-test
##
## data: gr1 and gr2
## t = -0.82193, df = 34, p-value = 0.4168
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -12.925515 5.481071
## sample estimates:
## mean of x mean of y
## 77.50000 81.22222
Realizamos una t-student pareada paired=TRUE:
t.test(gr1,gr2, var.equal=TRUE, paired=TRUE)
##
## Paired t-test
##
## data: gr1 and gr2
## t = -3.4528, df = 17, p-value = 0.003039
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -5.996646 -1.447798
## sample estimates:
## mean of the differences
## -3.722222
Testamos si un conjunto de datos son distintos de cero.
t.test(gr1)
##
## One Sample t-test
##
## data: gr1
## t = 23.073, df = 17, p-value = 2.861e-14
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 70.41319 84.58681
## sample estimates:
## mean of x
## 77.5
t.test(gr2)
##
## One Sample t-test
##
## data: gr2
## t = 26.741, df = 17, p-value = 2.483e-15
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 74.81385 87.63060
## sample estimates:
## mean of x
## 81.22222
En ambos casos el conjunto de datos es diferente de cero.
nn1 = c(55,0,76,89,186,0,0,76,49,2,29,78,67,78,0,99,15,166)
nn2 = c(0,2,76,89,0,87,97,0,58,98,92,87,67,179,1,98,69,6)
str(nn1)
## num [1:18] 55 0 76 89 186 0 0 76 49 2 ...
str(nn2)
## num [1:18] 0 2 76 89 0 87 97 0 58 98 ...
qqnorm(nn1)
qqline(nn1)
qqnorm(nn2)
qqline(nn2)
Realizamos el test de Mann-Whitney o Wilcox test:
wilcox.test(nn1,nn2, correct=FALSE, exact=FALSE)
##
## Wilcoxon rank sum test
##
## data: nn1 and nn2
## W = 145.5, p-value = 0.6001
## alternative hypothesis: true location shift is not equal to 0
wilcox.test(nn1,nn2, correct=FALSE, exact=FALSE, paired=TRUE)
##
## Wilcoxon signed rank test
##
## data: nn1 and nn2
## V = 46.5, p-value = 0.443
## alternative hypothesis: true location shift is not equal to 0
Si queremos comparar cada grupo con respecto a cero entonces (con mu podemos testar otros valores):
wilcox.test(nn1, mu=0, alternative="two.sided")
## Warning in wilcox.test.default(nn1, mu = 0, alternative = "two.sided"): cannot
## compute exact p-value with ties
## Warning in wilcox.test.default(nn1, mu = 0, alternative = "two.sided"): cannot
## compute exact p-value with zeroes
##
## Wilcoxon signed rank test with continuity correction
##
## data: nn1
## V = 105, p-value = 0.001091
## alternative hypothesis: true location is not equal to 0
wilcox.test(nn2, mu=0, alternative="two.sided")
## Warning in wilcox.test.default(nn2, mu = 0, alternative = "two.sided"): cannot
## compute exact p-value with ties
## Warning in wilcox.test.default(nn2, mu = 0, alternative = "two.sided"): cannot
## compute exact p-value with zeroes
##
## Wilcoxon signed rank test with continuity correction
##
## data: nn2
## V = 120, p-value = 0.0007229
## alternative hypothesis: true location is not equal to 0
1-Ver si tenemos datos pareados o no.
2-Comprobar normalidad y homocedasticidad de los mismos.
3-Cumplen requisitos: t-test.
4-No los cumplen: U de Mann-Whitney.
Departamento de Ciencias de la Vida
Universidad de Alcalá (España)
No era tan difícil…