lunes, 11 de noviembre de 2024

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

miércoles, 6 de noviembre de 2024

R - Estadística | Los diagramas de cajas (Box plot)

En la entrada anterior vimos dos test estadísticos para contrastar la hipótesis de normalidad en el entorno de R: el test K-S y el test de S-W. Puedes hacer clic en el siguiente botón para acceder a dicha entrada y recordar el procedimiento. 



La normalidad de los datos de una muestra también se puede estudiar de manera visual. Uno de los gráficos que se suelen usar para ello es el conocido como diagrama de caja y bigotes o simplemente box plot (García-Pérez, 2015). Este diagrama es muy fácil de generar en R y puede ser un buen complemento a los test de normalidad.


Caso práctico

Se ha estudiado la nieve acumulada (en cm) en varios pueblos de la Serranía Conquense: 24,9; 16,6; 26,4; 25; 19,3; 16,3; 15,7; 24,4; 19; 19,9; 9,9 y 17,4. Se desea analizar el supuesto de normalidad de manera visual a través de un box plot.

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. Además, este mismo ejemplo se puede hacer, si se prefiere, en la aplicación RStudio. Como los datos son tan pocos, se introducirán directamente en una variable vectorial con el nombre nieve.


Procedimiento

En primer lugar, se introducirán los datos en modo de variable vectorial. El nombre que se ha propuesto para este caso práctico es nieve y los datos seguirán el orden del enunciado. Téngase en cuenta que la separación de los valores debe ir con comas y la separación decimal con puntos.

> nieve = c(24,9, 16.6, 26.4, 25, 19.3, 16.3, 15.7, 24.4, 19, 19.9, 9.9, 17.4)

Ahora, con tan solo invocar el nombre "nieve", R nos lanzará los valores introducidos en dicha variable vectorial. 


Para solicitar el diagrama box plot, se empleará la función boxplot (...). Ahora debemos especificar la variable objeto de estudio que contiene los datos dependientes y la función col = seguido de un número que corresponde con un color. El código numérico con el color se muestra en la siguiente imagen. Para este ejemplo, la función quedará:

> boxplot (nieve, col = 4)



Resultados e interpretación

En una ventana nueva, a parte de la consola de R, saldrá el diagrama de caja con el color seleccionado. De esta forma se puede analizar visualmente si estos datos proceden de una distribución normal. No es objeto de esta entrada explicar la forma de interpretar este diagrama. Sin embargo, se puede decir que hay que ver que el diagrama sea lo más asimétrico posible (que significará que será lo más cercano a una distribución normal). A diferencia de los histogramas, que se requiere al menos un tamaño muestral de más de 30 sujetos o elementos para que sea válida su interpretación, los diagramas de cajas se pueden efectuar con muy poca muestra (Rodríguez, 2024).
  • Para este ejemplo, podemos concluir que no deberíamos atrevernos a tomar una decisión de normalidad ya que el diagrama puede ser asimétrico. Por tanto, se precisaría efectuar el test de S-W para confirmar que los datos de esta variable no siguen una distribución normal.

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.
  • Rodríguez, M. (2024). Interpretación de los gráficos de caja en el análisis descriptivo e inferencial. Recuperado de www.qvision.es. 

Seguir aprendiendo

En realidad, los box plot sirven principalmente para analizar visualmente la homocedasticidad. En la siguiente entrada veremos cómo poder hacer un diagrama de cajas cuando tenemos dos grupos; es decir, una misma variable dependiente en dos grupos. Puedes hacer clic en el siguiente botón para acceder a mencionado contenido:



Jacob Sierra Díaz y Alti

martes, 5 de noviembre de 2024

R - Estadística | Test estadísticos básicos de normalidad

Existen dos test principales para contrastar la normalidad de una muestra de datos: el test de Kolmogorov-Smirnov (test K-S) y el test de Shapiro-Wilk (test S-W). El primero de los citados se emplea para tamaños muestrales (n) grandes; algunos autores y manuales sitúan esta cifra entorno a los 50 participantes. No obstante, sin ánimo de entrar en detalles aquí, el test de Shapiro-Wilk es el más potente de los dos para detectar la no normalidad de los datos (García-Pérez, 2015). De hecho, este segundo test se suele emplear en muestras reducidas. 

Aquí es el investigador o el analista de datos el que deberá decidir qué test quiere emplear. En muchas ocasiones, se suelen ejecutar los dos y corroborar que los p-valores sean mayores o menores a 0,050. Hoy vamos a aprender a realizar este test en el entorno de R y para entenderlo mejor, usaremos un ejemplo ficticio.


Caso práctico

Doce participantes han realizado un test de esfuerzo físico que consistía en mantener una plancha el mayor tiempo posible (echándose en el suelo boca abajo, doblando los codos 90º y manteniendo la cabeza en línea recta con todo el cuerpo). Los resultados obtenidos han sido el tiempo en segundos y milisegundos que cada participante ha aguantado en plancha: 17,3; 8,3; 11; 7; 13,2; 12; 13,3; 15,2; 17,1; 18,4; 14,5 y 10,7. ¿Podemos aceptar la normalidad de esta muestra?

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). Por supuesto, este mismo proceso se puede hacer en un ordenador Mac. Además, este mismo ejemplo se puede hacer, si se prefiere, en la aplicación RStudio. Como los datos son tan pocos, se introducirán directamente en una variable vectorial con el nombre esfuerzo.


Procedimiento

En primer lugar, se introducirán los datos en modo de variable vectorial. El nombre que se ha propuesto para este caso práctico es esfuerzo y los datos seguirán el orden del caso práctico. Téngase en cuenta que la separación de los valores debe ir con comas y la separación decimal con puntos.

> esfuerzo = c(17.3, 8.3, 11, 7, 13.2, 12.0, 13.3, 15.2, 17.1, 18.4, 14.5, 10.7)


Ahora, con tan solo invocar el nombre "esfuezo", R nos lanzará los valores introducidos en dicha variable vectorial. 

En primer lugar, solicitaremos el test de Kolmogorov-Smirnov con la función ks.test (...). Ahora debemos especificar la variable objeto de estudio que contiene los datos dependientes y las instrucciones "pnorm", seguido de mean (...) y sd (...) en el que pondremos también los nombres de la variable objeto de estudio. Por tanto, la función de este test debe quedar de la siguiente forma:

> stem (esfuerzo, "pnorm", mean (esfuerzo), sd (esfuezo))


Para solicitar el test de Shapiro-Wilk simplemente usaremos la función shapiro.test (...). Aquí, a diferencia del otro test, solo tendremos que especificar el nombre de nuestra variable objeto de análisis. En este caso:

> shapiro.test (esfuerzo)


Resultados

Cada vez que ejecutemos (con la tecla Intro) una función, saldrán los resultados. En ambos tests, veremos el nombre de la prueba, el nombre de la variable objeto de estudio, el estadístico D (para el test de K-S) o el W (para el test S-W) y el p-valor. Es el p-valor lo que nos interesará analizar.
  • Cuando el p-valor de ambos test sea mayor de 0,050 podemos asumir que la muestra procede de una distribución normal. Por tanto, un valor mayor de 0,050 será lo deseable en este caso (ya que de esta forma se puede continuar efectuando pruebas estadísticas más potentes).


En este ejemplo, se ha decidido hacer los dos test. Se puede observar en la imagen superior que los p-valores de ambas pruebas son distintos. En concreto, el test de S-W es mucho más restrictivo a la hora de asegurar una distribución normal (observando que el p-valor es más bajo). No obstante, para este ejemplo se puede concluir que la muestra de doce participantes procede de una distribución normal ya que ambas pruebas apuntan al mismo resultado de la hipótesis; en otras palabras, ambar pruebas mantienen la hipótesis nula.


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 la siguiente entrada veremos un complemento a este análisis. Haz clic en el siguiente botón para acceder a cómo hacer en el entorno de R un diagrama de caja (box plot en inglés):



Jacob Sierra Díaz y Alti