Índice
Una forma de evaluar la evidencia que proporcionan los datos contra una hipótesis
Una prueba estadística proporciona un mecanismo para tomar decisiones cuantitativas sobre un proceso o procesos. Es una forma de evaluar la evidencia que proporcionan los datos frente a una hipótesis.
En esta ocasión vamos a poder realizar las pruebas estadísticas con Python.
He creado un diagrama de flujo que muestra qué prueba estadística usar según sus datos y requisitos de prueba. En esta publicación, me enfocaré en cómo realizar estas pruebas en Python.
Una prueba estadística examina dos hipótesis opuestas sobre una población: la hipótesis nula y la hipótesis alternativa.
- La hipótesis nula establece que un parámetro de población (como la media, la desviación estándar, etc.) es igual a un valor hipotético.
- La hipótesis alternativa establece que un parámetro de población es menor, mayor o diferente que el valor hipotetizado en la hipótesis nula.
La prueba Z de una muestra se utiliza para comparar la media poblacional con una muestra. Se debe conocer la desviación estándar de la población para realizar la prueba Z y los datos deben estar distribuidos normalmente.
x = sample mean mu = population mean s = population standard deviation n = sample sizez = (x - mu)/(s / np.sqrt(n)) p = 1 - stats.norm.cdf(z) if p < alpha # Reject Null Hypothesis if p > alpha # Failed to reject Null Hypothesis
Se utiliza una prueba T de muestra para comparar la media de la población con una muestra. Esta prueba es similar a la prueba Z, ya que verifica lo mismo.
La diferencia entre estas dos pruebas es que la prueba Z necesita una desviación estándar de la población, pero la prueba T necesita una desviación estándar de la muestra.
Si el tamaño de la muestra es superior a 30, siempre se utiliza la prueba T de una muestra independientemente de la desviación estándar de la población conocida.
from scipy import stats t_stat, pval = stats.ttest_1samp(sample, popmean) critical_value = stats.t.ppf(1 - 0.05, df) If t_stat > critical_value Reject Null Hypothesis p = 1 - stats.t.cdf(t_stat, df) If p < alpha # Reject Null Hypothesis
La prueba Z de una muestra para la proporción se utiliza para comparar una proporción observada con una teórica. La prueba de proporción sólo se puede realizar con datos categóricos.
p = proportion in sample p0 = theoretical proportion z_stat = (p - p0) / np.sqrt(p0 * (1 - p0) / n) p = 1 - stats.norm.cdf(z) if p < alpha # Reject Null Hypothesis if p > alpha # Failed to reject Null Hypothesis
La prueba Z de dos muestras para la proporción se utiliza para comparar dos proporciones con una proporción teórica.
p1 = first proportion in sample p2 = second proportion in sample p0 = theoretical proportion z_stat = ((p1 - p2) - 0) / np.sqrt(p(1-p)((1/n1) + (1/n2))) p = 1 - stats.norm.cdf(z) if p < alpha # Reject Null Hypothesis if p > alpha # Failed to reject Null Hypothesis
La prueba T de dos muestras se utiliza para comparar dos muestras. Hay dos tipos de prueba T de dos muestras, una prueba T emparejada y una prueba T combinada.
Se utiliza una prueba T pareada cuando ambas muestras tienen variaciones diferentes.
t_stat, pval = stats.ttest_ind(sample1, sample2, equal_var=False) critical_value = stats.t.ppf(1 - 0.05, df) If t_stat > critical_value Reject Null Hypothesis p = 1 - stats.t.cdf(t_stat, df) If p < alpha # Reject Null Hypothesis
La prueba T combinada se utiliza cuando ambas muestras tienen varianzas iguales o casi iguales.
t_stat, pval = stats.ttest_ind(sample1, sample2) critical_value = stats.t.ppf(1 - 0.05, df) If t_stat > critical_value Reject Null Hypothesis p = 1 - stats.t.cdf(t_stat, df) If p < alpha # Reject Null Hypothesis
La prueba Z de dos muestras se utiliza para comparar las medias de dos poblaciones.
x1 = sample1 mean x2 = sample2 mean n1 = sample1 size n2 = sample2 size sigma1 = standard deviation of sample1 sigma2 = standard deviation of sample2 delta = hypothesized difference between the population means (0 if testing for equal means) mu = population mean s = population standard deviation n = sample size z_stat = (x1 - x2 - delta)/np.sqrt((sigma1**2/n1) + (sigma2**2/n2)) p = 1 - stats.norm.cdf(z_stat) if p < alpha # Reject Null Hypothesis if p > alpha # Failed to reject Null Hypothesis
La prueba de chi-cuadrado se utiliza para comparar la relación entre las dos variables categóricas (nominales) en una tabla de contingencia.
Hay tres tipos de pruebas de chi-cuadrado: la prueba de independencia, la bondad de ajuste y la prueba de homogeneidad. Esta prueba se aplica a una tabla de contingencia de valores en el conjunto de datos.
from scipy.stats import chi2_contingency table = np.array([[16, 18, 16], [32, 24, 16]]).T #contingency table stat, p, dof, expected = chi2_contingency(table) critical_value = chi2.ppf(0.95, dof) if stat >= critical_value # Reject Null Hypothesis if p <= alpha # Reject Null Hypothesis
Anova
La prueba ANOVA se utiliza para comparar medias entre tres o más variables. Es lo mismo que la prueba T independiente para dos muestras.
from statsmodels.formula.api import ols import statsmodels.api as sm anova = ols('var1~var2', data=data).fit() anova_table = sm.stats.anova_lm(anova, type=2) print(anova_table)
Si usa el código anterior e imprime anova_table, obtendrá una tabla ANOVA para interpretar.
df sum_sq mean_sq F PR(>F) var2 3.0 9.5059e+08 3.1686e+08 128.769622 6.720391e-67 Residual 727.0 1.7889e+09 2.4607e+06 NaN NaN p_value = 6.720391e-67 p_value <<<<< alpha Reject Null Hypothesis
Conclusión
Una prueba estadística es una de las habilidades clave de la ciencia de datos. Puede resultar muy difícil elegir una prueba estadística para sus datos.
Mira este enlace para obtener más información sobre pruebas estadísticas con Python.
Gracias por leer este artículo hasta el final.
Añadir comentario