Last active
June 17, 2020 02:36
-
-
Save mauroeparis/1604d1277412cba1725c3b02e6fe6ae2 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# %% | |
""" | |
3. Distribuciones | |
----------------- | |
Realizar una prueba de Kolmogorov-Smirnof para comprobar analíticamente | |
si estas variables responden la distribución propuesta en el ejercicio | |
anterior. Hint: podés usar | |
https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.kstest.html | |
pero hay que tener en cuenta que si la distribución es "norm", | |
entonces va a comparar los datos con una distribución normal con media | |
0 y desviación estándar 1. Se puede utilizar la distribución sobre todos | |
los datos o sólo sobre Latinoamérica. | |
""" | |
# %% | |
from scipy import stats | |
la_dist = dataset['Latin America & the Caribbean' == dataset['region']]['pf_identity'] | |
la_dist = la_dist.dropna() # Remove missing values. | |
la_dist = la_dist.subtract(la_dist.mean()) # Center data around 0 (zero) | |
# %% | |
# lambda function to center the distribution around zero | |
center_zero = lambda x: x-x.mean() | |
# scipy provides us with funtions to make samples of diferent distributions | |
# we can see them here: | |
# https://docs.scipy.org/doc/scipy-0.14.0/reference/stats.html#continuous-distributions | |
r = center_zero(stats.beta.rvs(0.2, 0.5, size=1000)) | |
# stats.beta.rvs(0.2, 0.5, size=1000) means that we will create a Beta | |
# distribution with a=0.2, b=0.5 and it will have 1000 samples. | |
# r = stats.norm.rvs(size=1000) Normal | |
# r = stats.norm.rvs(size=1000) Normal | |
# We can now compare the distributions like so: | |
seaborn.kdeplot(la_dist, label="LA distribution") | |
seaborn.kdeplot(r, label="Beta distribution") | |
# %% | |
stats.norm.rvs(size=1000) | |
# %% | |
# Run K-S test with the latinoamerica distribution and beta distribution | |
print(stats.kstest(la_dist, 'beta', args=[0.2, 0.5])) | |
# %% | |
""" | |
La prueba K-S compara la distribucion acumulada de una distribución con otra. | |
En nuestro ejemplo comparamos a de Latinoamerica con `pf_identity` con | |
una distribución Beta. El valor que nos da la celda anterior podemos ver que | |
el p-value es muy grande lo que quiere decir es que es muy poco confiable decir | |
que las distribuciones son parecidas. | |
No tenemos la comparacion para `hf_score` (no sé si deberiamos adivinar primero | |
y despues fijarnos en las posibilidades de scipy) y para `pf_identity` global | |
elegimos una distribucion bimodal pero en scipy no tenemos distribuciones | |
bimodales. solo hay algunas distribuciones "dobles" (`dgamma`, `dweibull`). | |
Probé con varias distribuciones pero no pude hacer que verdaderamente se | |
parezcan. | |
Acá estan todas: | |
https://docs.scipy.org/doc/scipy-0.14.0/reference/stats.html#continuous-distributions | |
""" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment