6. Pruebas T

Al igual que SPSS, R contiene comandos para llevar a cabo las pruebas t de un grupo, dos grupos independientes y dos grupos correlacionados. Para dos grupos independientes, también provee un comando para realizar la prueba t cuando no se cumple el supuesto de homogeneidad de varianzas.

En los ejemplos que siguen, haremos uso nuevamente de la base de datos mtcars disponible en R. Recuerde que para utilizarla debe ejecutar el comando data(mtcars). Ejecute también el comando attach(mtcars) para simplificar la sintaxis al referirnos a las variables en esta base de datos.

Prueba t de un grupo

En SPSS, la prueba para un grupo se selecciona desde el menú Analize -> Compare Means and Proportions -> One-Sample T Test. En la ventana que aparece se selecciona la variable de interés, y en el encasillado provisto se incluye el valor de la media para la hipótesis nula. En este ejemplo comprobaremos si la media de las millas por galón de los automóviles es significativamente distinta a 25.

El resultado de SPSS incluye las siguientes dos tablas:

Aquí vemos que la media de las millas por galón es de 20.091 y que este valor difiere significativamente del valor hipotetizado de 25 (p < 0.001). En R utilizaremos la función t.test():

t.test(mpg,mu=25,alternative=”two.sided”)

Si se desea una prueba de una cola, use ‘greater’ o ‘less’ en vez de ‘two.sided’. El resultado que produce R es el siguiente:

        One Sample t-test

data: mpg
t = -4.6079, df = 31, p-value = 6.587e-05
alternative hypothesis: true mean is not equal to 25
95 percent confidence interval:
17.91768 22.26357
sample estimates:
mean of x
20.09062

El resultado obtenido es el mismo, la única diferencia es que SPSS calcula el intervalo de confianza al 95% para la diferencia entre la media y el valor hipotetizado, mientras que R lo calcula para la media.

Prueba t para dos grupos independientes

En este ejemplo determinaremos si hay una diferencia estadísticamente significativa en las millas por galón promedio de automóviles de transmisión manual o automática. La variable que contiene esta información es ‘am’ y tiene dos valores: 0 = automática, 1 = manual.

Este es el resultado que produce SPSS:

En R, la función t.test() para grupos independientes es como sigue:

t.test(mpg~am,var.equal=TRUE)

Note que la variable dependiente, mpg, está a la izquierda de la tilde, mientras que la variable independiente, am, está a la derecha. El resultado es el siguiente:

        Two Sample t-test

data: mpg by am
t = -4.1061, df = 30, p-value = 0.000285
alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
95 percent confidence interval:
-10.84837 -3.64151
sample estimates:
mean in group 0 mean in group 1
17.14737 24.39231

En este ejemplo se ha asumido que las varianzas son homogéneas. Si no lo son, como se puede apreciar del resultado de SPSS, hay que utilizar la opción ‘var.equal=FALSE’:

t.test(mpg~am,var.equal=FALSE)

El resultado es ahora:

        Welch Two Sample t-test

data: mpg by am
t = -3.7671, df = 18.332, p-value = 0.001374
alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
95 percent confidence interval:
-11.280194 -3.209684
sample estimates:
mean in group 0 mean in group 1
17.14737 24.39231

Prueba de Levene

Para realizar la prueba de Levene haremos uso de la función leveneTest() disponible en el paquete ‘car’. Si no lo ha hecho aún, instale este paquete. Una vez instalado utilice la función library(car) para activarlo.

La sintaxis para la prueba de Levene es:

leveneTest(y~x, miDataframe,center=median)

En este comando, y es la variable dependiente, x la independiente, miDataframe es la base de datos que contiene a las dos variables anteriores y ‘center=’ es una opción para indicar si se desea calcular los residuos con respecto al promedio del grupo (mean) o con respecto a la mediana (median). La especificación de la base de datos no es necesaria si solo hay una abierta en R. La opción ‘center=median’ es la utilizada por omisión. Es decir, si no se incluye, R entenderá que se desea realizar la prueba de Levene con respecto a las medianas. Así, la opción ‘center=’ solo es necesario incluirla si se desea realizar la prueba utilizando la media para el cálculo de los residuos.

Otro punto importante es que la variable independiente, x, tiene que ser definida como un factor, que es una variable categórica. Para ello haga uso de la función ‘factor()’. Para llevar a cabo la prueba de Levene en nuestro ejemplo utilizaremos los siguientes dos comandos:

transmision <- factor(am)
leveneTest(mpg~transmision,center=mean)

En este ejemplo, con el propósito de mantener intacta la variable ‘am’ original, se creó la variable ‘transmision’ para almacenar el factor.

El resultado de la prueba de Levene es el siguiente:

Levene's Test for Homogeneity of Variance (center = mean)
Df F value Pr(>F)
group 1 5.921 0.02113 *
30
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Como puede apreciar, este es el mismo resultado que se obtiene con SPSS.

Prueba t para grupos dependientes (o correlacionados)

Para dos grupos dependientes la sintaxis de la prueba t es similar. Solo hay que añadir la opción ‘paired=TRUE’, como por ejemplo:

t.test(total~grupo,var.equal=TRUE,alternative=’’t’,paired=TRUE)

El resultado que desplegará R es similar al que se obtiene con la prueba t de un grupo.

Comprobación del supuesto de normalidad

La normalidad de los residuos se puede evaluar visualmente mediante una gráfica de probabilidad normal. Para obtener los residuos haremos uso de la función resid(). En R la función qqnorm(), junto a qqline() producen una gráfica de probabilidad normal con la línea que representa a la distribución normal. Para obtener esta gráfica en nuestro ejemplo escribiremos:

residuos <- resid(lm(mpg~transmision))
qqnorm(residuos)
qqline(residuos)

El resultado es el siguiente:

Como se puede apreciar, los datos parecen tener una distribución normal. Si desea una prueba estadística, podemos realizar la prueba de Shapiro-Wilks mediante la función shapiro.test(). En nuestro ejemplo:

shapiro.test(residuos)

El resultado de la prueba es el siguiente:

        Shapiro-Wilk normality test

data: residuos
W = 0.98208, p-value = 0.8573

Como se puede apreciar la distribución de los residuos no difiere significativamente de la distribución normal, por lo cual se cumple el supuesto de normalidad.

Si desea ver un diagrama de caja y bigote comparando el millaje por tipo de transmisión, puede utilizar el siguiente comando:

boxplot(mpg~transmision,xlab="Tipo de transmisión",names = c("Auto", "Manual"))

Note el uso de la opción ‘names’ para poner etiquetas en los valores del eje x. El resultado es el siguiente:

Resumen

La lista de comandos utilizados en este ejemplo son:

You may also like...