"Krawatten sollten nicht vorhanden sein" im Kolmgorov-Smirnov-Test mit einer Stichprobe in R.


12

Ich werde den Kolmogorov-Smirnov-Test verwenden, um die Normalität von MYDATA in R zu testen. Dies ist ein Beispiel für meine Arbeit

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

Hier ist das Ergebnis, das R mir gibt:

 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

Ich denke, es gibt ein Problem. Was bedeutet "Krawatten" in dieser Warnung?


2
Warum möchten Sie diesen Normalitätstest durchführen? In den meisten Fällen ist das Testen der Normalität einer Variablen ziemlich nutzlos , obwohl das Testen der Normalität von Residuen nach einer Regression wichtig sein kann.
EdM

2
Auch ohne Bindungen ist der KS-Test kein Test für die allgemeine Normalität, sondern für eine vollständig spezifizierte Verteilung (Sie schätzen den Mittelwert und den SD aus Daten). Ihre p-Werte werden Unsinn sein.
Durchsuchen Sie

Antworten:


10

Sie haben hier zwei Probleme:

Der KS-Test ist für eine kontinuierliche Verteilung und daher sollte MYDATA keine Bindungen enthalten (wiederholte Werte).

Mit der dem KS-Test zugrunde liegenden Theorie können Sie die Parameter der Verteilung nicht wie bisher aus den Daten abschätzen. Die Hilfe für ks.test erklärt dies.


Warum ks.testmöchte das in einem Fall mit zwei Stichproben, dass die Bindungen von beiden xund entfernt werden y? Ich meine, ich habe keine Bindungen in xund y( unique(x)und unique(y)), aber die beiden Vektoren haben einen gemeinsamen Wert. Sollten die Bindungen nicht nur zwischen den Werten in xund in berücksichtigt werden y?
Nemesi

@Nemesi Wenn Sie eine neue Frage haben, stellen Sie diese bitte über die Schaltfläche Frage stellen.
Mdewey

Ich dachte, dies war nicht genug, um eine andere Frage zu sein, aber hier ist es: stats.stackexchange.com/questions/389151/…
Nemesi

5

Wie von @mdewey erläutert, eignet sich der KS-Test nicht zum Schätzen der Parameter aus den Daten. Sie können den folgenden Code verwenden, der sich auf den Anderson-Darling-Test für die Normalität stützt und nicht die Angabe des Mittelwerts und des Standardwerts erfordert. Dieser Test ist genauer als der Lilliefors-Test.

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

"Genauigkeit" kann für eine enge, aber fehlgeleitete Suche sein. In beiden Fällen sind die meisten Anwendungen dieser Tests im schlimmsten Fall nutzlos und in den meisten Fällen irreführend. Menschen werden oft von Personen unterrichtet, die die Annahmen über Regressionsmethoden nicht richtig verstehen. Ich vermute, dass die relative Schwäche des KS-Tests es tatsächlich "besser" machen würde, die leistungsstärkeren Alternativen zu verwenden, da seine Ergebnisse für den naiven Benutzer weniger irreführend wären.
DWin
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.