2016-07-01 34 views
2

extrahiert werden Im versuchen, 95 percent confidence interval aus dem Ergebnis der Pearson-Korrelation zu extrahieren.R: Wie Konfidenzintervall von cor.test-Funktion

Meine Ausgabe sieht wie folgt aus:

Pearson's product-moment correlation 

data: newX[, i] and newY 
t = 2.1253, df = 6810, p-value = 0.0336 
alternative hypothesis: true correlation is not equal to 0 
95 percent confidence interval: 
0.001998576 0.049462864 
sample estimates: 
     cor 
0.02574523 

ich es mit dem folgenden Code erhalten

t <- apply(FNR[, -1], 2, cor.test, FNR$HDL, method="pearson") 

ich Hilfe schätzen würde. Vielen Dank.

Antwort

3

Blick Lassen Sie uns auf der cor.test Seite und dann das letzte Beispiel ändern, so dass es Ihren Code ähnelt:?

t <- apply(USJudgeRatings[, -1], 2, cor.test, USJudgeRatings$CONT, method="pearson") 

Dies ist die erste Teilliste des zurückgegebenen Wert:

> str(t[1]) 
List of 1 
$ INTG:List of 9 
    ..$ statistic : Named num -0.861 
    .. ..- attr(*, "names")= chr "t" 
    ..$ parameter : Named int 41 
    .. ..- attr(*, "names")= chr "df" 
    ..$ p.value : num 0.395 
    ..$ estimate : Named num -0.133 
    .. ..- attr(*, "names")= chr "cor" 
    ..$ null.value : Named num 0 
    .. ..- attr(*, "names")= chr "correlation" 
    ..$ alternative: chr "two.sided" 
    ..$ method  : chr "Pearson's product-moment correlation" 
    ..$ data.name : chr "newX[, i] and USJudgeRatings$CONT" 
    ..$ conf.int : atomic [1:2] -0.417 0.174 
    .. ..- attr(*, "conf.level")= num 0.95 
    ..- attr(*, "class")= chr "htest" 

zu Holen Sie sich alle conf.int Knoten aus dieser Liste mit 11 Elementen, verwenden Sie sapply mit der "[[" Funktion und geben Sie den character-value Namen, "conf.int":

> sapply(t, "[[", "conf.int") 
      INTG  DMNR  DILG  CFMG  DECI  PREP 
[1,] -0.4168591 -0.4339992 -0.2890276 -0.1704402 -0.2195110 -0.2898732 
[2,] 0.1741182 0.1537524 0.3115762 0.4199860 0.3770813 0.3107427 
      FAMI  ORAL  WRIT  PHYS  RTEN 
[1,] -0.3234896 -0.3112193 -0.3396845 -0.2501717 -0.3306462 
[2,] 0.2768389 0.2893898 0.2599541 0.3489073 0.2694228 

Die sapply-Funktion gibt ein spaltenorientiertes Matrixergebnis (mindestens mit dem Standardwert von simply = TRUE) zurück, wenn eine Reihe von Argumenten zurückgegeben wird, die gleiche Längenwerte zurückgeben, wie es hier der Fall ist.

+0

Alternative, könnten Sie 'sapply (t, broom :: ordentlich)' verwenden und die Konfidenzintervalle aus den Spalten des resultierenden Datenrahmens erhalten. – Benjamin

4

cor.test gibt eine Liste mit verschiedenen Elementen zurück, einschließlich des Konfidenzintervalls. Sie können die Struktur des durch cor.test zurückgegebene Objekt sehen wie folgt aus (mit dem eingebauten in mtcars Datenrahmen für Abbildung):

ct = cor.test(mtcars$mpg, mtcars$wt, method="pearson") 

str(ct) 
List of 9 
$ statistic : Named num -9.56 
    ..- attr(*, "names")= chr "t" 
$ parameter : Named int 30 
    ..- attr(*, "names")= chr "df" 
$ p.value : num 1.29e-10 
$ estimate : Named num -0.868 
    ..- attr(*, "names")= chr "cor" 
$ null.value : Named num 0 
    ..- attr(*, "names")= chr "correlation" 
$ alternative: chr "two.sided" 
$ method  : chr "Pearson's product-moment correlation" 
$ data.name : chr "mtcars$mpg and mtcars$wt" 
$ conf.int : atomic [1:2] -0.934 -0.744 
    ..- attr(*, "conf.level")= num 0.95 
- attr(*, "class")= chr "htest" 

nun das Konfidenzintervall extrahieren:

ct$conf.int[1:2] 

[1] -0,9338264 -0,7440872

+0

Vielen Dank für Ihre Antwort – user6108949