Cómo realizar una prueba de bondad de ajuste de chi-cuadrado en Python

En este artículo, vamos a ver cómo realizar una prueba de bondad de ajuste de chi-cuadrado en Python

La prueba de bondad de ajuste de chi-cuadrado es una prueba de hipótesis estadística no paramétrica que se utiliza para determinar en qué medida el valor observado de un evento difiere del valor esperado. nos ayuda a comprobar si una variable proviene de una determinada distribución o si una muestra representa una población. La distribución de probabilidad observada se compara con la distribución de probabilidad esperada. 

Hipótesis nula:  Una variable tiene una distribución predeterminada.

Hipótesis alternativas: Una variable se desvía de la distribución esperada.

Ejemplo 1: Uso de la función stats.chisquare()

En este enfoque, usamos el método stats.chisquare() del módulo scipy.stats que nos ayuda a determinar la bondad de ajuste de chi-cuadrado y el valor p. 

Sintaxis: stats.chisquare(f_obs, f_exp)

parámetros:

  • f_obs: este parámetro contiene una array de valores observados.
  • f_exp: este parámetro contiene una array de valores esperados.

En el siguiente ejemplo, también usamos el método stats.ppf() que toma el nivel de significación de los parámetros y los grados de libertad como entrada y nos da el valor del valor crítico de chi-cuadrado. si chi_square_ value > valor crítico, se rechaza la hipótesis nula. si chi_square_ value <= valor crítico, se acepta la hipótesis nula. en el siguiente ejemplo, el valor de chi_square es 5.0127344877344875 y el valor crítico es 12.591587243743977. Como chi_square_ value <=, se acepta la hipótesis nula del valor crítico y se rechaza la hipótesis alternativa.

Python3

# importing packages
import scipy.stats as stats
import numpy as np
  
# no of hours a student studies
# in a week vs expected no of hours
observed_data = [8, 6, 10, 7, 8, 11, 9]
expected_data = [9, 8, 11, 8, 10, 7, 6]
  
  
# Chi-Square Goodness of Fit Test
chi_square_test_statistic, p_value = stats.chisquare(
    observed_data, expected_data)
  
# chi square test statistic and p value
print('chi_square_test_statistic is : ' +
      str(chi_square_test_statistic))
print('p_value : ' + str(p_value))
  
  
# find Chi-Square critical value
print(stats.chi2.ppf(1-0.05, df=6))

Producción:

chi_square_test_statistic is : 5.0127344877344875
p_value : 0.542180861413329
12.591587243743977

Ejemplo 2: Determinación de la estadística de prueba de chi-cuadrado mediante la implementación de la fórmula

En este enfoque, implementamos directamente la fórmula. podemos ver que obtenemos los mismos valores de chi_cuadrado. 

Python3

# importing packages
import scipy.stats as stats
import numpy as np
  
# no of hours a student studies
# in a week vs expected no of hours
observed_data = [8, 6, 10, 7, 8, 11, 9]
expected_data = [9, 8, 11, 8, 10, 7, 6]
  
  
# determining chi square goodness of fit using formula
chi_square_test_statistic1 = 0
for i in range(len(observed_data)):
    chi_square_test_statistic1 = chi_square_test_statistic1 + \
        (np.square(observed_data[i]-expected_data[i]))/expected_data[i]
  
  
print('chi square value determined by formula : ' +
      str(chi_square_test_statistic1))
  
# find Chi-Square critical value
print(stats.chi2.ppf(1-0.05, df=6))

Producción:

chi square value determined by formula : 5.0127344877344875
12.591587243743977

Publicación traducida automáticamente

Artículo escrito por isitapol2002 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 *