Test de Kolmogorov-Smirnov
Je suis à l'aide de la fonction R ks.test()
pour tester la distribution Uniforme de la R générateur de nombre aléatoire. Je suis en utilisant le code suivant:
replicate(100000, ks.test(runif(n),y="punif")
.
Quand n
est inférieur ou égal à 100, il fonctionne, mais quand n
est supérieure à 100, je reçois le Message d'Avertissement suivant:
In ks.test(runif(100000), y = "punif") :
ties should not be present for the Kolmogorov-Smirnov test.
Quels sont ces "liens"?
Avez-vous essayé
Sonne comme
?ks.test
Sonne comme
runif()
retourné des valeurs en double. Essayez de regarder x<-runif(100000);ks.test(x, y = "punif");sum(duplicated(x))
au lieu de voir si c'est le cas. (Parce que c'est aléatoire, vous ne pourriez pas obtenir le même résultat à chaque fois)OriginalL'auteur Egodym | 2015-01-26
Vous devez vous connecter pour publier un commentaire.
Si vous inspectez le corps de la fonction
ks.test
vous verrez la ligne suivante, quelque part dans le corps:Cela vous indique que lorsque le nombre d'éléments uniques dans x est ci-dessous le nombre d'éléments, vous obtiendrez ce message d'avertissement. En d'autres termes, si votre vecteur a double entrées - vous obtiendrez le message d'avertissement.
Probablement ce qui s'est passé est que quand on n > 100 il y a plus de chances d'obtenir un double de la valeur, quelque part par rapport à l'utilisation de n = 100. Puisque vous êtes de le répéter des milliers de fois la probabilité d'avoir deux valeurs identiques dans x.
Comme un exemple de ce code ne me donne pas d'avertissement:
Avez une question similaire. Est-ce à dire que le test n'est pas valide, si il y a des liens?
Veuillez envisager de chercher une réponse dans les Stats.StackExchange. HERE est l'exemple qui pourrait vous aider.
OriginalL'auteur Karolis Koncevičius