Das Edgell- und Noon-Papier hat es falsch verstanden.
Hintergrund
Das Papier beschreibt das Ergebnis von simulierten Datensätzen (xich,yich)mit unabhängigen Koordinaten aus Normal-, Exponential-, Uniform- und Cauchy-Verteilungen. (Obwohl zwei "Formen" des Cauchy gemeldet werden, unterschieden sie sich nur darin, wie die Werte generiert wurden, was eine irrelevante Ablenkung darstellt.) Die Datensatzgrößenn ("Stichprobengröße") reichte von 5 zu 100. Für jeden Datensatz der Pearson-Probenkorrelationskoeffizientr wurde berechnet, in a umgewandelt t Statistik über
t=rn−21−r2−−−−−−√,
(siehe Gleichung (1)) und verwies dies an einen Schüler t Verteilung mit n−2Freiheitsgrade mit einer zweiseitigen Berechnung. Die Autoren führten10,000 unabhängige Simulationen für jede der 10 Paare dieser Verteilung und jeder Probengröße produzieren 10,000 tStatistiken in jedem. Schließlich tabellierten sie den Anteil vont Statistiken, die bei der α=0.05 Ebene: das heißt, die t Statistiken im äußeren α/2=0.025 Schwänze des Schülers t Verteilung.
Diskussion
Bevor wir fortfahren, beachten Sie, dass in dieser Studie nur untersucht wird, wie robust ein Test der Nullkorrelation gegenüber Nichtnormalität sein kann. Das ist kein Fehler, aber es ist eine wichtige Einschränkung, die Sie beachten sollten.
Diese Studie enthält einen wichtigen strategischen Fehler und einen offensichtlichen technischen Fehler.
Der strategische Fehler ist, dass diese Verteilungen nicht so ungewöhnlich sind. Weder die Normalverteilung noch die Gleichverteilung werden Probleme mit den Korrelationskoeffizienten verursachen: die erstere ist beabsichtigt und die letztere, weil sie keine Ausreißer erzeugen kann (was die Pearson-Korrelation nicht verursacht)robust sein). (Der Normalwert musste jedoch als Referenz angegeben werden, um sicherzustellen, dass alles ordnungsgemäß funktioniert.) Keine dieser vier Verteilungen ist ein gutes Modell für häufige Situationen, in denen die Daten möglicherweise durch Werte aus einer Verteilung mit einem anderen Speicherort "kontaminiert" werden Insgesamt (z. B. wenn die Probanden tatsächlich aus unterschiedlichen Populationen stammen, die dem Experimentator unbekannt sind). Der schwerste Test stammt aus dem Cauchy, untersucht jedoch nicht die wahrscheinlichste Empfindlichkeit des Korrelationskoeffizienten gegenüber einseitigen Ausreißern , da er symmetrisch ist .
Der technische Fehler besteht darin, dass die Studie die tatsächlichen Verteilungen der p-Werte nicht untersuchte: Sie untersuchte ausschließlich die zweiseitigen Raten fürα=0.05.
(Obwohl wir vieles entschuldigen können, was vor 32 Jahren aufgrund von Einschränkungen in der Computertechnologie passiert ist, untersuchten die Leute routinemäßig kontaminierte Verteilungen, Schrägstrichverteilungen, logarithmische Normalverteilungen und andere schwerwiegendere Formen der Nichtnormalität; und dies war noch länger Routine Erforschen Sie einen größeren Bereich von Testgrößen, anstatt die Studien auf nur eine Größe zu beschränken.)
Korrigieren der Fehler
Im Folgenden stelle ich R
Code zur Verfügung, der diese Studie vollständig reproduziert (in weniger als einer Minute Berechnung). Aber es macht noch etwas mehr: Es zeigt die Stichprobenverteilungen der p-Werte an. Das ist ziemlich aufschlussreich, also lasst uns einfach hineinspringen und uns diese Histogramme ansehen.
Hier sind zunächst Histogramme großer Stichproben aus den drei Verteilungen, die ich mir angesehen habe, damit Sie ein Gefühl dafür bekommen, wie sie nicht normal sind.
Das Exponential ist verzerrt (aber nicht schrecklich); Der Cauchy hat lange Schwänze (tatsächlich wurden einige tausende Werte von dieser Handlung ausgeschlossen, damit Sie seine Mitte sehen können). Das Kontaminierte ist ein Standardnormal mit einer 5% igen Mischung eines Standardnormalen, auf das verschoben wurde10. Sie stellen Formen der Nichtnormalität dar, die häufig in Daten auftreten.
Da Edgell und Noon ihre Ergebnisse in Zeilen tabellierten, die Verteilungs- und Spaltenpaaren für Stichprobengrößen entsprachen, habe ich dasselbe getan. Wir müssen uns nicht die gesamte Bandbreite der verwendeten Stichprobengrößen ansehen: die kleinste (5), größten (100) und einen Zwischenwert (20) wird gut tun. Aber anstatt die Schwanzfrequenzen zu tabellieren, habe ich die Verteilungen der p-Werte aufgezeichnet.
Idealerweise haben die p-Werte gleichmäßige Verteilungen: Die Balken sollten alle nahe an einer konstanten Höhe von liegen1, in jedem Diagramm mit einer gestrichelten grauen Linie dargestellt. In diesen Darstellungen gibt es 40 Balken in einem konstanten Abstand von0.025 Eine Studie von α=0.05konzentriert sich auf die durchschnittliche Höhe des Balkens ganz links und ganz rechts (die "extremen Balken"). Edgell und Noon verglichen diese Durchschnittswerte mit der idealen Frequenz von0.05.
Da die Abweichungen von der Einheitlichkeit deutlich sind, sind nicht viele Kommentare erforderlich, aber bevor ich einige zur Verfügung stelle, sollten Sie sich den Rest der Ergebnisse ansehen. Sie können die Stichprobengrößen in den Titeln identifizieren - sie werden alle ausgeführt5−20−100 über jede Zeile - und Sie können die Verteilungspaare in den Untertiteln unter jeder Grafik lesen.
Was Sie am meisten beeindrucken sollte, ist, wie unterschiedlich die extremen Balken vom Rest der Verteilung sind. Eine Studie vonα=0.05ist außergewöhnlich speziell ! Es sagt uns nicht wirklich, wie gut der Test eine andere Größe durchführen wird; in der Tat sind die Ergebnisse für0.05sind so besonders, dass sie uns hinsichtlich der Eigenschaften dieses Tests täuschen werden.
Zweitens ist zu beachten, dass die Verteilung der p-Werte asymmetrisch wird, wenn die kontaminierte Verteilung beteiligt ist - mit ihrer Tendenz, nur hohe Ausreißer zu erzeugen. Ein Balken (der zum Testen auf positive Korrelation verwendet werden würde) ist extrem hoch, während sein Gegenstück am anderen Ende (das zum Testen auf negative Korrelation verwendet werden würde) extrem niedrig ist. Im Durchschnitt gleichen sie sich jedoch fast aus: Zwei große Fehler brechen ab!
Es ist besonders alarmierend, dass sich die Probleme bei größeren Stichproben tendenziell verschlimmern .
Ich habe auch einige Bedenken hinsichtlich der Genauigkeit der Ergebnisse. Hier sind die Zusammenfassungen von100,000 Iterationen, zehnmal mehr als Edgell und Noon:
5 20 100
Exponential-Exponential 0.05398 0.05048 0.04742
Exponential-Cauchy 0.05864 0.05780 0.05331
Exponential-Contaminated 0.05462 0.05213 0.04758
Cauchy-Cauchy 0.07256 0.06876 0.04515
Cauchy-Contaminated 0.06207 0.06366 0.06045
Contaminated-Contaminated 0.05637 0.06010 0.05460
Drei davon - diejenigen, an denen die kontaminierte Verteilung nicht beteiligt ist - reproduzieren Teile des Papiertisches. Obwohl sie qualitativ zu den gleichen (schlechten) Schlussfolgerungen führen (nämlich, dass diese Frequenzen dem Ziel von ziemlich nahe kommen0.05) Sie unterscheiden sich genug, um entweder meinen Code oder die Ergebnisse des Papiers in Frage zu stellen. (Die Genauigkeit des Papiers beträgt ungefährα(1−α)/n−−−−−−−−−√≈0.0022, aber einige dieser Ergebnisse unterscheiden sich um ein Vielfaches von denen des Papiers.)
Schlussfolgerungen
Indem Edgell und Noon keine Nicht-Normalverteilungen einbezogen, die wahrscheinlich Probleme mit Korrelationskoeffizienten verursachen, und die Simulationen nicht im Detail untersuchten, konnten sie keinen eindeutigen Mangel an Robustheit feststellen und verpassten die Gelegenheit, ihre Natur zu charakterisieren. Dass sie Robustheit für zweiseitige Tests an der fandenα=0.05Level scheint fast nur ein Unfall zu sein, eine Anomalie, die von Tests auf anderen Levels nicht geteilt wird.
R-Code
#
# Create one row (or cell) of the paper's table.
#
simulate <- function(F1, F2, sample.size, n.iter=1e4, alpha=0.05, ...) {
p <- rep(NA, length(sample.size))
i <- 0
for (n in sample.size) {
#
# Create the data.
#
x <- array(cbind(matrix(F1(n*n.iter), nrow=n),
matrix(F2(n*n.iter), nrow=n)), dim=c(n, n.iter, 2))
#
# Compute the p-values.
#
r.hat <- apply(x, 2, cor)[2, ]
t.stat <- r.hat * sqrt((n-2) / (1 - r.hat^2))
p.values <- pt(t.stat, n-2)
#
# Plot the p-values.
#
hist(p.values, breaks=seq(0, 1, 1/40), freq=FALSE,
xlab="p-values",
main=paste("Sample size", n), ...)
abline(h=1, lty=3, col="#a0a0a0")
#
# Store the frequency of p-values less than `alpha` (two-sided).
#
i <- i+1
p[i] <- mean(1 - abs(1 - 2*p.values) <= alpha)
}
return(p)
}
#
# The paper's distributions.
#
distributions <- list(N=rnorm,
U=runif,
E=rexp,
C=function(n) rt(n, 1)
)
#
# A slightly better set of distributions.
#
# distributions <- list(Exponential=rexp,
# Cauchy=function(n) rt(n, 1),
# Contaminated=function(n) rnorm(n, rbinom(n, 1, 0.05)*10))
#
# Depict the distributions.
#
par(mfrow=c(1, length(distributions)))
for (s in names(distributions)) {
x <- distributions[[s]](1e5)
x <- x[abs(x) < 20]
hist(x, breaks=seq(min(x), max(x), length.out=60),main=s, xlab="Value")
}
#
# Conduct the study.
#
set.seed(17)
sample.sizes <- c(5, 10, 15, 20, 30, 50, 100)
#sample.sizes <- c(5, 20, 100)
results <- matrix(numeric(0), nrow=0, ncol=length(sample.sizes))
colnames(results) <- sample.sizes
par(mfrow=c(2, length(sample.sizes)))
s <- names(distributions)
for (i1 in 1:length(distributions)) {
s1 <- s[i1]
F1 <- distributions[[s1]]
for (i2 in i1:length(distributions)) {
s2 <- s[i2]
F2 <- distributions[[s2]]
title <- paste(s1, s2, sep="-")
p <- simulate(F1, F2, sample.sizes, sub=title)
p <- matrix(p, nrow=1)
rownames(p) <- title
results <- rbind(results, p)
}
}
#
# Display the table.
#
print(results)
Referenz
Stephen E. Edgell und Sheila M. Noon, Auswirkung der Verletzung der Normalität auf dietTest des Korrelationskoeffizienten. Psychological Bulletin 1984, Bd. 95, Nr. 3, 576-583.