Können p-Werte für den Pearson-Korrelationstest nur aus dem Korrelationskoeffizienten und der Stichprobengröße berechnet werden?

12

Hintergrund: Ich habe einen Artikel gelesen, in dem Autoren die Pearson-Korrelation 0,754 aus Stichprobengröße 878 berichten. Der resultierende p-Wert für den Korrelationstest ist "zwei Sterne" signifikant (dh p <0,01). Ich denke jedoch, dass bei einer so großen Stichprobengröße der entsprechende p-Wert unter 0,001 liegen sollte (dh drei Sterne signifikant).

  • Können p-Werte für diesen Test nur aus dem Pearson-Korrelationskoeffizienten und der Stichprobengröße berechnet werden?
  • Wenn ja, wie geht das in R?
Miroslav Sabo
quelle
1
Für Interessenten gibt es hier einen Online-P-Wert-Rechner, der r und n benötigt .
Jeromy Anglim

Antworten:

13

Ja, dies ist möglich, wenn Sie die R-zu-Z-Transformation von Fisher verwenden. Andere Methoden (z. B. Bootstrap) können einige Vorteile haben, erfordern jedoch die Originaldaten. In R ( r ist der Probenkorrelationskoeffizient, n ist die Anzahl der Beobachtungen):

z <- 0.5 * log((1+r)/(1-r))
zse <- 1/sqrt(n-3)
min(pnorm(z, sd=zse), pnorm(z, lower.tail=F, sd=zse))*2

Siehe auch diesen Beitrag in meinem Blog .

Dabei spielt es keine Rolle, ob es sich um .01 oder .001 handelt. Wie Sie sagten, ist dies hauptsächlich eine Funktion des Stichprobenumfangs und Sie wissen bereits, dass der Stichprobenumfang groß ist. Die logische Schlussfolgerung ist, dass Sie wahrscheinlich überhaupt keinen Test benötigen (insbesondere keinen Test der sogenannten Null-Hypothese, dass die Korrelation 0 ist). Mit N = 878 können Sie sich auf die Genauigkeit der Schätzung verlassen und sich darauf konzentrieren, sie direkt zu interpretieren (dh, ist in Ihrem Bereich 0,75 groß?).

Wenn Sie jedoch einen statistischen Test im Neyman-Pearson-Framework durchführen, müssen Sie die Fehlerstufe im Voraus angeben. Wenn also die Testergebnisse wirklich wichtig sind und die Studie mit 0,01 als Schwellenwert geplant wurde, ist es nur sinnvoll, p <0,01 zu melden, und Sie sollten es nicht opportunistisch auf p <0,001 basierend auf dem erhaltenen p- Wert festlegen . Diese Art von nicht offengelegter Flexibilität ist sogar einer der Hauptgründe für die Kritik an kleinen Stars und allgemeiner für die Art und Weise, wie Nullhypothesen-Signifikanztests in den Sozialwissenschaften durchgeführt werden.

Siehe auch Meehl, PE (1978). Theoretische Risiken und tabellarische Sternchen: Sir Karl, Sir Ronald und der langsame Fortschritt der sanften Psychologie. Journal of Consulting and Clinical Psychology, 46 (4), 806-834. (Der Titel enthält einen Verweis auf diese „Sterne“, aber der Inhalt ist eine viel breitere Diskussion über die Rolle des Signifikanztests.)

Gala
quelle
1
Ich würde ihnen wahrscheinlich raten, die kleinen Sterne aufzugeben, auch wenn die Ergebnisse stimmen, aber ich verstehe Ihren Standpunkt.
Gala
1
Ich habe meine Antwort bearbeitet, um eine Anmerkung zu diesem Problem hinzuzufügen. Beachten Sie, dass 0,001 <0,01, so dass die Autoren in jedem Fall formal „korrekt“ sind. Es ist vielmehr eine Frage der Art und Weise, wie die Ergebnisse gemeldet werden. Ich würde denken, dass anders als ein klarer Fehler, den ein Rezensent natürlich korrigieren sollte, dieses Problem den Autoren überlassen bleiben sollte, um zu entscheiden.
Gala
1
Sie haben Recht, aber bisher habe ich noch nie gesehen, dass p <0,01 ist, wenn p tatsächlich unter 0,001 liegt (ohne zu erwähnen, dass das Konfidenzniveau für den Artikel 0,01 beträgt). Darüber hinaus berichten die Autoren in dem Artikel, über den ich spreche, über 30 Korrelationstests, die auf Stichprobengrößen von 837 bis 886 mit Korrelationen von 0,145 bis 0,754 basieren und alle als zwei Sterne signifikant angegeben sind.
Miroslav Sabo
1
Ich habe ein Problem, meinen Code hier zu posten, aber ich führe Simulationen aus und der p-Wert von Ihrem Code ist nicht der gleiche wie der p-Wert von cor.test.
Miroslav Sabo
4
Ich habe ein Tutorial über die Verwendung von Fisher's z für Korrelationen geschrieben, die unter stata-journal.com/sjpdf.html?articlenum=pr0041 verfügbar sind. Ich empfehle die Verwendung von Konfidenzintervallen und berechne 0,724, 0,781 als 95% -Grenze. Ich würde empfehlen, sich die Daten noch genauer anzuschauen und eine Regression zu erarbeiten.
Nick Cox
2

Sie verwenden die R-zu-Z-Transformation von Fisher.

Es gibt eine alternative Statistik:

abs(r)*sqrt((n-2)/(1-r^2)) ~ t.dist(d.f.=n-2)

das hat t-Verteilung mit n-2 Freiheitsgraden. So funktioniert das zum Beispiel: http://www.danielsoper.com/statcalc3/calc.aspx?id=44

Germaniawerks
quelle