So führen sie einen anderson-darling-test in r durch
Ein Anderson-Darling-Test ist ein Anpassungstest, der misst, wie gut Ihre Daten zu einer bestimmten Verteilung passen. Dieser Test wird am häufigsten verwendet, um festzustellen, ob Ihre Daten einer Normalverteilung folgen oder nicht.
Diese Art von Test eignet sich zum Testen der Normalität, einer häufig verwendeten Annahme in vielen statistischen Tests, einschließlich Regression, ANOVA, T-Tests und vielen anderen.
Beispiel: Anderson-Darling-Test in R
Um einen Anderson-Darling-Test in R durchzuführen, können wir die Funktion ad.test() in der nortest- Bibliothek verwenden.
Der folgende Code veranschaulicht, wie ein AD-Test durchgeführt wird, um zu testen, ob ein Vektor mit 100 Werten einer Normalverteilung folgt oder nicht:
#install (if not already installed) and load nortest library install.packages('nortest') library(nortest) #make this example reproducible set.seed(1) #defined vector of 100 values that are normally distributed x <- rnorm(100, 0, 1) #conduct Anderson-Darling Test to test for normality ad.test(x) # Anderson-Darling normality test # #data:x #A = 0.16021, p-value = 0.9471
Dieser Test gibt zwei Werte zurück:
A : die Teststatistik.
p-Wert : der entsprechende p-Wert der Teststatistik.
Die Nullhypothese des AD-Tests besagt, dass die Daten einer Normalverteilung folgen . Wenn also unser p-Wert für den Test unter unserem Signifikanzniveau liegt (übliche Optionen sind 0,10, 0,05 und 0,01), können wir die Nullhypothese ablehnen und daraus schließen, dass wir über ausreichende Beweise verfügen, um zu behaupten, dass unsere Daten nicht folgen eine normale Flugbahn. Verteilung.
In diesem Fall beträgt unser p-Wert 0,9471. Da diese Zahl nicht unter unserem Signifikanzniveau liegt (z. B. 0,05), verfügen wir nicht über ausreichende Beweise, um die Nullhypothese abzulehnen. Man kann mit Sicherheit sagen, dass unsere Daten einer Normalverteilung folgen, was Sinn macht, wenn man bedenkt, dass wir mit der Funktion rnorm() in R 100 Werte generiert haben, die einer Normalverteilung mit einem Mittelwert von 0 und einer Standardabweichung von 1 folgen.
Verwandt: Eine Anleitung zu dnorm, pnorm, qnorm und rnorm in R
Angenommen, wir generieren stattdessen einen Vektor mit 100 Werten, der einer gleichmäßigen Verteilung zwischen 0 und 1 folgt. Wir können erneut einen AD-Test durchführen, um zu sehen, ob diese Daten einer Normalverteilung folgen:
#make this example reproducible set.seed(1) #defined vector of 100 values that are uniformly distributed x <- runif(100, 0, 1) #conduct Anderson-Darling Test to test for normality ad.test(x) # Anderson-Darling normality test # #data:x #A = 1.1472, p-value = 0.005086
Unsere A- Teststatistik beträgt 1,1472 und der entsprechende p-Wert beträgt 0,005086. Da unser p-Wert kleiner als 0,05 ist, können wir die Nullhypothese ablehnen und schlussfolgern, dass wir über ausreichende Beweise dafür verfügen, dass diese Daten keiner Normalverteilung folgen. Dies ist das Ergebnis, das wir erwartet haben, da wir wissen, dass unsere Daten tatsächlich einer Gleichverteilung folgen.
Durchführen eines Anderson-Darling-Tests für eine Spalte eines Datenrahmens in R
Wir können auch einen AD-Test für eine bestimmte Spalte eines Datenrahmens in R durchführen. Betrachten Sie beispielsweise den eingebetteten Iris- Datensatz:
#view first six lines of iris dataset
head(iris)
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa
#6 5.4 3.9 1.7 0.4 setosa
Angenommen, wir möchten wissen, ob die Variable Petal.Width normalverteilt ist. Wir könnten zunächst ein Histogramm erstellen, um die Verteilung der Werte zu visualisieren:
hist(iris$Petal.Width, col = 'steelblue', main = 'Distribution of Petal Widths', xlab = 'Petal Width')
Die Daten scheinen nicht normalverteilt zu sein. Um dies zu bestätigen, können wir einen AD-Test durchführen, um formal zu testen, ob die Daten normalverteilt sind oder nicht:
#conduct Anderson-Darling Test to test for normality
ad.test(iris$Petal.Width)
# Anderson-Darling normality test
#
#data: iris$Petal.Width
#A = 5.1057, p-value = 1.125e-12
Der p-Wert des Tests liegt unter 0,05, sodass wir über ausreichende Beweise verfügen, um die Nullhypothese abzulehnen und zu dem Schluss zu kommen, dass Petal.Width keiner Normalverteilung folgt.