Como testar se uma amostra de dados se encaixa na família de distribuição Gamma?

13

Eu tenho uma amostra de dados que foram gerados a partir de uma variável aleatória contínua X. E a partir do histograma que eu desenho usando R, acho que talvez a distribuição de X obedeça a uma determinada distribuição gama. Mas não conheço os parâmetros exatos dessa distribuição gama.

Minha pergunta é como testar se a distribuição de X pertence a uma família de distribuição Gamma? Existem alguns testes de ajuste de qualidade, como o teste de Kolmogorov-Smirnov, o teste de Anderson-Darling e assim por diante, mas uma das restrições ao usar esses testes é que os parâmetros da distribuição teórica devem ser conhecidos antecipadamente. Alguém poderia me dizer como resolver este problema?

user8363
fonte
Talvez esteja faltando alguma coisa, mas se você já conhece um teste para testar o ajuste da distribuição e tudo que precisa saber são os valores da distribuição teórica, basta usar os estimadores de probabilidade máxima dos parâmetros da gama. distribuição em seus dados para obter estimativas dos parâmetros. Você pode usar essas estimativas para definir a distribuição teórica em seu teste.
David
David, obrigado pela sua resposta. A resposta também é o que eu tenho pensado, mas não tenho certeza se existem algumas teorias que podem apoiar essa idéia, você poderia responder por mim?
user8363
Se você usa R, pode estar interessado em dar uma olhada no pacote fitdistrplus , que possui recursos para fazer esse tipo de coisa.
gung - Restabelece Monica

Respostas:

8

Eu acho que a pergunta pede um teste estatístico preciso, não uma comparação de histograma. Ao usar o teste Kolmogorov-Smirnov com parâmetros estimados , a distribuição das estatísticas de teste abaixo de nulo depende da distribuição testada, ao contrário do caso sem parâmetro estimado. Por exemplo, usando (em R)

x <- rnorm(100)
ks.test(x, "pnorm", mean=mean(x), sd=sd(x))

leva a

        One-sample Kolmogorov-Smirnov test

data:  x 
D = 0.0701, p-value = 0.7096
alternative hypothesis: two-sided

enquanto chegamos

> ks.test(x, "pnorm")

        One-sample Kolmogorov-Smirnov test

data:  x 
D = 0.1294, p-value = 0.07022
alternative hypothesis: two-sided 

para a mesma amostra x. O nível de significância ou o valor p, portanto, deve ser determinado pela simulação de Monte Carlo sob o nulo, produzindo a distribuição das estatísticas Kolmogorov-Smirnov a partir de amostras simuladas sob a distribuição estimada (com uma ligeira aproximação no resultado, dado que a amostra observada vem de outra distribuição, mesmo sob o nulo).

Xi'an
fonte
1
(+1) Não entendi por que é correto simular amostras sob a distribuição estimada. Eu pensaria que precisávamos de um prior para os parâmetros e uma amostra de todas as distribuições possíveis ... você pode explicar um pouco mais?
Elvis
1
Xi'an, sua resposta é exatamente o que me preocupou. Você quer dizer que "Ao usar o teste Kolmogorov-Smirnov com parâmetros estimados, a distribuição das estatísticas de teste sob o valor nulo depende da distribuição testada". No entanto, não sabemos a distribuição de X, mais precisamente, não conhecemos o parâmetro da distribuição de X sob a hipótese nula, portanto, a distribuição da estatística de teste, portanto, usamos monte carlo. Você teria outras maneiras de resolvê-lo não usando monte carlo para obter o valor de p? Obrigado
user8363
Para levar em conta o fato de que "a amostra observada vem de outra distribuição, mesmo sob o nulo", não seria apropriado inicializar a amostra, reestimando os parâmetros em cada replicação?
Elvis
1
@Elvis (1): esta é uma estatística clássica, não uma resolução bayesiana do problema da bondade do ajuste. Para distribuições com parâmetros de escala de localização, a escolha dos parâmetros usados ​​para simular as amostras simuladas não importa.
Xian
1
@Elvis (2): Novamente, algo que acabei de discutir com meus alunos! O Bootstrap ajudaria a avaliar o comportamento da distância Kolmogorov-Smirnov sob a verdadeira distribuição dos dados, não sob o nulo! O princípio de Fisher-Neyman-Pearson é que o que importa é o comportamento da distância de Kolmogorov-Smirnov sob o nulo, para que seja rejeitado se a distância observada for muito extrema em relação a essa distribuição sob o nulo.
Xian
4

Calcule MLEs dos parâmetros assumindo uma distribuição gama para seus dados e compare a densidade teórica com o histograma de seus dados. Se os dois forem muito diferentes, a distribuição gama é uma fraca aproximação dos seus dados. Para um teste formal, você pode calcular, por exemplo, a estatística do teste Kolmogorov-Smirnoff, comparando a distribuição gama mais adequada com a distribuição empírica e o teste de significância.

Macro
fonte
3
+1, esta é uma resposta sólida. No entanto, eu sugeriria examinar um gráfico de qq contra a gama teórica, em vez de um histograma - será mais fácil avaliar desvios.
gung - Restabelece Monica
1
O problema é que o teste KS pressupõe que a distribuição teórica seja dada antecipadamente, não estimada a partir dos dados. Xi'an (parcialmente) respondeu a esse ponto ...
Elvis
você quer dizer que primeiro usamos essa amostra de dados para obter um estimador MLS e usar o valor do estimador MLS na distribuição gama e, em seguida, comparar os dados com a distribuição gama (com parâmetro estimado) usando o teste KS?
user8363
Elvis, poderia me dizer como resolver o problema que, quando o parâmetro da distribuição teórica é desconhecido e precisa ser estimado. Neste caso, como se pode usar o teste KS para obter um julgamento relativamente preciso da hipótese, obrigado!
user8363
1
@ Elvis: Eu não acho que a derivação exata seja possível no caso da distribuição gama. O cdf em si não está disponível em formato fechado. Além disso, o fato de o parâmetro shape não ser nem escala nem localização significa que há uma distribuição diferente para cada valor do parâmetro shape ...
Xian