Prueba de hipótesis en R

Jesse John 21 junio 2023
  1. Prueba t en R
  2. Prueba de Wilcoxon en R
  3. Pruebas de la t apareada y de Wilcoxon en R
  4. Otras Pruebas en el Paquete stats en R
Prueba de hipótesis 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:

  1. x: Un vector de números.
  2. mu: El valor desconocido de la media o la diferencia desconocida de medias.
  3. alternativa: Para las pruebas de una cola, debemos especificar mayor o menor para la hipótesis alternativa.
  4. 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:

  1. fórmula: Está en forma de numeric_vector ~ two-factor_vector.
  2. datos: este marco de datos debe contener las variables mencionadas en fórmula.
  3. var.equal: si es VERDADERO, se calcula la varianza para la muestra agrupada. Si es FALSO (predeterminado), se utiliza la aproximación de Welch.

La salida incluye lo siguiente:

  1. Un intervalo de confianza en el nivel de confianza dado alrededor de la media de la muestra.
  2. Un valor p que indica la probabilidad de que la media verdadera sea el valor especificado mu, 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.

  1. Debe tener ambas muestras en un solo vector numérico.
  2. La muestra/grupo debe especificarse utilizando un vector de dos factores.
  3. Por lo tanto, cada fila del marco de datos o matriz contiene la observación y el grupo al que pertenece.
  4. 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.

  1. Usaremos el argumento paired = TRUE para estas pruebas.
  2. Los datos deben darse en dos vectores numéricos separados de igual longitud que los argumentos x e y.

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.

Autor: Jesse John
Jesse John avatar Jesse John avatar

Jesse is passionate about data analysis and visualization. He uses the R statistical programming language for all aspects of his work.

Artículo relacionado - R Test