“Laços não devem estar presentes” no teste Kolmgorov-Smirnov de uma amostra em R


12

Vou usar o teste de Kolmogorov-Smirnov para testar a normalidade de MYDATA em R. Este é um exemplo do que faço

 ks.test(MYDATA,"pnorm",mean(MYDATA),sd(MYDATA))

Aqui está o resultado que R me fornece:

 data:  MYDATA
 D = 0.13527, p-value = 0.1721
 alternative hypothesis: two-sided

 Warning message:
 In ks.test(MYDATA, "pnorm", mean(MYDATA), sd(MYDATA)) :
    ties should not be present for the Kolmogorov-Smirnov test

Eu acho que há um problema, o que "laços" significa neste aviso?


2
Por que você deseja realizar este teste de normalidade? Na maioria dos casos, testar a normalidade de uma variável é bastante inútil , embora testar a normalidade de resíduos após uma regressão possa ser importante.
EdM

2
Mesmo sem vínculos, o teste KS não é um teste de normalidade geral, mas de uma distribuição totalmente especificada (você está estimando a média e o sd dos dados). Seus valores-p serão absurdos. Pesquise em nosso site referências para o teste de Lilliefors
Glen_b -Reinstate Monica

Respostas:


10

Você tem dois problemas aqui:

O teste KS é para uma distribuição contínua e, portanto, MYDATA não deve conter nenhum empate (valores repetidos).

A teoria subjacente ao teste KS não permite estimar os parâmetros da distribuição a partir dos dados, como você fez. A ajuda para o ks.test explica isso.


por que o ks.testcaso de duas amostras deseja que os vínculos sejam removidos de ambos xe y? Quero dizer, não tenho vínculos com xe y( unique(x)e unique(y)), mas os dois vetores têm um valor em comum. Os laços não devem ser considerados apenas entre os valores de entrada xe saída y?
Nemesi

@Nemesi, se você tiver uma nova pergunta, faça-a como tal, usando o botão Fazer pergunta.
Mdewey

I embora este não foi o suficiente para ser uma questão diferente, mas aqui está: stats.stackexchange.com/questions/389151/...
Nemesi

5

Conforme explicado por @mdewey, o teste KS não é adequado ao estimar os parâmetros a partir dos dados. Você pode usar o código a seguir, que se baseia no teste de Anderson-Darling para normalidade e não requer que você forneça a média e o stddev. Esse teste é mais forte em precisão do que o teste de Lilliefors.

install.packages("nortest")
library(nortest)
ad.test(MYDATA)

"Precisão" pode ser para uma pesquisa restrita, mas equivocada. Nos dois casos, a maioria das aplicações de qualquer um desses testes é, na pior das hipóteses, inútil e, na maioria dos casos, enganosa. As pessoas geralmente são ensinadas a usá-las por pessoas com um entendimento incorreto das suposições sobre métodos de regressão. Suponho que a relativa fraqueza do teste KS tornaria realmente "melhor" usar que as alternativas mais poderosas, pois seus resultados teriam menos probabilidade de serem enganosos para o usuário ingênuo.
Dwin
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.