«Les liens ne devraient pas être présents» dans le test à un échantillon de Kolmgorov-Smirnov en R


12

Je vais utiliser le test de Kolmogorov-Smirnov pour tester la normalité de MYDATA en R. Ceci est un exemple de ce que je fais

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

Voici le résultat que R me donne:

 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

Je pense qu'il y a un problème, que signifie "liens" dans cet avertissement?


2
Pourquoi souhaitez-vous effectuer ce test de normalité? Dans la plupart des cas, tester la normalité d'une variable est assez inutile , bien que tester la normalité des résidus après une régression puisse être important.
EdM

2
Même sans liens, le test KS n'est pas un test de normalité générale mais d'une distribution entièrement spécifiée (vous estimez la moyenne et le sd à partir des données). Vos valeurs p seront absurdes. Rechercher sur notre site des références au test de Lilliefors
Glen_b -Reinstate Monica

Réponses:


10

Vous avez ici deux problèmes:

Le test KS est pour une distribution continue et donc MYDATA ne doit contenir aucun lien (valeurs répétées).

La théorie sous-jacente au test KS ne vous permet pas d'estimer les paramètres de la distribution à partir des données comme vous l'avez fait. L'aide de ks.test explique cela.


pourquoi ks.testdans un cas à deux échantillons, les liens doivent-ils être supprimés des deux xet y? Je veux dire, je n'ai aucun lien entre xet y( unique(x)et unique(y)), mais les deux vecteurs ont une valeur en commun. Les liens ne devraient-ils pas être considérés uniquement parmi les valeurs en xet en y?
Nemesi

@Nemesi si vous avez une nouvelle question, veuillez la poser comme telle à l'aide du bouton Poser une question.
mdewey

Je pensais que cela ne suffisait pas pour être une question différente, mais la voici: stats.stackexchange.com/questions/389151/…
Nemesi

5

Comme expliqué par @mdewey, le test KS ne convient pas lors de l'estimation des paramètres à partir des données. Vous pouvez utiliser le code suivant, qui repose sur le test de normalité d'Anderson-Darling, et ne vous oblige pas à fournir la moyenne et le stddev. Ce test est plus précis que le test de Lilliefors.

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

La «précision» peut être pour une recherche étroite mais erronée. Dans les deux cas, la plupart des applications de l'un ou l'autre de ces tests sont au pire inutiles et dans la plupart des cas trompeuses. Les personnes apprennent souvent à les utiliser par des personnes ayant une mauvaise compréhension des hypothèses sur les méthodes de régression. Je suppose que la faiblesse relative du test KS rendrait en fait "meilleur" l'utilisation que les alternatives les plus puissantes car ses résultats seraient moins susceptibles d'induire en erreur l'utilisateur naïf.
DWin
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.