Tutoriales de programación - página 18

 

Prueba de bondad de ajuste chi-cuadrado en R


Prueba de bondad de ajuste chi-cuadrado en R

Hola a todos, en la sesión de hoy, nos sumergiremos en las pruebas de bondad de ajuste usando R. Trabajaremos con un par de problemas para comprender mejor el concepto. Si no está familiarizado con las pruebas de bondad de ajuste, le recomiendo ver primero mi video introductorio sobre el tema (enlace provisto arriba).

Comencemos con el primer problema. Una universidad afirma que el 50% de los estudiantes en sus clases de estadística son estudiantes de primer año, el 30% son estudiantes de segundo año, el 10% son juniors y el 10% son seniors. Hemos obtenido una muestra aleatoria simple de 65 estudiantes y la distribución en nuestra muestra es ligeramente diferente de las proporciones declaradas. Queremos determinar si estas diferencias brindan evidencia sólida en contra de la afirmación de la universidad o si podrían deberse a una variabilidad aleatoria.

Para realizar la prueba de bondad de ajuste en R, usaremos la prueba de chi-cuadrado. Abrí el archivo de ayuda para la función chi-square.test, pero por ahora nos centraremos únicamente en las pruebas de bondad de ajuste.

Primero, ingresemos nuestros datos. Crearemos un vector llamado años para almacenar los conteos observados: 28 estudiantes de primer año, 24 de segundo año, 9 de tercer año y 4 de último año.

years <- c ( 28 , 24 , 9 , 4 )

Luego, necesitamos crear un vector de proporciones esperadas bajo la hipótesis nula. En este caso, la hipótesis nula asume que las proporciones declaradas son verdaderas. Llamemos a este vector props y asigne las proporciones: 0.5 para estudiantes de primer año, 0.3 para estudiantes de segundo año, 0.1 para juniors y 0.1 para seniors.

props <- c ( 0.5 , 0.3 , 0.1 , 0.1 )

Ahora, podemos realizar la prueba de chi-cuadrado usando la función chi-square.test. La sintaxis básica es sencilla: chi.square.test(datos, p = proporciones_esperadas). Recuerde incluir p = props para especificar las proporciones esperadas.

result <- chi.square.test ( years , p = props )

La prueba generará los grados de libertad, la estadística de prueba de chi-cuadrado y el valor p. Para este problema, tenemos tres grados de libertad, un estadístico de prueba chi-cuadrado de 3,58 y un valor p de 0,31. Estos resultados coinciden con lo que obtuvimos en el video introductorio.

Con un valor p de 0.31, no tenemos suficiente evidencia para rechazar la hipótesis nula. Por lo tanto, no podemos concluir que las diferencias entre la distribución de nuestra muestra y las proporciones declaradas sean estadísticamente significativas. Los datos son compatibles con la afirmación de la universidad.

Ahora, pasemos al segundo problema. Hemos realizado 200 lanzamientos de un dado y la distribución resultante es la siguiente: 28 unos, 32 dos, y así sucesivamente. Queremos determinar si esta distribución proporciona evidencia de que el dado es injusto.

Seguiremos el mismo proceso que antes. Vamos a crear un vector llamado cuentas para almacenar las cuentas observadas: 28 unos, 30 dos, 22 tres, 31 cuatro, 38 cinco y 51 seis.

counts <- c ( 28 , 30 , 22 , 31 , 38 , 51 )

Ahora, podemos aplicar directamente la prueba de chi-cuadrado a estos conteos.

result <- chi.square.test ( counts )

La prueba generará los grados de libertad, la estadística de prueba de chi-cuadrado y el valor p. En este caso, tenemos cinco grados de libertad, un estadístico de prueba chi-cuadrado de 15,22 y un valor p de 0,009463.

Con un valor p muy pequeño de 0.009463, tenemos suficiente evidencia para rechazar la hipótesis nula. Por lo tanto, podemos concluir que el dado parece estar ponderado y no justo según la distribución observada.

Eso concluye nuestra discusión y aplicación de la prueba de bondad de ajuste de chi-cuadrado usando R. Recuerde, esta prueba nos permite evaluar la compatibilidad de los datos observados con una distribución esperada y hacer inferencias estadísticas basadas en el valor p.

Chi-Squared Goodness-of-Fit Testing in R
Chi-Squared Goodness-of-Fit Testing in R
  • 2020.11.30
  • www.youtube.com
Chi-squared testing is easy with R. Give me just five minutes, and I'll show you how to do it!If this vid helps you, please help me a tiny bit by mashing tha...
 

Prueba de chi-cuadrado para la independencia en R


Prueba de chi-cuadrado para la independencia en R

Hola a todos, en el video de hoy usaremos R para realizar pruebas de chi-cuadrado para la independencia de las variables categóricas. Usaremos la función chi-squared.test para este propósito. Tenga en cuenta que en este video no cubriremos las pruebas de bondad de ajuste, que también emplean la misma función subyacente en R. Si está interesado en aprender sobre las pruebas de bondad de ajuste, tengo un video separado sobre ese tema (enlace proporcionado arriba).

Resolvamos un problema tomado del libro de texto de OpenStax sobre estadística introductoria. El problema involucra a un grupo de voluntarios donde los adultos mayores de 21 años se ofrecen como voluntarios de una a nueve horas por semana para pasar tiempo con una persona mayor discapacitada. El programa recluta voluntarios de tres categorías: estudiantes de colegios comunitarios, estudiantes universitarios de cuatro años y no estudiantes. Disponemos de una tabla de contingencia, o tabla de doble entrada, que muestra la distribución de los voluntarios en función de dos variables categóricas: el tipo de voluntario y el número de horas de voluntariado, categorizadas como de una a tres horas, de cuatro a seis horas y de siete a nueve horas.

Ahora, cambiemos a R e ingresemos los datos y ejecutemos una prueba de chi-cuadrado para determinar si estas variables categóricas están asociadas entre sí o no.

Para ingresar los datos, crearemos una matriz llamada voluntarios usando la función de matriz. Introduciremos los datos por filas, de izquierda a derecha y de arriba a abajo.

volunteers <- matrix ( c ( 111 , 96 , 48 , 96 , 133 , 61 , 91 , 150 , 53 ) , nrow = 3 , byrow = TRUE )

A continuación, agreguemos nombres de filas y nombres de columnas para que la matriz sea más interpretable.

row.names ( volunteers ) <- c ( "Community College Students" , "Four-Year College Students" , "Non-Students" ) colnames ( volunteers ) <- c ( "1-3 hours" , "4-6 hours" , "7-9 hours" )

Ahora, tenemos una tabla visualmente atractiva que muestra la distribución de voluntarios entre las diferentes categorías.

Para realizar la prueba de chi-cuadrado, usaremos la función chi.square.test. Asignar el resultado a una variable, como modelo, nos permite acceder a información adicional si es necesario.

model <- chi.square.test ( volunteers )

Para ver los resultados de la prueba, simplemente escriba el nombre de la variable, modelo.

model

La salida de la prueba incluirá la estadística de prueba chi-cuadrado, los grados de libertad y el valor p. Para este ejemplo, obtenemos un estadístico de prueba chi-cuadrado de 12,991, 2 grados de libertad y un valor p que suele ser muy pequeño.

Es importante tener en cuenta que el objeto del modelo contiene información adicional, como los recuentos de celdas esperados y los residuos. Se puede acceder a estos para un análisis más detallado si es necesario.

Otra forma de realizar la prueba de chi-cuadrado es convirtiendo la matriz en una tabla y utilizando la función de resumen.

vol_table <- as.table ( volunteers ) summary ( vol_table )

Este enfoque también proporcionará la estadística de prueba de chi-cuadrado, los grados de libertad y el valor p.

Eso cubre el proceso de realizar pruebas de chi-cuadrado para la independencia de variables categóricas usando R. Recuerde, la prueba de chi-cuadrado nos ayuda a determinar si existe una asociación significativa entre dos variables categóricas en función de las frecuencias observadas y esperadas.

Chi-Squared Testing for Independence in R
Chi-Squared Testing for Independence in R
  • 2020.12.04
  • www.youtube.com
Let's learn how to use the chisq.test() function in R to check the independence of categorical variables. If this vid helps you, please help me a tiny bit by...
 

Prueba de bondad de ajuste con R: ejemplo


Prueba de bondad de ajuste con R: ejemplo

Hoy usaremos R para abordar un problema típico de las pruebas de bondad de ajuste. Aquí lo tienes:

En una muestra aleatoria de 10 familias de tres hijos, la distribución de las niñas fue la siguiente:

  • 12 familias no tenían niñas
  • 31 familias tenían una niña
  • 42 familias tenían dos niñas
  • 15 familias tenían tres niñas

La pregunta es: ¿Es plausible que el número de niñas en tales familias siga una distribución binomial con parámetros n=3 yp=0.5?

Cambiemos a R, donde ya ingresé los valores observados. Para continuar, necesitamos calcular los valores esperados y compararlos con los conteos observados. Comenzaremos con las proporciones esperadas, que se pueden obtener usando la función dbinom en R.

Estas son las proporciones esperadas para tener 0, 1, 2 o 3 niñas en una familia:

  • 12,5% para 0 niñas
  • 37.5% para 1 niña
  • 37,5% para 2 niñas
  • 12,5% para 3 niñas

A continuación, calcularemos los recuentos esperados multiplicando las proporciones esperadas por 100 (ya que tenemos 100 familias en total).

Ahora, procedamos con dos enfoques diferentes para resolver este problema. Primero, usaremos la función chisq.test en R, que brinda una respuesta directa al calcular la estadística de prueba y el valor p. Luego, repasaremos los cálculos paso a paso para obtener una comprensión más profunda del proceso.

Usando chisq.test:

observed_counts <- c ( 12 , 31 , 42 , 15 )
expected_proportions <- dbinom ( 0 : 3 , size = 3 , prob = 0.5 )
expected_counts <- expected_proportions * 100
result <- chisq.test ( observed_counts , p = expected_proportions )
p_value <- result $ p.value print ( p_value )

El valor de p obtenido indica la probabilidad de obtener datos tan extremos como los que observamos, asumiendo que la hipótesis nula es cierta. En este caso, el valor p es de aproximadamente 0,07232.

Dado que nuestro nivel de significación se fijó en 0,05 y el valor p es mayor que eso, no tenemos suficiente evidencia para rechazar la hipótesis nula. Podemos concluir que los datos son consistentes con la hipótesis de que el número de niñas en estas familias sigue una distribución binomial con parámetros n=3 y p=0.5.

Ahora, calculemos la estadística de prueba chi-cuadrado manualmente para entender mejor el proceso:

chi_stat <- sum ( ( observed_counts - expected_counts ) ^ 2 / expected_counts )
degrees_of_freedom <- length ( observed_counts ) - 1
p_value_manual <- 1 - pchisq ( chi_stat , df = degrees_of_freedom )
print ( p_value_manual )

El valor p calculado manualmente coincide con el resultado obtenido con chisq.test, lo que confirma nuestro hallazgo anterior de aproximadamente 0,07232.

En resumen, ambos enfoques arrojan la misma conclusión: los datos son consistentes con la hipótesis nula de que el número de niñas en estas familias sigue una distribución binomial con parámetros n=3 y p=0.5.

Goodness of fit testing with R: example
Goodness of fit testing with R: example
  • 2023.01.04
  • www.youtube.com
Is it plausible that a categorical variable was sampled from a particular distribution?If this vid helps you, please help me a tiny bit by mashing that 'like...
 

Pruebas de correlación en R


Pruebas de correlación en R

¡Hola a todos! Hoy, vamos a discutir las pruebas de correlación. Usaré R para esta demostración, pero los conceptos que cubriremos son aplicables universalmente, independientemente de su entorno de trabajo. Por lo tanto, quédese incluso si está utilizando un software diferente.

Para este ejemplo, usaré el conjunto de datos universitarios del paquete islr2. Ya cargué el conjunto de datos y configuré mi tema al mínimo usando el paquete titiverse. Si está interesado en un análisis detallado del conjunto de datos de la universidad, tengo un enlace de video en la descripción.

El conjunto de datos de la universidad consta de 777 observaciones, cada una de las cuales representa una universidad de 1995. Contiene varias variables, como la designación pública o privada, la inscripción de estudiantes universitarios a tiempo completo y la tasa de graduación.

Nuestro enfoque será determinar si existe una correlación estadísticamente significativa entre el logaritmo de la matrícula de pregrado de tiempo completo y la tasa de graduación en las universidades públicas. Queremos saber si esta relación aparente probablemente se deba a una probabilidad aleatoria o si es una tendencia significativa a la que debemos prestar atención.

Para comenzar, creé un diagrama de dispersión usando ggplot, con la tasa de graduación en el eje y y el logaritmo de la matrícula de pregrado a tiempo completo en el eje x. También he filtrado las escuelas privadas, así que solo analizamos las universidades públicas.

Ahora, abordemos el logaritmo. No se deje intimidar por ello; simplemente nos ayuda a interpretar la escala de los datos. En este caso, estamos usando un logaritmo en base 10, que nos dice la cantidad de ceros al final de un valor. Por ejemplo, 3,0 en una escala logarítmica es 10^3, que es 1000. Al tomar el logaritmo, logramos una distribución más uniforme y una relación más o menos lineal entre las variables.

La correlación mide la fuerza de una relación generalmente lineal entre dos variables cuantitativas. En este caso, tenemos una correlación positiva de aproximadamente 0,22, lo que indica que a medida que aumenta la matrícula de pregrado de tiempo completo, la tasa de graduación también tiende a aumentar. Esta relación positiva entre el tamaño de la universidad y la tasa de graduación puede parecer sorprendente, pero vale la pena explorarla más a fondo.

La correlación es relativamente débil, ya que las correlaciones van de -1 a 1. Una correlación de -1 representa una relación negativa perfecta, mientras que una correlación de 1 representa una relación positiva perfecta.

Ahora, realicemos una prueba de correlación en R para determinar si esta correlación es estadísticamente significativa. La sintaxis para ejecutar una prueba de correlación es similar a la de calcular la correlación. Al utilizar la función cor.test con las dos variables de interés, obtenemos la correlación e información adicional.

En este caso, los resultados de la prueba proporcionan un valor p de 0,001, lo que sugiere que si no hubiera correlación entre estas variables en la población, la correlación observada ocurriría por casualidad solo alrededor del 0,1 % de las veces. Una probabilidad tan baja indica que la correlación que observamos es estadísticamente significativa, y podemos concluir que existe una correlación entre el logaritmo de la matrícula de pregrado de tiempo completo y la tasa de graduación en las universidades públicas.

Ahora, profundicemos un poco más en la prueba en sí. Examina si la correlación observada en los datos de la muestra podría atribuirse razonablemente al azar. La prueba asume una relación lineal entre las variables y la independencia de las observaciones, lo que la hace inadecuada para datos de series de tiempo. Además, asume que los datos siguen una distribución normal bivariada, pero las desviaciones de la normalidad perfecta son generalmente aceptables.

Es importante tener en cuenta que esta prueba de correlación prueba específicamente la hipótesis nula de que la correlación de la población es cero. No se puede utilizar para probar correlaciones distintas de cero.

Debajo del capó, la prueba utiliza una estadística de prueba llamada R, calculada como la correlación de muestra observada. Este estadístico sigue una distribución t de Student con n-2 grados de libertad, suponiendo que se asume la hipótesis nula de correlación cero. Los grados de libertad, indicados como n-2, dependen del tamaño de la muestra (n) y están determinados por el número de observaciones independientes disponibles para la estimación.

La prueba también proporciona un intervalo de confianza para la correlación de la población. En este caso, el intervalo de confianza del 95 % oscila entre 0,087 y 0,354. Este intervalo nos da un rango de valores plausibles para la correlación de la población basada en nuestros datos de muestra. Dado que el intervalo no incluye el cero, podemos inferir que es probable que la correlación de la población sea positiva.

Vale la pena señalar que correlación no implica causalidad. El hecho de que observemos una correlación entre dos variables no significa que una variable esté causando que la otra cambie. La correlación simplemente indica una relación entre las variables, pero se necesitan investigaciones y análisis adicionales para establecer la causalidad.

Para visualizar la correlación, podemos agregar una línea de regresión a nuestro diagrama de dispersión. La línea de regresión representa la línea de mejor ajuste a través de los puntos de datos, lo que indica la tendencia general de la relación. Al usar la función geom_smooth en ggplot con el argumento method = "lm", podemos agregar una línea de regresión a nuestra gráfica.

Ahora podemos ver la línea de regresión ajustada a los puntos de datos. Proporciona una representación visual de la relación positiva entre el logaritmo de la matrícula de pregrado de tiempo completo y la tasa de graduación en las universidades públicas.

En resumen, hemos realizado una prueba de correlación para determinar si existe una relación estadísticamente significativa entre el logaritmo de la matrícula de pregrado de tiempo completo y la tasa de graduación en las universidades públicas. Los resultados de la prueba indicaron una correlación positiva con un valor de p de 0,001, lo que sugiere una relación significativa. Sin embargo, recuerde que correlación no implica causalidad, y se necesita más análisis para establecer relaciones causales.

Las pruebas de correlación son una herramienta valiosa en el análisis estadístico, que nos permite explorar relaciones entre variables e identificar posibles tendencias o asociaciones. Nos ayuda a tomar decisiones informadas y sacar conclusiones significativas basadas en datos.

Correlation testing in R
Correlation testing in R
  • 2023.03.29
  • www.youtube.com
Does a sample correlation imply a population correlation, or could the observed data just be due to random chance? Let's get into it!If this vid helps you, p...
Razón de la queja: