Kolmogorov-Smirnov com dados discretos: Qual é o uso adequado de dgof :: ks.test em R?


23

Perguntas para iniciantes:

Quero testar se dois conjuntos de dados distintos são da mesma distribuição. Um teste de Kolmogorov-Smirnov foi sugerido para mim.

Conover ( Practical Nonparametric Statistics , 3d) parece dizer que o Teste de Kolmogorov-Smirnov pode ser usado para esse fim, mas seu comportamento é "conservador" com distribuições discretas, e não tenho certeza do que isso significa aqui.

O comentário de DavidR em outra pergunta diz "... Você ainda pode fazer um teste de nível α com base na estatística KS, mas precisará encontrar outro método para obter o valor crítico, por exemplo, por simulação."

A versão do ks.test () no pacote dgof R ( article , cran ) adiciona alguns recursos não presentes na versão padrão do ks.test () no pacote de estatísticas. Entre outras coisas, o dgof :: ks.test inclui este parâmetro:

simulate.p.value: uma lógica que indica se os valores de p devem ser calculados pela simulação de Monte Carlo, apenas para testes discretos de qualidade de ajuste.

O objetivo de simulate.p.value = T é realizar o que o DavidR sugere?

Mesmo se for, não tenho certeza se posso realmente usar o dgof :: ks.test para um teste de duas amostras. Parece que ele fornece apenas um teste de duas amostras para uma distribuição contínua:

Se y for numérico, é realizado um teste de duas amostras da hipótese nula de que x e y foram retirados da mesma distribuição contínua.

Como alternativa, y pode ser uma cadeia de caracteres que nomeia uma função de distribuição contínua (cumulativa) (ou uma função), ou uma função ecdf (ou objeto da classe stepfun) que fornece uma distribuição discreta. Nesses casos, um teste de uma amostra é realizado a partir do nulo de que a função de distribuição que gerou x é a distribuição y ....

(Detalhes do plano de fundo: Estritamente falando, minhas distribuições subjacentes são contínuas, mas os dados tendem a estar muito próximos de alguns pontos. Cada ponto é o resultado de uma simulação e é uma média de 10 ou 20 números reais entre -1 e 1. No final da simulação, esses números estão quase sempre muito próximos de 0,9 ou -9. Assim, os meios se agrupam em torno de alguns valores, e eu os estou tratando como discretos. A simulação é complexa e não tenho razão para pensar que os dados seguem uma distribuição bem conhecida.)

Conselhos?


Acabei de notar o comentário do Dr. G aqui, que sugere que o ks.boot é o que eu preciso, mas ainda me pergunto se a opção de simulação do dgof :: ks.test funcionaria e o que significa "convergente".
Mars

Respostas:


16

Esta é uma resposta para a extensão @jbrucks (mas também responde ao original).

Um teste geral para determinar se duas amostras são da mesma população / distribuição ou se existe alguma diferença é o teste de permutação. Escolha uma estatística de interesse, pode ser a estatística do teste KS ou a diferença de médias ou a diferença de medianas ou a razão de variações ou ... (o que for mais significativo para sua pergunta, você pode fazer simulações sob condições prováveis ​​de visualização qual estatística fornece os melhores resultados) e calcule essa estatística nas 2 amostras originais. Em seguida, você permuta aleatoriamente as observações entre os grupos (agrupe todos os pontos de dados em um grande pool, depois os divida aleatoriamente em 2 grupos do mesmo tamanho das amostras originais) e calcula a estatística de interesse nas amostras permutadas. Repita isso várias vezes, a distribuição das estatísticas de amostra forma sua distribuição nula e você compara a estatística original a essa distribuição para formar o teste. Note que a hipótese nula é que as distribuições são idênticas, não apenas que as médias / medianas / etc. são iguais.

Se você não quer assumir que as distribuições são idênticas, mas deseja testar a diferença de médias / medianas / etc. então você pode fazer um bootstrap.

Se você souber de que distribuição provém os dados (ou pelo menos estiver disposto a assumir uma distribuição), poderá fazer um teste de razão de probabilidade na igualdade dos parâmetros (compare o modelo com um único conjunto de parâmetros nos dois grupos com o modelo) com conjuntos separados de parâmetros). O teste da razão de verossimilhança geralmente usa uma distribuição qui-quadrado que é boa em muitos casos (assintóticos), mas se você estiver usando tamanhos de amostra pequenos ou testando um parâmetro próximo ao seu limite (uma variação sendo 0 por exemplo), a aproximação pode não ser bom, você poderia novamente usar o teste de permutação para obter uma melhor distribuição nula.

Todos esses testes funcionam em distribuições contínuas ou discretas. Você também deve incluir alguma medida de poder ou um intervalo de confiança para indicar a quantidade de incerteza, uma falta de significância pode ser devida à baixa energia ou uma diferença estatisticamente significante ainda pode ser praticamente sem sentido.


Greg, obrigado. Esta é uma resposta geral muito útil para a pergunta de jbruck e também é útil para mim. (Minhas perguntas eram mais específicos Talvez demasiado estreito para esperar respostas..)
Mars

1
@ Marte, acho que minha resposta responde indiretamente a pelo menos partes da sua. O teste KS regular não assume vínculos e usa um modelo teórico para a estatística do teste sob a hipótese nula. Com os vínculos, o modelo teórico não é exato, mas você pode usar a simulação (teste de permutação, simular a partir de dist nulo, etc.) para calcular a distribuição nula e, portanto, obter um valor-p, etc. argumento que você menciona faz.
Greg Snow
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.