Gibt es eine Funktion zum Testen der Hypothese, dass die Korrelation zweier Vektoren gleich einer bestimmten Zahl ist, beispielsweise 0,75? Mit cor.test kann ich cor = 0 testen und sehen, ob 0,75 innerhalb des Konfidenzintervalls liegt. Aber gibt es eine Funktion zur Berechnung des p-Wertes für cor = 0,75?
x <- rnorm(10)
y <- x+rnorm(10)
cor.test(x, y)
r
correlation
Mosaik
quelle
quelle
Antworten:
Mit der Varianz, die die Fisher-Atan-Transformation stabilisiert , können Sie den p-Wert als erhalten
oder welche Version des einseitigen / zweiseitigen p-Werts Sie auch immer interessieren. Offensichtlich benötigen Sie die Stichprobengröße
n
und den Stichproben-Korrelationskoeffizientenr
als Eingabe dafür.quelle
Die Verteilung von r_hat um rho wird durch diese R-Funktion angegeben, die aus dem Matlab-Code auf der Webseite von Xu Cui angepasst wurde . Es ist nicht so schwierig, daraus eine Schätzung für die Wahrscheinlichkeit zu machen, dass ein beobachteter Wert "r" bei einer Stichprobengröße von "n" und einem hypothetischen wahren Wert von "ro" unwahrscheinlich ist.
Dann können Sie mit dieser Funktion die Verteilung eines Null-Rho von 0,75 zeichnen, die Wahrscheinlichkeit berechnen, dass r_hat kleiner als 0,6 ist, und in diesem Bereich des Diagramms Schatten spenden:
quelle
Ein anderer Ansatz, der möglicherweise weniger genau ist als die Transformation von Fisher, aber ich denke, er könnte intuitiver sein (und neben der statistischen Signifikanz auch Ideen zur praktischen Bedeutung liefern), ist der visuelle Test:
Es gibt eine Implementierung in der
vis.test
Funktion imTeachingDemos
Paket für R. Eine Möglichkeit, sie für Ihr Beispiel auszuführen, ist:Wenn Ihre realen Daten nicht normal sind oder die Beziehung nicht linear ist, kann dies natürlich mit dem obigen Code leicht erfasst werden. Wenn Sie diese gleichzeitig testen möchten, würde der obige Code dies tun, oder der obige Code könnte angepasst werden, um die Art der Daten besser darzustellen.
quelle