Schau und du wirst finden (eine Korrelation)


66

Ich habe mehrere hundert Messungen. Jetzt überlege ich mir, irgendeine Art von Software zu verwenden, um jede Maßnahme mit jeder Maßnahme in Beziehung zu setzen. Dies bedeutet, dass es Tausende von Korrelationen gibt. Darunter sollte (statistisch) eine hohe Korrelation bestehen, auch wenn die Daten vollständig zufällig sind (jede Messung hat nur etwa 100 Datenpunkte).

Wie kann ich die Informationen darüber, wie intensiv ich nach einer Korrelation gesucht habe, in eine Korrelation einbeziehen?

Ich bin in der Statistik nicht auf einem hohen Niveau, bitte nehmen Sie Kontakt mit mir auf.


5
Dies ist ein großartiges Beispiel dafür, warum man mehrere Hypothesentests benötigt.

Vermutlich kann man mit der Permutationsprozedur eine Nullverteilung für Signifikanzschwellen für die größte Korrelation, eine andere Schwelle für die zweitgrößte Korrelation usw. erzeugen. Hoffentlich würde dies in Python oder R nur ein paar Stunden dauern. (Ha! Berühmte letzte Worte.) Aber sicherlich muss dies bereits jemand getan und den Code irgendwo gespeichert haben?

4
@tmo Rauf diesem Computer benötigt 18 Sekunden, um 1000 Realisierungen der Nullpermutationsverteilung des maximalen Korrelationskoeffizienten für eine 300 xcorrel <- function(x, k=1) { n <- dim(x)[2] * (dim(x)[2]-1) / 2; v <- cor(x); sort(v[lower.tri(v)])[(n-k+1):n] }; sim <- replicate(1000, correl(apply(x,2,sample)))
×

Antworten:


74

Dies ist eine ausgezeichnete Frage, die eines klaren statistischen Denkers würdig ist, da sie einen subtilen, aber wichtigen Aspekt von Mehrfachtests erkennt.

Es gibt Standardmethoden zum Anpassen der p-Werte mehrerer Korrelationskoeffizienten (oder gleichwertig zum Erweitern ihrer Konfidenzintervalle), wie beispielsweise die Bonferroni- und Sidak-Methoden ( s . V ). Diese sind jedoch bei großen Korrelationsmatrizen aufgrund der inhärenten mathematischen Beziehungen, die zwischen den Korrelationskoeffizienten im Allgemeinen gelten müssen, viel zu konservativ. (Für einige Beispiele solcher Beziehungen siehe die aktuelle Frage und den folgenden Thread .) Eine der besten Methoden, um mit dieser Situation umzugehen, ist die Durchführung eines Permutations- (oder Resampling-) Tests. Dies ist bei Korrelationen einfach zu bewerkstelligen: Verwürfeln Sie bei jeder Testiteration einfach die Reihenfolge der Werte der einzelnen Felder nach dem Zufallsprinzip (wodurch die inhärente Korrelation zerstört wird) und berechnen Sie die vollständige Korrelationsmatrix neu. Führen Sie dies für mehrere tausend Iterationen (oder mehr) durch, und fassen Sie dann die Verteilungen der Einträge der Korrelationsmatrix zusammen, indem Sie beispielsweise ihre 97,5- und 2,5-Perzentile angeben: Diese dienen als gegenseitige symmetrische zweiseitige 95% -Konfidenzintervalle unter der Null Hypothese ohne Korrelation. (Wenn Sie dies zum ersten Mal mit einer großen Anzahl von Variablen tun, werden Sie erstaunt sein, wie hoch einige der Korrelationskoeffizienten sein können, auch wenn es keine inhärente Korrelation gibt.)

Wenn Sie die Ergebnisse unabhängig von Ihren Berechnungen melden, sollten Sie Folgendes einbeziehen:

  • Die Größe der Korrelationsmatrix ( dh wie viele Variablen Sie sich angesehen haben).

  • Wie Sie die p-Werte oder die "Signifikanz" eines der Korrelationskoeffizienten bestimmt haben ( z. B. unverändert gelassen, eine Bonferroni-Korrektur angewendet, einen Permutationstest durchgeführt oder was auch immer).

  • Gibt an, ob Sie alternative Korrelationsmaße wie die Spearman-Rangkorrelation untersucht haben . Wenn ja, geben Sie auch an, warum Sie die Methode ausgewählt haben, über die Sie tatsächlich berichten und die Sie verwenden.


1
Dies ist eine ziemlich gründliche Beschreibung der p-Wert-Anpassungsmethoden, aber was nicht gesagt wird, sind die Kriterien für die Anpassung. Traditionell war es die familiäre Fehlerrate. Dies ist jedoch ein strenges Kriterium und bei Tausenden von Vergleichen nicht sinnvoll. In diesem Fall wird häufig die von Benjamini zuerst vorgeschlagene Rate falscher Entdeckungen verwendet.
Michael Chernick

Was ist, wenn wir nur die Korrelationen sehr gut definierter Variablenpaare betrachten wollen (z. B. , ..., , wobei und Variablen sind), uns das aber nicht interessiert alle anderen möglichen Kombinationen (dh, es geht nicht um )? Brauchen wir noch eine Korrektur? corr(x1,y1)corr(xn,yn)xiyicorr(xi,yj) ij
Jase

@Jase Ja, das tust du. Der Korrekturbetrag hängt von den Wechselbeziehungen zwischen den Variablen ab. Simulationsbasierte Methoden sind der einzig praktikable Weg, um diese Korrekturen zu ermitteln.
whuber

Wow nett. Korrigiert diese von Ihnen diskutierte Methode auch die Standardfehler bei Problemen mit serieller Korrelation und Heteroskedastizität?
Jase

@Jase Es wäre schwierig, Korrelationskoeffizienten in einem heteroskedastischen Modell zu interpretieren. Ihr Kommentar scheint sich eher auf ein lineares Modell in einer Zeitreiheneinstellung zu beziehen als auf die Schätzung multivariater Korrelationskoeffizienten.
whuber

10

Aus Ihrer Antwort auf die Frage von Peter Flom geht hervor, dass Sie möglicherweise besser mit Techniken bedient werden, die sich mit der Struktur auf höherer Ebene in Ihrer Korrelationsmatrix befassen.

Techniken wie Faktoranalyse, PCA, mehrdimensionale Skalierung und Clusteranalyse von Variablen können verwendet werden, um Ihre Variablen in Gruppen von relativ verwandten Variablen zu gruppieren.

Vielleicht möchten Sie auch theoretisch darüber nachdenken, welche Art von Struktur vorhanden sein sollte. Wenn Ihre Anzahl von Variablen groß und die Anzahl von Beobachtungen klein ist, verlassen Sie sich oft besser auf vorherige Erwartungen.


1
(+1) Guter Rat angesichts des Kommentars des OP zur Antwort von @Peter Flom.
Whuber

7

Dies ist ein Beispiel für mehrere Vergleiche. Es gibt eine große Literatur dazu.

Wenn Sie beispielsweise 100 Variablen haben, haben Sie 100 * 99/2 = 4950 Korrelationen.

Wenn die Daten nur Rauschen sind, würden Sie erwarten, dass 1 von 20 bei p = 0,05 signifikant ist. Das ist 247,5

Bevor Sie jedoch weitermachen, wäre es gut, wenn Sie sagen könnten, WARUM Sie dies tun. Was sind diese Variablen, warum korrelieren Sie sie, was ist Ihre inhaltliche Idee?

Oder fischen Sie nur nach hohen Korrelationen?


3
Der Grund, warum ich es so machen wollte, war eine offene Einstellung gegenüber dem Verständnis meiner Daten. Vielleicht fange ich auf eine Art und Weise nach Korrelationen, an die ich vorher nicht gedacht hatte, um aufgeklärt zu werden. Ich tue dies sicherlich nicht, um meinen Chef oder etwas Beliebiges zufrieden zu stellen. Ich möchte lieber nicht auf die Einzelheiten der Daten eingehen, da ich eine allgemeine Antwort auf diese Frage haben möchte, damit ich sie in Zukunft in allen Situationen verwenden kann.
David

7

Vielleicht könnten Sie eine vorläufige Analyse einer zufälligen Teilmenge der Daten durchführen, um Hypothesen zu bilden, und dann diese wenigen Hypothesen von Interesse unter Verwendung der restlichen Daten testen. Auf diese Weise müssten Sie nicht annähernd so viele Tests korrigieren. (Ich denke...)

Wenn Sie ein solches Verfahren anwenden, reduzieren Sie natürlich die Größe des Datensatzes, der für die endgültige Analyse verwendet wird, und reduzieren so Ihre Fähigkeit, echte Effekte zu finden. Korrekturen für mehrere Vergleiche verringern jedoch auch die Leistung, und ich bin mir nicht sicher, ob Sie notwendigerweise etwas verlieren würden.


5
(+1) Dies ist im Allgemeinen eine großartige Idee. Für große Korrelationsmatrizen gibt es jedoch so viele Statistiken, dass es sich in der Regel lohnt, sie anzupassen. Andernfalls werden Sie einer großen Anzahl von irreführend "signifikanten" Korrelationen nachjagen, die einfach in den Hold-Out-Daten verschwinden. (Führen Sie eine Simulation mit beispielsweise ein paar hundert Zügen aus 50 unkorrelierten normalen Standardvariablen durch. Dies ist ein Augenöffner.)
whuber
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.