ComeçarComece de graça

Calculando a estatística K-S

Escreva uma função para calcular a estatística de Kolmogorov–Smirnov a partir de dois conjuntos de dados, data1 e data2, em que data2 consiste em amostras da distribuição teórica com a qual você está comparando seus dados. Note que isso significa que estamos usando hacker stats para calcular a estatística K-S para um conjunto de dados e uma distribuição teórica, e não a estatística K-S para dois conjuntos de dados empíricos. Por conveniência, a função que você acabou de selecionar para calcular valores da ECDF formal é dcst.ecdf_formal().

Este exercício faz parte do curso

Estudos de caso em pensamento estatístico

Ver curso

Instruções do exercício

  • Calcule os valores dos cantos convexos da ECDF formal para data1 usando dcst.ecdf(). Armazene os resultados nas variáveis x e y.
  • Use dcst.ecdf_formal() para calcular os valores da CDF teórica, determinada a partir de data2, nos cantos convexos x. Armazene o resultado na variável cdf.
  • Calcule as distâncias entre os cantos côncavos da ECDF formal e a CDF teórica. Armazene o resultado como D_top.
  • Calcule a distância entre os cantos convexos da ECDF formal e a CDF teórica. Observe que você precisará subtrair 1/len(data1) de y para obter o valor de y no canto convexo. Armazene o resultado em D_bottom.
  • Retorne a estatística K-S como o máximo de todas as entradas em D_top e D_bottom. Você pode passar D_top e D_bottom juntos como uma tupla para np.max() para fazer isso.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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))
Editar e executar o código