Calculer la statistique K-S
Écrivez une fonction qui calcule la statistique de Kolmogorov–Smirnov à partir de deux jeux de données, data1 et data2, où data2 contient des échantillons issus de la distribution théorique à laquelle vous comparez vos données. Notez que cela signifie que nous utilisons des hacker stats pour calculer la statistique K-S pour un jeu de données et une distribution théorique, et non la statistique K-S pour deux jeux de données empiriques. Pratique : la fonction que vous venez de sélectionner pour calculer les valeurs de l’ECDF formelle est dcst.ecdf_formal().
Cet exercice fait partie du cours
Études de cas en pensée statistique
Instructions
- Calculez les valeurs des coins convexes de l’ECDF formelle pour
data1avecdcst.ecdf(). Stockez les résultats dans les variablesxety. - Utilisez
dcst.ecdf_formal()pour calculer les valeurs de la CDF théorique, déterminée à partir dedata2, aux coins convexesx. Stockez le résultat dans la variablecdf. - Calculez les distances entre les coins concaves de l’ECDF formelle et la CDF théorique. Stockez le résultat dans
D_top. - Calculez la distance entre les coins convexes de l’ECDF formelle et la CDF théorique. Notez que vous devrez soustraire
1/len(data1)deypour obtenir la valeur deyau coin convexe. Stockez le résultat dansD_bottom. - Renvoyez la statistique K-S comme le maximum de toutes les entrées de
D_topetD_bottom. Vous pouvez passerD_topetD_bottomensemble sous forme de tuple ànp.max()pour ce faire.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
def ks_stat(data1, data2):
# Compute ECDF from data: x, y
# Compute corresponding values of the target CDF
cdf = ____
# Compute distances between concave corners and CDF
D_top = ____ - ____
# Compute distance between convex corners and CDF
D_bottom = ____ - ____ + ____/____
return np.max((D_top, D_bottom))