La hipótesis estadística Chi-Cuadrado de Pearson es una prueba de independencia entre variables categóricas. En este artículo, realizaremos la prueba usando un enfoque matemático y luego usando el módulo SciPy de Python.
Primero, veamos el enfoque matemático:
La tabla de contingencia:
una tabla de contingencia (también llamada tabulación cruzada) se usa en estadísticas para resumir la relación entre varias variables categóricas. Aquí, tomamos una tabla que muestra la cantidad de hombres y mujeres que compran diferentes tipos de mascotas.
perro | gato | pájaro | total | |
hombres | 207 | 282 | 241 | 730 |
mujeres | 234 | 242 | 232 | 708 |
total | 441 | 524 | 473 | 1438 |
El objetivo de la prueba es concluir si las dos variables (género y elección de mascota) están relacionadas entre sí.
Hipótesis nula:
Comenzamos definiendo la hipótesis nula ( H0 ) que establece que no existe relación entre las variables. Una hipótesis alternativa afirmaría que existe una relación significativa entre los dos.
Podemos verificar la hipótesis por estos métodos:
- Usando el valor p :
Definimos un factor de significancia para determinar si la relación entre las variables es de considerable significancia. Generalmente se elige un factor de significación o valor alfa de 0,05 . Este valor alfa denota la probabilidad de rechazar erróneamente H0 cuando es verdadera. Se elige un valor alfa más bajo en los casos en los que esperamos más precisión. Si el valor p de la prueba resulta ser estrictamente mayor que el valor alfa, entonces H0 se cumple.
- Usando el valor de chi-cuadrado :
Si nuestro valor calculado de chi-cuadrado es menor o igual al valor tabular (también llamado crítico ) de chi-cuadrado, entonces H0 se cumple.
Tabla de valores esperados:
A continuación, preparamos una tabla similar de valores calculados (o esperados). Para hacer esto, necesitamos calcular cada elemento en la nueva tabla como:
La tabla de valores esperados:
perro | gato | pájaro | total | |
hombres | 223.87343533 | 266.00834492 | 240.11821975 | 730 |
mujeres | 217.12656467 | 257.99165508 | 232.88178025 | 708 |
total | 441 | 524 | 473 | 1438 |
Tabla Chi-Cuadrado:
Preparamos esta tabla calculando para cada artículo lo siguiente:
La tabla chi-cuadrado:
observado (o) | calculado (c) | (oc)^2 / c | |
207 | 223.87343533 | 1.2717579435607573 | |
282 | 266.00834492 | 0.9613722161954465 | |
241 | 240.11821975 | 0.003238139990850831 | |
234 | 217.12656467 | 1.3112758457617977 | |
242 | 257.99165508 | 0.991245364156322 | |
232 | 232.88178025 | 0.0033387601600580606 | |
Total | 4.542228269825232 |
De esta tabla obtenemos el total de la última columna, que nos da el valor calculado de chi-cuadrado. Por lo tanto, el valor calculado de chi-cuadrado es 4.542228269825232
Ahora, necesitamos encontrar el valor crítico de chi-cuadrado. Podemos obtener esto de una tabla. Para usar esta tabla, necesitamos conocer los grados de libertad del conjunto de datos. Los grados de libertad se definen como: (nº de filas – 1) * (nº de columnas – 1).
Por lo tanto, los grados de libertad son (2-1) * (3-1) = 2
Ahora, miremos la tabla y encontremos el valor correspondiente a 2 grados de libertad y 0.05 factor de significancia:
El valor tabular o crítico de chi-cuadrado aquí es
5.991
Por eso,
Por lo tanto,
H0
es
aceptado
, es decir, las variables
no haga
tener una relación significativa.
A continuación, veamos cómo realizar la prueba en Python.
Realizando la prueba usando Python (scipy.stats):
SciPy es una biblioteca Python de código abierto, que se utiliza en matemáticas, ingeniería, informática científica y técnica.
Instalación:
pip install scipy
La función chi2_contingency() del módulo scipy.stats toma como entrada la tabla de contingencia en formato de array 2D. Devuelve una tupla que contiene estadísticas de prueba , el valor p , los grados de libertad y la tabla esperada (la que creamos a partir de los valores calculados) en ese orden.
Por lo tanto, necesitamos comparar el valor p obtenido con el valor alfa de 0,05.
from scipy.stats import chi2_contingency # defining the table data = [[207, 282, 241], [234, 242, 232]] stat, p, dof, expected = chi2_contingency(data) # interpret p-value alpha = 0.05 print("p value is " + str(p)) if p <= alpha: print('Dependent (reject H0)') else: print('Independent (H0 holds true)')
Producción :
p value is 0.1031971404730939 Independent (H0 holds true)
Ya que,
valor p > alfa
Por tanto, aceptamos H0, es decir, las variables no tienen una relación significativa.
Publicación traducida automáticamente
Artículo escrito por cosine1509 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA