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