Prueba de hipótesis en R
-
Prueba
t
en R - Prueba de Wilcoxon en R
-
Pruebas de la
t
apareada y de Wilcoxon en R -
Otras Pruebas en el Paquete
stats
en R
R proporciona muchas funciones para realizar pruebas de hipótesis.
Este artículo presentará dos funciones que nos ayudarán a realizar las pruebas t
y Wilcoxon. También veremos cómo descubrir muchas otras pruebas integradas en R.
Prueba t
en R
La función t.test()
se utiliza para la prueba t
de Student. La misma función se puede utilizar para pruebas de una muestra y de dos muestras y pruebas de dos colas y de una cola.
Los principales argumentos son:
x
: Un vector de números.mu
: El valor desconocido de la media o la diferencia desconocida de medias.alternativa
: Para las pruebas de una cola, debemos especificarmayor
omenor
para la hipótesis alternativa.conf.level
: El nivel de confianza del intervalo. Por defecto, se utiliza un nivel de 0,95.
Para las pruebas de dos muestras, también usamos lo siguiente:
fórmula
: Está en forma denumeric_vector ~ two-factor_vector
.datos
: este marco de datos debe contener las variables mencionadas enfórmula
.var.equal
: si esVERDADERO
, se calcula la varianza para la muestra agrupada. Si esFALSO
(predeterminado), se utiliza la aproximación de Welch.
La salida incluye lo siguiente:
- Un intervalo de confianza en el nivel de confianza dado alrededor de la media de la muestra.
- Un
valor p
que indica la probabilidad de que la media verdadera sea el valor especificadomu
, dada la media muestral.
Prueba t
de dos colas para una muestra en R
Ahora realizaremos pruebas t
de dos colas de una muestra en datos de muestra y veremos la salida.
Código de ejemplo:
# Data
# Population Mean = 8; Population SD = 3.
set.seed(3232)
one = rnorm(232,8,3)
# One-sample two-tailed t tests.
# mu is the correct value.
t.test(one, mu = 8)
# mu is some desired value.
# Let us check if mu is 10
t.test(one, mu = 10)
# Change the confidence level.
t.test(one, mu = 10, conf.level = 0.99)
Producción :
> # One-sample two-tailed t tests.
> # mu is the correct value.
> t.test(one, mu = 8)
One Sample t-test
data: one
t = 0.59131, df = 231, p-value = 0.5549
alternative hypothesis: true mean is not equal to 8
95 percent confidence interval:
7.741578 8.480045
sample estimates:
mean of x
8.110811
> # mu is some desired value.
> # Let us check if mu is 10
> t.test(one, mu = 10)
One Sample t-test
data: one
t = -10.081, df = 231, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 10
95 percent confidence interval:
7.741578 8.480045
sample estimates:
mean of x
8.110811
Cuando probamos la hipótesis de que mu
es igual a 8, obtuvimos un valor p
muy grande en el primer caso. No podemos rechazar la hipótesis nula.
El intervalo de confianza para la media muestral incluye el valor de mu
.
En la segunda prueba, el pequeño valor p
sugiere que la probabilidad de que mu
sea 10 es extremadamente baja. El tercer caso ilustra la sintaxis para cambiar el nivel de confianza.
Prueba t
de una cola para una muestra en R
Para una prueba de una cola, se utiliza el argumento alternativa
. Esta es la hipótesis alternativa.
Código de ejemplo:
# One-sample, one-tailed t test.
t.test(one, mu = 10, alternative = "less", conf.level = 0.99)
# Change mu
t.test(one, mu = 8.3, alternative = "less", conf.level = 0.99)
Producción :
> # One-sample, one-tailed t test.
> t.test(one, mu = 10, alternative = "less", conf.level = 0.99)
One Sample t-test
data: one
t = -10.081, df = 231, p-value < 2.2e-16
alternative hypothesis: true mean is less than 10
99 percent confidence interval:
-Inf 8.549816
sample estimates:
mean of x
8.110811
> # Change mu
> t.test(one, mu = 8.3, alternative = "less", conf.level = 0.99)
One Sample t-test
data: one
t = -1.0095, df = 231, p-value = 0.1569
alternative hypothesis: true mean is less than 8.3
99 percent confidence interval:
-Inf 8.549816
sample estimates:
mean of x
8.110811
Primero, probamos la hipótesis de que mu
es 10 o más y obtuvimos un valor p
bajo.
Probamos la hipótesis de que mu
es 8,3 o más en el segundo caso. Ahora el valor p
era mayor.
Prueba t
de dos muestras en R
Para la prueba t
de dos muestras, los datos deben tener la forma de un marco de datos o una matriz.
- Debe tener ambas muestras en un solo vector numérico.
- La muestra/grupo debe especificarse utilizando un vector de dos factores.
- Por lo tanto, cada fila del marco de datos o matriz contiene la observación y el grupo al que pertenece.
- Dependiendo de qué factor es el primero y el segundo, necesitamos calcular la diferencia de la primera media menos la segunda media para el argumento
mu
. Esto es muy importante.
Primero probaremos la hipótesis de que dos muestras tienen la misma media. La segunda prueba comprueba si las medias difieren en mu
.
Código de ejemplo:
# Create vectors and data frame.
set.seed(6565)
two_a = rnorm(75, 8, 3.5)
set.seed(9898)
two_b = rnorm(65, 8.5, 3)
two = c(two_a, two_b)
ftr = c(rep("A",75), rep("B",65))
dtf = data.frame(DV = two, FV = ftr)
# Two-sample t test for no difference in means.
t.test(formula=DV~FV, data=dtf)
# Two-sample t test for a difference of mu between the means.
t.test(formula=DV~FV, data=dtf, mu=-1.5)
# Two-sample t test with pooled variance at 90 percent confidence interval.
t.test(formula=DV~FV, data=dtf, var.equal=TRUE, conf.level=0.9)
Producción :
> # Two-sample t test for no difference in means.
> t.test(formula=DV~FV, data=dtf)
Welch Two Sample t-test
data: DV by FV
t = -2.2723, df = 137.16, p-value = 0.02462
alternative hypothesis: true difference in means between group A and group B is not equal to 0
95 percent confidence interval:
-2.3975526 -0.1663727
sample estimates:
mean in group A mean in group B
7.815221 9.097184
> # Two-sample t test for a difference of mu between the means.
> t.test(formula=DV~FV, data=dtf, mu=-1.5)
Welch Two Sample t-test
data: DV by FV
t = 0.38648, df = 137.16, p-value = 0.6997
alternative hypothesis: true difference in means between group A and group B is not equal to -1.5
95 percent confidence interval:
-2.3975526 -0.1663727
sample estimates:
mean in group A mean in group B
7.815221 9.097184
Primero, realizamos la prueba t
predeterminada de dos muestras, la prueba de Welch, y probamos la hipótesis nula de que la diferencia de las medias es 0. El valor p
es de aproximadamente 0,02.
En segundo lugar, probamos si la diferencia de medias es -1,5.
El tercer caso ilustra la sintaxis de la prueba t
, asumiendo que las dos muestras tienen la misma varianza.
Prueba de Wilcoxon en R
La sintaxis de la prueba de Wilcoxon es similar.
Prueba de Wilcoxon bilateral de una muestra en R
El argumento mu
es la mediana según la hipótesis nula que estamos contrastando.
Código de ejemplo:
# Wilcoxon test.
# One-sample two-tailed test.
wilcox.test(one, mu=8)
# Try a different mu.
wilcox.test(one, mu=9, )
Producción :
> wilcox.test(one, mu=8)
Wilcoxon signed rank test with continuity correction
data: one
V = 13992, p-value = 0.6408
alternative hypothesis: true location is not equal to 8
> # Try a different mu.
> wilcox.test(one, mu=9, )
Wilcoxon signed rank test with continuity correction
data: one
V = 8953, p-value = 8.341e-06
alternative hypothesis: true location is not equal to 9
En el primer caso, la muestra apoya la hipótesis nula de que la mediana es 8.
En el segundo caso, obtenemos un valor p
muy pequeño.
Prueba de Wilcoxon de dos muestras en R
Esto también se llama la prueba de Mann-Whitney.
Código de ejemplo:
# Test whether two locations differ by mu.
wilcox.test(formula=DV~FV, data=dtf, mu=-1.5)
wilcox.test(formula=DV~FV, data=dtf)
Producción :
> # Test whether two two locations differ by mu.
> wilcox.test(formula=DV~FV, data=dtf, mu=-1.5)
Wilcoxon rank sum test with continuity correction
data: DV by FV
W = 2530, p-value = 0.7007
alternative hypothesis: true location shift is not equal to -1.5
> wilcox.test(formula=DV~FV, data=dtf)
Wilcoxon rank sum test with continuity correction
data: DV by FV
W = 1888, p-value = 0.0218
alternative hypothesis: true location shift is not equal to 0
En el primer caso, probamos la hipótesis de que la ubicación de las dos muestras difiere en -1.5. El gran valor p
apoya la hipótesis nula.
Probamos la hipótesis de que las dos muestras tienen la misma ubicación en el segundo caso.
Pruebas de la t
apareada y de Wilcoxon en R
Cuando los datos están emparejados, hay dos observaciones por unidad; deberíamos usar la versión pareada de estas pruebas para probar la hipótesis de que no hay diferencia, o una diferencia específica, entre las observaciones pareadas de la muestra.
- Usaremos el argumento
paired = TRUE
para estas pruebas. - Los datos deben darse en dos vectores numéricos separados de igual longitud que los argumentos
x
ey
.
Código de ejemplo:
# Data
set.seed(4455)
m = rnorm(92, 15, 3)
set.seed(7788)
n = rnorm(92, 14, 2.5)
# Paired t test. Testing for NO DIFFERENCE.
t.test(x=m, y=n, paired = TRUE)
# Paired Wilcoxon test.
wilcox.test(x=m, y=n, paired = TRUE, mu=1)
Producción :
> # Paired t test. Testing for NO DIFFERENCE.
> t.test(x=m, y=n, paired = TRUE)
Paired t-test
data: m and n
t = 2.5187, df = 91, p-value = 0.01353
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
0.1962145 1.6605854
sample estimates:
mean of the differences
0.9283999
> # Paired Wilcoxon test.
> wilcox.test(x=m, y=n, paired = TRUE, mu=1)
Wilcoxon signed rank test with continuity correction
data: m and n
V = 1930, p-value = 0.4169
alternative hypothesis: true location shift is not equal to 1
En el ejemplo de la prueba t
pareada, la hipótesis nula de que la diferencia es 0 no puede ser apoyada por esta muestra.
En el test de Wilcoxon apareado probamos la hipótesis de que la diferencia es 1. Encontramos el p-value
alto.
Otras Pruebas en el Paquete stats
en R
La instalación por defecto de R incluye el paquete stats
. Este paquete proporciona muchas otras funciones para probar hipótesis sobre estadísticas de muestra.
Ejecute el siguiente código para obtener una lista de todas las funciones del paquete.
Código de ejemplo:
library(help = "stats")
R proporciona documentación y ejemplos para cada función de prueba a los que se puede acceder a través de la ayuda integrada.