viernes, 15 de noviembre de 2024

R - Estadística | Contraste chi-cuadrado de homogeneidad

Cuando queremos comparar las diferencias significativas entre dos grupos con una variable categórica nominal u ordinal (que contenga frecuencias o recuentos) no podemos emplear las técnicas estadísticas vistas en los días anteriores que analiza las varianzas de dos grupos. En consecuencia, deberemos usar la prueba chi-cuadrado (X2de homogeneidad para varias muestras. En realidad, esta prueba se puede usar para dos o más poblaciones (o, de manera práctica, grupo). 



Caso práctico

Se quiere saber si existen o no diferencias significativas entre estudiantes universitarios fumadores y no fumadores en dos cursos del grado de Pedagogía. Por tanto, la muestra se compone de estudiantes  del primer y segundo curso que han querido participar en el estudio. Los resultados se han clasificado en fumadores y no fumadores en la siguiente especie de tabla:

Curso                  Fumadores        No fumadores
PRIMERO               16                        23
SEGUNDO              19                        28


Cuando se plantea este tipo de casos, estadísticamente hablando debemos preguntarnos: ¿se puede considerar homogéneo las dos poblaciones respecto al hábito fumador? Específicamente observamos que la variable categórica (hábito fumador) se compone de dos clases (fumador y no fumador), que a su vez está clasificada en una variable independiente (curso) de dos grupos (primero y segundo). Esta información se puede resumir en una tabla de frecuencias donde tenemos desglosada las frecuencias observadas (16, 23, 19 y 28 en este ejemplo) y se pueden calcular el sumatorio o total de la muestra. En efecto, lo que debemos hacer para responder a la pregunta del caso práctico será un test chi-cuadrado (X2) de homogeneidad. En concreto, se deberá realizar el estadístico de Pearson (la suma de las frecuencias observadas menos las esperadas) para contrastar la hipótesis nula (Ho) de que los grupos son homogéneos.

Para este ejemplo, se empleará directamente el entorno R (versión 4.4.2) en un ordenador Lenovo YB1-X91F (con sistema operativo Windows 10). Este mismo proceso se puede hacer en un ordenador Mac. Por supuesto, este mismo proceso se puede ejecutar en RStudio. Los datos se introducirán directamente en la consola de R, tal y como se mostrará a continuación.


Procedimiento

En primer lugar, debemos introducir los valores en forma de tabla de frecuencias, tal y como aparece en el caso práctico. Para ello, deberemos recurrir a la función matrix (c(...)). Como esta matriz va a tener dos columnas, que son las categorías "Fumadores" y "No fumadores" deberemos especificarlo en la instrucción ncol =. El orden para introducir los datos será por columnas o vertical (metemos ordenadamente los datos de la primera columna y pasamos a meter los datos ordenados de la segunda). A esta matriz, la vamos a llamar Habito.

> Habito = matrix (c(16, 19, 23, 28), ncol=2)


Para que la matriz se parezca a una tabla de frecuencias, podremos los nombres de cada fila y columna con los comandos colnames (nombre matriz) = c ("nombre de la columna 1", "nombre de la columna 2") y rownames (nombre matriz) = c ("nombre de la fila 1", "nombre de la fila 2"). Entonces, para este ejemplo:

> colnames (Habito) = c("Fumadores", "No fumadores")
> rownames (Habito) = c("Primero", "Segundo")

 
Podemos invocar el nombre de la matriz para visualizar si hemos metido bien la información.

A continuación, es hora de solicitar el test chi-cuadrado de homogeneidad. Esto se hace sencillamente con la función chisq.test (nombre de la matriz). Entonces en este caso, será

> chisq.test (Habito)


Adicionalmente podemos solicitar la tabla de frecuencias esperadas añadiendo a la función anterior. $ expected. Es decir:

> chisq.test (Habito) $ expected


Resultados e interpretación

Lo que se debe observar en este test es el p-valor. Si este es menor de 0,050 (suele ser lo deseable) se puede rechazar la hipótesis nula (Ho) de homogeneidad y concluir que existen diferencias significativas en ambos grupos. Tal y como se muestra en la siguiente ilustración, también es recomendable comparar los datos con las frecuencias esperadas y darse cuenta si esas diferencias son significativas. Los resultados de este test también dan el estadístico de Pearson (x-squared) con los grados de libertad (df).


  • El p-valor dela prueba de homogeneidad chi-cuadrado es 1, lo que puede confirmar la hipótesis de que los dos grupos (el curso) son homogéneos respecto a los hábitos fumadores. En otras palabras, no hay diferencias significativas entre los estudiantes de primero y de segundo relativas a fumar o no fumar.


Seguir aprendiendo

Hasta aquí la serie de pruebas de contraste de hipótesis para únicamente dos grupos. En las siguientes entradas, veremos las familia de pruebas para más de dos grupos. Puedes hacer clic en el siguiente botón para acceder al procedimiento de Análisis de Varianza:




Jacob Sierra Díaz y Alti

miércoles, 13 de noviembre de 2024

R - Estadística | Diferencia significativa de un grupo sobre otro

En los últimos días hemos visto la forma de realizar pruebas estadísticas para demostrar diferencias significativas (o no) entre dos grupos teniendo en cuenta una variable dependiente. Puedes hacer clic en los siguientes botones para acceder a las entradas para recordar estas pruebas. 






En esencia con estas pruebas estadísticas contrastamos dos hipótesis.

En el caso de las pruebas paramétricas:

  • Ho | Las medias de los dos grupos (a y b) son iguales | Xa = Xb
  • H1 | Las medias de los dos grupos (a y b) no son iguales | Xa ≠ Xb


En el caso de las pruebas no paramétricas:
  • Ho | Las medianas de los dos grupos (a y b) son iguales | Ma = Mb
  • H1 | Las medianas de los dos grupos (a y b) no son iguales | Ma ≠ Mb


Contraste de un grupo distinto a otro (Ya > Yb)

En las cuatro entradas anteriores hemos aprendido que si hacemos estos test por defecto en el entorno de R, verificaremos si hay que aceptar la hipótesis nula (Ho) o aceptar la hipótesis alternativa (H1). Pero este test solo nos da información sobre igualdad o desigualdad significativa (entre los dos grupos).

Para saber qué grupo es superior (o inferior) podemos extraer las medias y las cuasidesviaciones típicas de ambos grupos en el entorno R. Sin embargo, también se puede añadir una instrucción dentro de las funciones del test seleccionado. Entonces, cuando queramos verificar que la media (o la mediana) del grupo A es superior a la media (o mediana) del grupo B [Grupo A > Grupo B], esta la colocaremos como hipótesis alternativa (H1) ya que es lo deseable. Por tanto, debemos convertir el contraste de hipótesis que acabamos de ver a:
  • Ho | La medida (media o mediana) del grupo a es inferior a la del grupo b | Ya ≤ Yb
  • H1 | La medida del grupo a es inferior a la del grupo b | Ya > Yb

En este caso la instrucción que se debe integrar dentro de la función de los test ya aprendidos es alternative = "greater"Vamos a recuperar un ejemplo de los vistos anteriormente para ver cómo se puede efectuar este contraste.


Caso práctico

Una residencia universitaria ha analizado la velocidad en la que sus residentes comen (medido en minutos). En concreto, quieren saber si hay diferencias significativas entre la velocidad en la que comen los chicos y la velocidad en la que lo hacen las chicas. A los alumnos se les pidió permiso para analizar las cámaras de seguridad del comedor y medir el tiempo en el que cogen la bandeja, comen y la vuelven a dejar para evitar la medida in situ no sesgue los resultados. Los resultados de velocidad son los siguientes:
    - Chicos: 5,3; 6,3; 7,8; 8,6; 8,9; 10,3; 11,5; 12,1; 13,3; 17,6; 14,3
    - Chicas: 11,5; 12,1; 16,3; 17,8; 24; 28,9; 40,6; 34,3; 33

Ya vimos este ejemplo en la entrada correspondiente al test de Welch. Puedes hacer clic en el botón verde correspondiente indicado anteriormente para acceder al procedimiento completo. Se recuerda que para este tipo de prueba tenemos que verificar el supuesto de normalidad; cuestión que aquí no se mostrará.

Para este ejemplo, se empleará directamente el entorno R (versión 4.3.1) en un ordenador MacBook Pro (con sistema operativo MacOS Ventura). Este mismo proceso se puede hacer en un ordenador con sistema operativo Windows. Por supuesto, este mismo proceso se puede ejecutar en RStudio. Los datos se introducirán directamente en la consola de R mediante dos variables vectoriales con los nombres del sexo de los residentes.


Procedimiento

En primer lugar, se introducirán los datos en modo de variable vectorial. En concreto, se crearán dos variables poniendo los datos separados por comas. En este caso, el orden de los datos no importan.

> Chicos = c(5.3, 6.3, 7.8, 8.6, 8.9, 10.3, 11.5, 12.1, 13.3, 17.6, 14.3)

> Chicas = c(11.5, 12.1, 16.3, 17.8, 24, 28.9, 40.6, 34.3, 33)

Recordemos que nuestro contraste de hipótesis establece que:
  •  Ho: Chicos ≤ Chicas | p-valor > 0,050
  •  H1: Chicos > Chicas | p-valor < 0,050

La función del test de Welch para este contraste de hipótesis quedará, por tanto de esta forma:

t.test (Chicos, Chicas, var.equal = F, alternative = "greater")


Resultados e interpretación

El resultado que deberemos mirar es el p-valor de esta prueba. Nos tenemos que dar cuenta si es mayor a 0,050 (en tal caso las chicas tienen una media significativamente mayor) o si es menor a 0,050 (en tal caso, los chicos tienen una media significativamente mayor). Esto mismo se puede verificar solicitando las medias de ambos grupos, mediante mean (Nombre de la variable vectorial del grupo) tal y como se muestra en la siguiente imagen: 


  • Se tienen suficientes evidencias como para mantener la hipótesis alternativa (Ho) de que el grupo de chicas tiene una media significativamente mayor de la velocidad de comida que los chicos.


Seguir aprendiendo

A continuación,




Jacob Sierra Díaz y Alti

R - Estadística | Contraste Wilcoxon-Mann-Whitney

En Estadística Aplicada es habitual comparar dos grupos. De hecho, en las entradas anteriores hemos visto los casos en los que debemos realizar una comparación mediante métodos paramétricos en función de la naturaleza de las variables. Puedes hacer clic en los siguientes botones para recordar cómo se efectúa una prueba T de Student (normalidad y homocedasticidad), el test de Welch (normalidad) y el test basado en la normal (muestras grandes), respectivamente.                 





Entonces, cuando se comparan dos grupos, debemos tener en cuenta unos supuestos previos que indicarán la prueba más idónea. Por supuesto, en esta entrada veremos la familia de contrastes no paramétricos (cuando no se puede asumir que los datos de los dos grupos proceden de poblaciones normales o cuando los tamaños del efecto no son lo suficientemente grandes).
  • Hoy vamos a mostrar cómo se efectúa en el entorno R la prueba de Wilcoxon-Mann-Whitney



Supuestos previos

Para esta prueba, debemos tener datos en la variable dependiente de tipo cuantitativo continuo (como el resto de pruebas que hemos ido viendo estos días). Además, no es necesario admitir que los datos procedan de poblaciones normales. Puedes hacer clic en el siguiente botón para acceder a la forma en la que se realizan estas pruebas en el entorno de R. Por supuesto, realizar esta prueba para estas pruebas sería una pérdida de tiempo. No obstante, puedes hacer clic en el siguiente botón para acceder al contenido.



Caso práctico

Un pequeño estudio quiere saber si un resultado en una puebla de japonés es igual entre chicos y chicas de una misma clase. La clase se componía de 12 alumnos y 12 alumnas y los resultados van de la más baja calificación, que es 0, a la más alta, que es 100. Los datos de las pruebas fueron:
- Alumnos: 88, 87, 81, 86, 89, 84, 83, 89, 93, 82, 89, 87 
- Alumnas: 91, 94, 90, 93, 88, 83, 90, 92, 94, 90, 94, 85

El estudio quiere saber si hay diferencias significativas en sus medianas poblacionales. Es decir, la hipótesis nula será M del grupo1 = M del grupo 2 y, por tanto, la hipótesis alternativa será M del grupo 1 ≠ M del grupo 2; siendo "M" las medianas poblacionales. 


Ya que se ha especificado claramente que el contraste se debe hacer con medianas poblacionales, debemos ejecutar el test Wilcoxon-Mann-Whitney. De esta forma, no será necesario hacer la comprobación del supuesto de normalidad (tests K-S o S-W). Para este ejemplo, se empleará directamente el entorno R (versión 4.3.1) en un ordenador MacBook Pro (con sistema operativo MacOS Ventura). Este mismo proceso se puede hacer en un ordenador con sistema operativo Windows. Por supuesto, este mismo proceso se puede ejecutar en RStudio. Los datos se introducirán directamente en la consola de R mediante dos variables vectoriales con los nombres del sexo de los residentes.


Procedimiento

En primer lugar, se introducirán los datos en modo de variable vectorial. En concreto, se crearán dos variables poniendo los datos separados por comas. En este caso, el orden de los datos no importan.

> Alumnos = c(88, 87, 81, 86, 89, 84, 83, 89, 93, 82, 89, 87)

> Alumnas = c(91, 94, 90, 93, 88, 83, 90, 92, 94, 90, 94, 85)


A continuación, efectuaremos el contraste Wilcoxon-Mann-Whitney con la función wilcox.test (grupo1, grupo2, alternative = "two.sided", mu = 0) en donde "grupo1" y "grupo2" son los nombres de la variable de ambos grupos. Two.sided hace referenciaa los constraste bilaterales y mu es el valor de la hipótesis nula. Entonces, en este caso, la función será:

> wilcox.test (Alumnos, Alumnas, alternative ="two.sided", mu =0) 


Resultados e interpretación

Los resultados de esta prueba son iguales de interpretar que cuando se hacen pruebas paramétricas. En concreto, se debe mirar el p-valor y si este es menor de 0,050 (lo deseable) tenemos evidencias como para rechazar la hipótesis alternativa y admitir que no hay igualdad entre las medianas de ambas poblaciones (asumiendo un nivel de significación de 0,050). 

Los resultados de este ejemplo, se muestran en la siguiente imagen. Debemos mirar que los resultados del estadístico de contraste es la W (27,5 en este caso) y el p-valor es inferior a 0,050, por lo que se puede asumir desigualdad de medianas entre alumnos y alumnas. 


  • El p-valor de este contraste confirma que hay diferencia de medianas significativas entre las calificaciones de japonés de los chichos y de las chicas.

Seguir aprendiendo

A continuación,




Jacob Sierra Díaz y Alti

lunes, 11 de noviembre de 2024

R - Estadística | Test basados en la normal

En las dos últimas entradas se mostró la forma de realizar en el entorno R la prueba T de Student y el test de Welch. Ambos procedimientos requieren que los datos objeto de estudio procedan de una distribución normal. A continuación, en caso de que la igualdad de varianzas no sea posible (p < 0,050), se deberá hacer el test de Welch. Puedes hacer clic en los siguientes botones para recordar ambos procedimientos:



Cuando las muestras objeto de estudio son lo suficientemente grandes (la suma de los dos grupos debe ser superior al menos a 30 sujetos; García-Pérez, 2015) y se verifica el supuesto de normalidad de los datos, se recomienda efectuar una prueba de contraste de hipótesis basada en la distribución normal.

  • Hoy mostraremos cómo se realiza esta prueba y descubriremos la manera en la que se realizaba de manera manual con la ayuda de una tabla de referencia de la distribución normal.  



Supuestos previos

Para realizar esta prueba básica únicamente se requiere que la muestra sea grande. Como se ha visto anteriormente la suma de ambos grupos debe ser igual o superior a 30 [n1 + n2 > 30]. Por esta misma razón, no se requerirá el supuesto de normalidad en las distribuciones objeto de estudio (García-Pérez, 2015).


Caso práctico

En una empresa privada de construcción se ha hecho un estudio a lo largo de 24 meses en el que se recogieron datos sobre el estrés sufrido por sus trabajadores. Esta empresa tiene dos grupos de trabajadores: el grupo de mañana y el grupo de tardes. Se desea saber si hay diferencias significativas sobre el nivel de estrés entre ambos grupos a un nivel de alfa igual a 0,05. Los datos que la empresa ha aportado una vez tabulado los datos en un Excel son:
 - Grupo de mañanas (n = 313): media = 9,43S= 32,4616
 - Grupo de tardes (n = 303): media = 9,14; S= 26,2455


Si nos fijamos en la naturaleza de la muestra, nos daremos cuenta que tenemos dos grupos a comparar y una variable dependiente (nivel de estrés). Puesto que la muestra total es superior a 30, las varianzas poblacionales no se conocen y únicamente tenemos tres datos en cada grupo, lo conveniente es hacer el test basado en la normal. Para ello, vamos a tener en cuenta el contraste de hipótesis que debemos hacer:



Para este ejemplo emplearemos el entorno R únicamente como apoyo. Es decir, este ejemplo lo vamos a realizar con la tabla de referencia de la distribución normal. También se usará una calculadora científica; en concreto se usará la CASIO FX-991 SP CW Iberia. Por supuesto, cualquier tipo o modelo calculadora se podrá usar para este ejemplo.


Procedimiento

En primer lugar, sustituiremos la fórmula del contraste de hipótesis vista arriba con los datos de nuestro ejemplo. Con una calculadora científica se podrá realizar esta operación de una manera muy rápida.



Recordemos que para este contexto, alfa es el nivel de significación (alfa = 0,050) y que el nivel de confianza será 1 - alfa (1 - 0,050 = 0,95). A continuación, debemos de calcular el valor Z alfa/2 que consistirá en sustituir el alfa por el valor elegido (0,050 en este caso) y dividirlo entre dos. Entonces, el valor Z es 0,025. Con esto, sabemos que a la izquierda del área que describe la campana de distribución normal tenemos el resto: 1 - alfa/2; 1 - 0,025 = 0,975.

Ahora tenemos que buscar el valor Z. Para ello, tenemos que irnos a la tabla de distribución normal y encontrar ese valor dentro de la misma (no en la primera fila o columna). El valor Z surgirá de sumar la primera fila y la primera columna de nuestro número anterior, tal y como se muestra en la siguiente imagen:


Por tanto, Z alfa/2 ó Z 0,025 es igual a 1,96.


Entonces, deberemos comparar el resultado de la fórmula del contraste de hipótesis con el valor Z 0,025 que, en este caso es 1,96. Tal y como aparece en la imagen del contraste de hipótesis de arriba, si el valor Z 0,025 (es decir, 1,96) es mayor que el resultado obtenido, debemos aceptar la hipótesis nula de igualdad de medias. Si, por el contrario, el resultado obtenido es mayor que el valor Z 0,025 (es decir, 1,96) tenemos evidencias suficientes para rechazar la hipótesis nula y aceptar la hipótesis alternativa.



Con R podemos sustituir la labor de consultar la tabla de la distribución normal y obtener directamente el valor Z 0,025 aplicando la siguiente función:

> qnorm (0.975)
[1] 1.959964


Resultado e interpretación

Para llegar al resultado debemos tener el número que hemos extraído de la fórmula del contraste y el valor de Z alfa/2. En este caso observamos que el valor de la fórmula (0,1221) es inferior al valor de Z alfa/2 (1,96). 
  • 0,1221 < 1,96
Entonces, recurriendo a la primera ilustración de esta entrada, veremos como en este caso debemos aceptar la hipótesis nula o Ho. Por tanto, no podemos inferir una diferencia significativa entre ambos grupos. En otras palabras, debemos aceptar la no existencia de diferencias significativas.


Fuente bibliográfica

Referencia en estilo APA-7: 
  • García-Pérez, A. (2015). La interpretación de los dato: una introducción a la Estadística Aplicada. Librería UNED.

Seguir aprendiendo

En 



Jacob Sierra Díaz y Alti

R - Estadística | El test de Welch en R

Uno de los procedimientos más usados de la Estadística Aplicada es la de la comparación de poblaciones. Ya que es imposible comparar poblaciones, se recurren a grupos muestrales. Por tanto, el objetivo de la comparación de grupos es la de contrastar la hipótesis de partida (o nula) de que ambos grupos son iguales. 


Dependiendo de la naturaleza de los datos de una investigación, hay que seleccionar adecuadamente el test de contraste más adecuado para evitar una interpretación incorrecta. De esta forma, la comparación más básica que se puede presentar es cuando hay dos grupos a comparar. En este caso, tal y como se muestra en la siguiente imagen, tenemos una variable independiente binomial (grupo A y grupo B) y una o varias variables dependientes cuantitativas discretas o continuas. Aquí, en función de algunos supuestos se deberá seleccionar un tipo de contraste distinto.
  • Hoy vamos a mostrar cómo se efectúa en el entorno R la prueba de Welch



Supuestos previos

Anteriormente se vio la forma de efectuar la prueba T de Student. Esta prueba requiere que se cumplan dos supuestos: el de normalidad de los datos y el de la igualdad de varianzas. Puedes hacer clic en el siguiente botón para recordar cómo se efectúa este test.



Cuando los datos de ambos grupos proceden de distribuciones normales (supuesto de normalidad) pero sus varianzas no son iguales, no se debería realizar la prueba T de Student. En su lugar, se debería emplear el test que vamos a ver hoy. Puedes hacer clic en el siguiente botón para recordar cómo se efectúa una prueba de homocedasticidad básica en el entorno R. 



Caso práctico

Una residencia universitaria ha analizado la velocidad en la que sus residentes comen (medido en minutos). En concreto, quieren saber si hay diferencias significativas entre la velocidad en la que comen los chicos y la velocidad en la que lo hacen las chicas. A los alumnos se les pidió permiso para analizar las cámaras de seguridad del comedor y medir el tiempo en el que cogen la bandeja, comen y la vuelven a dejar para evitar la medida in situ no sesgue los resultados. Los resultados de velocidad son los siguientes:
    - Chicos: 5,3; 6,3; 7,8; 8,6; 8,9; 10,3; 11,5; 12,1; 13,3; 17,6; 14,3
    - Chicas: 11,5; 12,1; 16,3; 17,8; 24; 28,9; 40,6; 34,3; 33

Está claro que tenemos una variable independiente con dos grupos (chicos y chicas) y una variable dependiente (precio de la noche). El objetivo es comparar los dos grupos y ver si el precio de un barrio es mayor que el otro estadísticamente significativo. Todo apunta a que el test T de Student es el más aconsejable de realizar si se consiguen los supuestos de normalidad y homocedasticidad. Si solo se consigue el supuesto de normalidad, se deberá hacer el test t de Welch.


Para este ejemplo, se empleará directamente el entorno R (versión 4.3.1) en un ordenador MacBook Pro (con sistema operativo MacOS Ventura). Este mismo proceso se puede hacer en un ordenador con sistema operativo Windows. Por supuesto, este mismo proceso se puede ejecutar en RStudio. Los datos se introducirán directamente en la consola de R mediante dos variables vectoriales con los nombres del sexo de los residentes.


Procedimiento

En primer lugar, se introducirán los datos en modo de variable vectorial. En concreto, se crearán dos variables poniendo los datos separados por comas. En este caso, el orden de los datos no importa, aunque mantendremos el mismo que se indicó en el enunciado

> Chicos = c(5.3, 6.3, 7.8, 8.6, 8.9, 10.3, 11.5, 12.1, 13.3, 17.6, 14.3)

> Chicas = c(11.5, 12.1, 16.3, 17.8, 24, 28.9, 40.6, 34.3, 33)


A continuación, se debe verificar la normalidad de los datos. Para ello, se usará el test S-W ya que es el más restrictivo y la muestra del caso práctico es muy pequeña. Este test en el entorno R se debe hacer para cada grupo. Entonces, sería: 

> shapiro.test (Chicos)
> shapiro.test (Chicas)

  • En caso de que queramos analizar la variable dependiente (velocidad a la hora de comer) como un conjunto único, es decir unir los datos de la variable "Chicos" y de "Chicas" deberemos crear una nueva variable en la que pondremos el nombre de los grupos y solicitar el test S-W con el nombre de esa nueva variable.
> velocidad = c(Chicos, Chicas)     > shapiro.test (velocidad)

 

Ahora, deberemos verificar la homocedasticidad. Para ello vamos a emplear la función básica que viene por defecto en el entorno R. Aquí, sí que debemos incluir en la misma función a los dos grupos. Si el p-valor que de como resultado es superior a 0,050 podemos asumir la igualdad de varianzas entre los dos grupos y, por tanto, se puede hacer la T de Student. Si, por el contrario, es inferior a 0,050 deberemos realizar la prueba de Welch.

> var.test (Chicos, Chicas)


Entonces, para solicitar el test de Welch, deberemos usar la siguiente función t.test (var1, var2, var.equal = F). En var1 colocaremos el nombre del primer grupo ("Chicos" en nuestro caso, por ejemplo) y en var2 colocaremos el nombre del otro grupo ("Chicas" en este ejemplo). Nótese que para solicitar este test deberemos poner la F en var.equal. Por tanto, para este ejemplo, la función quedará de esta forma:

> t.test (Chicos, Chicas, var.equal = F)


Resultados e interpretación

Los resultados de las funciones descritas en el apartado anterior, saldrán cada vez que pulsemos la tecla Intro. En este ejemplo no vamos a repasar los resultados de la prueba de normalidad y homocedasticidad puesto que ya se ha comentado que para esta prueba la normalidad debe ser un p-valor superior a 0,050 y la homocedasticidad debe ser un p-valor superior a 0,050.

Tampoco se va a proceder a realizar un análisis exhaustivo de cada uno de los componentes de los resultados. El objetivo de esta entrada es conocer el valor que debemos de mirar para saber si hay diferencias estadísticamente significativas entre los dos grupos. Por tanto, deberemos mirar el p-valor y si, a diferencia de los dos anteriores, es menor que 0,050 podemos rechazar la hipótesis nula y tener evidencias para concluir que existen diferencias entre los grupos.


  • El p-valor del test de Welch sugiere rechazar la hipótesis nula de igualdad de ambos grupos de datos. Por tanto, podemos confirmar que hay diferencias significativas en la velocidad de comida entre chicos y chicas en la residencia universitaria.

Seguir aprendiendo

A continuación, veremos cómo se realiza este tipo de pruebas para muestras grandes (aproximadamente 30 participantes). Puedes hacer clic en el siguiente botón para acceder al contenido:



Jacob Sierra Díaz y Alti

domingo, 10 de noviembre de 2024

R - Estadística | La T de Student en R

Uno de los procedimientos más usados de la Estadística Aplicada es la de la comparación de poblaciones. Al ser prácticamente imposible la comparación real de poblaciones (ya que requeriría que todos los individuos o elementos formasen parte de la comparación), se suele reducir a grupos representativos de las poblaciones. Entonces, el objetivo de la comparación de grupos es la de emplear contrastes de hipótesis para determinar si los conjuntos de datos de los grupos pueden considerarse iguales o si, por el contrario, son estadísticamente significativo sin considerar el mero azar. 

Dependiendo de la naturaleza de los datos de una investigación, hay que seleccionar adecuadamente el test de contraste más adecuado para evitar una interpretación incorrecta. De esta forma, la comparación más básica que se puede presentar es cuando hay dos grupos a comparar. En este caso, tal y como se muestra en la siguiente imagen, tenemos una variable independiente binomial (grupo A y grupo B) y una o varias variables dependientes cuantitativas discretas o continuas. Aquí, en función de algunos supuestos se deberá seleccionar un tipo de contraste distinto.
  • Hoy vamos a mostrar cómo se efectúa en el entorno R la prueba T de Student



Supuestos previos

Antes de realizar esta prueba, los datos deben "superar" unas pruebas. En primer lugar, se deben hacer un test de normalidad. Lo recomendable es usar el test Kolmogorov-Smirnov (muestras mayores de 50 participantes) o el test Shapiro-Wilk (muestras menores de 50 participantes, más restrictivo). Puedes hacer clic en el siguiente botón para recordar la forma de hacer este análisis en el entorno R.



Además, tal y como se muestra en la ilustración superior; a parte de la normalidad de los datos; se debe comprobar la homocedasticidad. Puedes hacer clic en el siguiente botón para recordar la forma de hacer este análisis básico en el entorno R. 



Caso práctico

Un grupo de economistas quieren estudiar si el precio de la noche de los hoteles en dos barrios de una ciudad capital de provincia son estadísticamente distintos. Para ello, han obtenido los siguientes precios por noche de todos los hostales y hoteles de los dos barrios:
    - Bellavista: 4€, 8€, 26€, 11€, 16€, 7€, 13€, 26€ y 15€
    - Fuentezarza: 58€, 54€, 50€, 48€, 43€, 31€, 30€, 22€ y 11€

Está claro que tenemos una variable independiente (Bellavista y Fuentezarza) y una variable dependiente (precio de la noche). El objetivo es comparar los dos grupos y ver si el precio de un barrio es mayor que el otro estadísticamente significativo. Todo apunta a que el test T de Student es el más aconsejable de realizar si se consiguen los supuestos previamente expuestos.


Para este ejemplo, se empleará directamente el entorno R (versión 4.3.1) en un ordenador MacBook Pro (con sistema operativo MacOS Ventura). Este mismo proceso se puede hacer en un ordenador con sistema operativo Windows. Por supuesto, este mismo proceso se puede ejecutar en RStudio. Los datos se introducirán directamente en la consola de R mediante dos variables vectoriales con los nombres de los barrios.


Procedimiento

En primer lugar, se introducirán los datos en modo de variable vectorial. En concreto, se crearán dos variables poniendo los datos separados por comas. En este caso, el orden de los datos no importa, aunque mantendremos el mismo que se indicó en el enunciado

> Bellavista = c(4, 8, 26, 11, 16, 7, 13, 26, 15)

> Fuentezarza = c(58, 54, 50, 48, 43, 31, 30, 22, 11)


A continuación, se debe verificar la normalidad de los datos. Para ello, usaremos el test S-W ya que es el más restrictivo. Realmente se deberá efectuar dos veces el test, una para el barrio "Bellavista" y otra para el barrio "Fuentezarza". Si ambos test dan como resultado un p-valor superior a 0,050 se puede asumir la normalidad de los datos y, por tanto, se continua con los procedimientos paramétricos.

> shapiro.test (Bellavista)
> shapiro.test (Fuentezarza)

  • En caso de que queramos analizar la variable dependiente (el precio de la noche) como un conjunto único, es decir unir los datos de la variable "Bellavista" y de "Fuentezarza" deberemos crear una nueva variable en la que pondremos el nombre de las anteriores variables y solicitar el test S-W con el nombre de esa nueva variable.
> precio = c(Bellavista, Fuentezarza)     > shapiro.test (precio)

 

Ahora, deberemos verificar la homocedasticidad. Para ello vamos a emplear la función básica que viene por defecto en el entorno R. Aquí, sí que debemos incluir en la misma función a los dos grupos. Si el p-valor que de como resultado es superior a 0,050 podemos asumir la igualdad de varianzas entre los dos grupos y, por tanto, se puede hacer la T de Student.

> var.test (Bellavista, Fuentezarza)


Entonces, para solicitar la prueba T de Student, deberemos usar la siguiente función t.test (var1, var2, var.equal = T). En var1 colocaremos el nombre del primer grupo (el barrio de "Bellavista" en nuestro caso, por ejemplo) y en var2 colocaremos el nombre del otro grupo (el barrio de "Fuentezarza" en este ejemplo). Por tanto, para este ejemplo, la función quedará de esta forma:

> t.test (Bellavista, Fuentezarza, var.equal = T)


Resultados e interpretación

Los resultados de las funciones descritas en el apartado anterior, nos saldrán cada vez que pulsemos la tecla Intro. En este ejemplo no vamos a repasar los resultados de la prueba de normalidad y homocedasticidad ya que se ha comentado que cuando el p-valor es superior a 0,050 se puede proceder a realizar la prueba objeto de esta entrada.

Tampoco se va a proceder a realizar un análisis exhaustivo de cada uno de los componentes de los resultados. El objetivo de esta entrada es conocer el valor que debemos de mirar para saber si hay diferencias estadísticamente significativas entre los dos grupos (que es lo que contrasta el test T de Student). Por tanto, deberemos mirar el p-valor y si, a diferencia de los dos anteriores, es menor que 0,050 podemos rechazar la hipótesis nula y tener evidencias para concluir diferencias entre los grupos.



  • El p-valor de la prueba T-Student es de menos de 0,050 (p = 0,0007). Por tanto, tenemos suficiente evidencia para concluir que el precio por noche de los hoteles es distinta en el barrio de Bellavista que en el barrio de Fuentezarza.

Seguir aprendiendo

En la siguiente entrada, aprenderemos a realizar el test de Welch que se usa cuando el supuesto de homocedasticidad no puede ser confirmado. Puedes hacer clic en el siguiente botón para acceder directamente al contenido:



Jacob Sierra Díaz y Alti

sábado, 9 de noviembre de 2024

R - Estadística | Test de homocedasticidad de Bartlett

En la entrada anterior, vimos cómo se podía ejecutar el test para contrastar la hipótesis de igualdad de varianzas entre dos grupos. Puedes hacer clic en el siguiente botón verde para acceder a ese contenido. 



Dentro de lo que podríamos denominar "familia de test de homocedasticidad" tenemos el denominado test de Bartlett. Este test es especialmente útil para analizar la homocedasticidad de más de dos grupos (García-Pérez, 2015). Sin embargo, al igual que el test de homocedasticidad anterior, para poder ejecutarlo correctamente, se necesita que los datos se distribuyan de manera normal. Puedes hacer clic en el siguiente botón para recordar cómo se realiza en R el análisis de normalidad.



El test de Bartlett se ejecuta en R con la función bartlett.test (...). Para ejemplificar su uso, emplearemos el caso práctico visto en la entrada anterior puesto que el procedimiento es muy similar y se requiere el uso de dos grupos (variable independiente).


Caso práctico

Un estudio ha comparado el uso de una vitamina para mejorar el rendimiento de una prueba de memoria. Para ello, se ha empleado a un grupo de participantes de más de 50 años que están matriculados en un programa formativo en una universidad. El primer grupo recibió una pastilla con la vitamina y el segundo grupo recibió una pastilla sin la vitamina (placebo). A continuación, se procedió a realizar la prueba de memoria. El resultado de esta prueba es un valor que oscila entre 0 y 50, siendo el 0 la peor calificación y 50 la mejor. Se quiere comprobar el supuesto de homocedasticidad con el test de Bartlett.

Los datos de los resultados de la prueba se muestran a continuación:
    - Grupo experimental: 28,5; 19,5; 22,8; 25,9; 14,5; 23,3; 24,5; 26,4; 28,1; 29,6; 25,7; 21,9
    - Grupo control: 34,5; 26, 36,5; 35,7; 29,5; 26,9; 25,7; 34,8; 29,9; 19,6; 17,4; 21,9


Para este ejemplo, se empleará directamente el entorno R (versión 4.3.1) en un ordenador MacBook Pro (con sistema operativo MacOS Ventura). Este mismo proceso se puede hacer en un ordenador con sistema operativo Windows. Por supuesto, este mismo proceso se puede ejecutar en RStudio. Los datos se introducirán directamente en la consola de R mediante dos variables vectoriales con los nombres experimental y  control respectivamente.


Procedimiento

En primer lugar, se introducirán los datos en modo de variable vectorial. Esta vez debemos crear dos variables vectoriales; una para el grupo experimental y otra distinta para el grupo control. Recordemos que en R debemos separar cada dato con comas y la separación decimal irá con puntos. En este caso, el orden de los datos no importa, aunque mantendremos el mismo que se indicó en el enunciado

> experimental = c(28.5, 19.5, 22.8, 25.9, 14.5, 23.3, 24.5, 26.4, 28.1, 29.6, 25.7, 21.9)

> control = c(34.5, 26, 36.5, 35.7, 29.5, 26.9, 25.7, 34.8, 29.9, 19.6, 17.4, 21.9)


Para solicitar el test (de homocedasticidad) de Bartlett deberemos previamente crear dos nuevas variable vectoriales con los grupos y con el nombre de la variable dependiente.
- La primera de ellas es relativa a los grupos y se llamará grupos. En ella tendremos que usar la función rep ("1", n). Como en este caso tenemos dos grupos, tendremos dos funciones rep (...). La primera rep ("1",12) hará alusión al primer grupo (en este caso es el experimental), de ahí que tenga un 1; además, como este grupo tiene una muestra de 12, el segundo número será 12. La segunda rep ("2",12); hará alusión al primer grupo (en este caso es el experimental), de ahí que tenga un 2; además, como este grupo también tiene una muestra de 12, el segundo número también será 12. Por tanto, esta variable será:

> grupos = c(rep ("1", 12), rep ("2", 12))


- La segunda variable será relativa a todo el conjunto de datos. Para ello, juntaremos en una única variable el grupo experimental y el grupo control. Le vamos a poner el nombre de memoria ya que así, tendremos todo el conjunto de datos en una sola variable (sin separar por grupos).

> memoria = c(experimental, control)


Con esta variables ya estamos listos para hacer el test de Bartlett con la función bartlett.test (...). Para ello, pondremos en primer lugar la variable que tenga todos los datos (en este caso la hemos llamado memoria) seguido de la variable de los grupos (llamada en este ejemplo grupos). Ambos nombres deberán estar separados por una virgulilla (~). En la siguiente ilustración se muestra cómo escribirla en teclados para MacOS y Windows. Entonces, la función para este ejemplo quedará de esta forma:

> bartlett.test (memoria ~ grupos)


Resultados e interpretación

Tras introducir la función y pulsar la tecla Intro, se obtendrá a continuación los resultados. La interpretación es similar que la que se mostró en la entrada anterior: lo deseable para poder realizar estadísticos potentes es establecer la homocedasticidad; por lo que este test debería ser superior a 0,050.


  • El test de Bartlett es congruente con el mismo test que se realizó en la entrada anterior para verificar la igualdad de varianzas entre las poblaciones. Al ser un valor superior a 0,050 se asume la homocedasticidad.

Seguir aprendiendo

En la siguiente entrada vamos a comenzar a ver la familia de test para comparar dos poblaciones o grupos con una (o varias) variable(s) dependiente(s). Puedes hacer clic en la siguiente imagen para acceder al contenido directamente, comenzando por el contraste T de Student:



Jacob Sierra Díaz y Alti

viernes, 8 de noviembre de 2024

R - Estadística | Test de homocedasticidad

Anteriormente hemos visto la manera de realizar un diagrama de cajas conjunto con dos grupos. Puedes hacer clic en el siguiente botón para acceder a este contenido y repasar los contenidos. En la entrada, también hemos visto que a veces un análisis visual debe estar verificado con un test de contraste de hipótesis de la homocedasticidad o igualdad de varianzas.



La igualdad de varianzas se puede contrastar con la función var.test (...). En la hipótesis nula se establece la igualdad de varianzas entre dos grupos (p > 0,050, que en este caso es lo deseable). Por el contrario, la hipótesis alternativa establece que no hay igualdad de varianzas (p < 0,050). Para aprender a usarlo en el entorno R usaremos el mismo caso práctico de la entrada anterior en el que ese extrajo los diagramas de cajas en dos grupos.


Caso práctico

Un estudio ha comparado el uso de una vitamina para mejorar el rendimiento de una prueba de memoria. Para ello, se ha empleado a un grupo de participantes de más de 50 años que están matriculados en un programa formativo en una universidad. El primer grupo recibió una pastilla con la vitamina y el segundo grupo recibió una pastilla sin la vitamina (placebo). A continuación, se procedió a realizar la prueba de memoria. El resultado de esta prueba es un valor que oscila entre 0 y 50, siendo el 0 la peor calificación y 50 la mejor. Se quiere comprobar el supuesto de homocedasticidad con un test de contraste de hipótesis.

Los datos de los resultados de la prueba se muestran a continuación:
    - Grupo experimental: 28,5; 19,5; 22,8; 25,9; 14,5; 23,3; 24,5; 26,4; 28,1; 29,6; 25,7; 21,9
    - Grupo control: 34,5; 26, 36,5; 35,7; 29,5; 26,9; 25,7; 34,8; 29,9; 19,6; 17,4; 21,9


Para este ejemplo, se empleará directamente el entorno R (versión 4.3.1) en un ordenador MacBook Pro (con sistema operativo MacOS Ventura). Este mismo proceso se puede hacer en un ordenador con sistema operativo Windows. Por supuesto, este mismo proceso se puede ejecutar en RStudio. Los datos se introducirán directamente en la consola de R mediante dos variables vectoriales con los nombres experimental y  control respectivamente.


Procedimiento

En primer lugar, se introducirán los datos en modo de variable vectorial. Esta vez debemos crear dos variables vectoriales; una para el grupo experimental y otra distinta para el grupo control. Recordemos que en R debemos separar cada dato con comas y la separación decimal irá con puntos. En este caso, el orden de los datos no importa, aunque mantendremos el mismo que se indicó en el enunciado

> experimental = c(28.5, 19.5, 22.8, 25.9, 14.5, 23.3, 24.5, 26.4, 28.1, 29.6, 25.7, 21.9)

> control = c(34.5, 26, 36.5, 35.7, 29.5, 26.9, 25.7, 34.8, 29.9, 19.6, 17.4, 21.9)


Para solicitar el un análisis de homocedasticidad (F) emplearemos la función var.test (var1, var2, ratio = 1), donde var1 es el nombre de los datos del primer grupo ("experimental" en este caso), var2 es el nombre de los datos del segundo grupo ("control" en este caso) y ratio sirve para especificar la hipótesis nula, que, normalmente, se usa 1 porque es el código para contrastar la igualdad de varianzas poblacionales. Para nuestro ejemplo, la función quedará de esta forma:

> var.test (experimental, grupo, ratio = 1)


Resultados e interpretación

Tras introducir la función y pulsar la tecla Intro, se obtendrá debajo los resultados. Lo importante es observar el p-valor y ver si este es mayor de 0,050 (lo deseable). En la siguiente ilustración, se resume de manera práctica y sencilla el contraste de hipótesis:

  • Aunque, tal y como se vio en el diagrama de cajas para los dos grupos (entrada anterior) parecía apuntar que había desigualdad de varianzas, el test estadístico de homogeneidad sugiere que sí que existe la igualdad de varianzas ya que superior a 0,050.

Seguir aprendiendo

En la siguiente entrada veremos otro test para analizar la igualdad de varianzas: el test de Bartlett. Este test se suele emplear cuando hay más de dos grupos o para verificar el supuesto de homocedasticidad con otra prueba. Puedes acceder a este procedimiento pulsando sobre el siguiente botón naranja.



Jacob Sierra Díaz y Alti

jueves, 7 de noviembre de 2024

R - Estadística | Análisis visual de la homocedasticidad

En la entrada anterior vimos la forma de crear un diagrama de cajas básico con el entorno de R. Puedes hacer clic en el siguiente botón para acceder a ese contenido y refrescar conocimientos. Entre las utilidades que tiene el diagrama de cajas se destaca la de analizar la homocedasticidad o la igualdad de varianzas.



No es objeto de esta entrada profundizar en el concepto de homocedasticidad. Se trata de la condición en la que los errores de un modelo de regresión presentan una varianza constante con respecto a la variable independiente (predictor). La homocedasticidad es un supuesto que se tiene que confirmar para poder hacer algunos análisis estadísticos (García-Pérez, 2015). En esta entrada veremos la forma de hacer un diagrama de caja teniendo en cuenta una misma variable dependiente dividida en dos grupos (variable independiente).


Caso práctico

Un estudio ha comparado el uso de una vitamina para mejorar el rendimiento de una prueba de memoria. Para ello, se ha empleado a un grupo de participantes de más de 50 años que están matriculados en un programa formativo en una universidad. El primer grupo recibió una pastilla con la vitamina y el segundo grupo recibió una pastilla sin la vitamina (placebo). A continuación, se procedió a realizar la prueba de memoria. El resultado de esta prueba es un valor que oscila entre 0 y 50, siendo el 0 la peor calificación y 50 la mejor. Se quiere comprobar el supuesto de homocedasticidad de ambos grupos visualmente con el diagrama de cajas.

Los datos de los resultados de la prueba se muestran a continuación:
    - Grupo experimental: 28,5; 19,5; 22,8; 25,9; 14,5; 23,3; 24,5; 26,4; 28,1; 29,6; 25,7; 21,9
    - Grupo control: 34,5; 26, 36,5; 35,7; 29,5; 26,9; 25,7; 34,8; 29,9; 19,6; 17,4; 21,9


Para este ejemplo, se empleará directamente el entorno R (versión 4.3.1) en un ordenador MacBook Pro (con sistema operativo MacOS Ventura). Este mismo proceso se puede hacer en un ordenador con sistema operativo Windows. Por supuesto, este mismo proceso se puede ejecutar en RStudio. Los datos se introducirán directamente en la consola de R mediante dos variables vectoriales con los nombres experimental y  control respectivamente.


Procedimiento

En primer lugar, se introducirán los datos en modo de variable vectorial. Esta vez debemos crear dos variables vectoriales; una para el grupo experimental y otra distinta para el grupo control. Recordemos que en R debemos separar cada dato con comas y la separación decimal irá con puntos. En este caso, el orden de los datos no importa, aunque mantendremos el mismo que se indicó en el enunciado

> experimental = c(28.5, 19.5, 22.8, 25.9, 14.5, 23.3, 24.5, 26.4, 28.1, 29.6, 25.7, 21.9)

> control = c(34.5, 26, 36.5, 35.7, 29.5, 26.9, 25.7, 34.8, 29.9, 19.6, 17.4, 21.9)

Se recuerda que una vez introducido los datos, con invocar (para este caso) el nombre "experimental" o "control" los valores introducidos en la respectiva variable. Además, usando la función length (...) nos dirá el número total de casos en las variables (en otras palabras, la n). Por ejemplo, para saber el número de participantes en la primera variable del grupo experimental escribiremos la función:

> length (experimental)
[1] 12



Ahora, para solicitar el diagrama de caja  (box plot) conjunto es necesario crear dos nuevas variables vectoriales:
- La primera de ellas es relativa a los grupos y se llamará grupos. En ella tendremos que usar la función rep ("1", n) donde el "1" es el valor que se repetirá y que indicará el orden del grupo (al haber dos grupos el primer rep debe ser "1" y el segundo debe ser "2") y la n es el tamaño muestral de cada grupo. Entonces:

> grupos = c(rep ("1", 12), rep ("2", 12))


- La segunda variable será relativa a todo el conjunto de datos. Para ello, juntaremos en una única variable el grupo experimental y el grupo control. Le vamos a poner el nombre de memoria ya que así, tendremos todo el conjunto de datos en una sola variable (sin separar por grupos).

> memoria = c(experimental, control)


- Ahora ya podremos solicitar el diagrama de cajas con la función boxplot (...). Dentro del paréntesis tendremos que poner primero el conjunto de todos los datos (que, en este ejemplo, ha recibido el nombre de "memoria"), seguido del símbolo de la virgulilla (~) junto con la variable relativa a los grupos. En la siguiente ilustración se explica cómo se acciona este caracter en teclados de Mac y Windows. Podemos complementar esta función del diagrama de cajas con los códigos de colores (col = nº), que se mostró en la entrada anterior relativa al diagrama de cajas básico. Entonces, la función quedará de esta forma:

> boxplot (memoria ~ grupos, col = 3)


Resultados e interpretación

Al darle a la tecla Intro, se obtendrá el box plot compartido que servirá para analizar visualmente la varianza entre los dos grupos, tal y como se muestra a continuación:


  • Visualmente se observa que el grupo control (2 en el diagrama) tiene una mayor varianza que el grupo experimental (1) puesto que el tamaño general del diagrama es mucho más grande. No obstante, se requieren pruebas estadísticas de contraste que permitan determinar si hay homocedasticidad o igualdad de varianzas.

Fuente bibliográfica

Referencia en estilo APA-7: 
  • García-Pérez, A. (2015). La interpretación de los dato: una introducción a la Estadística Aplicada. Librería UNED.

Seguir aprendiendo

En realidad, los box plot sirven principalmente para analizar visualmente la homocedasticidad. En la siguiente entrada veremos cómo llevar a cabo pruebas estadísticas para el análisis de homocedasticidad. Puedes pulsar en el siguiente botón para acceder al contenido:


Jacob Sierra Díaz y Alti