Gerando réplicas K-S
Agora, você precisa de uma função para gerar réplicas de Kolmogorov–Smirnov a partir de uma distribuição alvo, f. Construa uma função com a assinatura draw_ks_reps(n, f, args=(), size=10000, n_reps=10000) para fazer isso. Aqui, n é o número de pontos de dados, e f é a função que você usará para gerar amostras a partir da CDF alvo. Por exemplo, para testar contra uma distribuição Exponential, você passaria np.random.exponential como f. Essa função geralmente recebe argumentos, que devem ser passados como uma tupla. Então, se você quisesse obter amostras de uma distribuição Exponential com média x_mean, usaria o parâmetro args=(x_mean,). Os argumentos nomeados size e n_reps representam, respectivamente, o número de amostras a serem obtidas da distribuição alvo e o número de réplicas a serem geradas.
Este exercício faz parte do curso
Estudos de caso em pensamento estatístico
Instruções do exercício
- Escreva uma função com a assinatura
draw_ks_reps(n, f, args=(), size=10000, n_reps=10000)que faça o seguinte.- Gere
sizeamostras da distribuição alvof. Lembre-se: para passarargspara a função de amostragem, você deve usar a construçãof(*args, size=size). Guarde o resultado emx_f. - Inicialize o array de réplicas,
reps, como um array vazio comn_repsentradas. - Escreva um loop
forpara fazer o seguinten_repsvezes.- Extraia
namostras def. Novamente, use*argsna chamada da função. Guarde o resultado na variávelx_samp. - Calcule a estatística K-S usando
dcst.ks_stat(), que é a função que você escreveu no exercício anterior, convenientemente armazenada no módulodcst. Armazene o resultado no arrayreps.
- Extraia
- Retorne o array
reps.
- Gere
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
____ ____:
# Generate samples from target distribution
x_f = ____
# Initialize K-S replicates
reps = ____
# Draw replicates
for i in range(n_reps):
# Draw samples for comparison
x_samp = ____
# Compute K-S statistic
____[i] = ____
return reps