Python – Prueba Chi-Cuadrado de Pearson

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:

\frac{row\ total\ *\ column\ total}{grand\ total}

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:

\frac{( Observed\_value\ -\ Calculated\_value)^2 }{ Calculated\_value}

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,

critical\ value\ of\ \chi^2\ >=\ calculated\ value\ of\ \chi^2

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *