Konspektis kasutatavad andmed.

cor()

Funktsioonile cor() saame anda sisendiks terve tabeli. Allolevas näites olen sisendi määramisel kasutanud funktsiooni data.frame(). Selle abil saame võtta mingis andmestikus olevad tunnused ja koostada neist uue andmestiku. See lähenemine võimaldab arvutada korrelatsioone mitme muutuja vahel, mis ei paikne andmestikus kõrvuti.

tabel_cor <- data.frame(tabel$avatus, tabel$ekstravertsus, tabel$neurootilisus) 

Nüüd on töökeskkonnas olemas objekt nimega tabel_cor. Selles uues andmestikus on kolm muutujat: avatus, ekstravertsus, neurootilisus.
Järgmisena saame kasutada funktsiooni cor(), et arvutada korrelatsioonid nende tunnuste vahel:

cor(tabel_cor)
##                     tabel.avatus tabel.ekstravertsus tabel.neurootilisus
## tabel.avatus           1.0000000          0.46325180          0.28952552
## tabel.ekstravertsus    0.4632518          1.00000000          0.00672297
## tabel.neurootilisus    0.2895255          0.00672297          1.00000000

Eelnevad koodiread saame panna ka ühele reale (sellisel juhul ei loo me töökeskkonda uut andmestikku):

cor(data.frame(tabel$avatus, tabel$ekstravertsus, tabel$neurootilisus)) # andsin funktsioonile cor() argumendiks uue andmestiku. data.frame(tabel$avatus, tabel$ekstravertsus, tabel$neurootilisus) - genereerib uue andmestiku, kus on 3 veergu: avatus, ekstravertsus, neurootilisus.

cor.test() ja corr.test()

Kui tahate arvutada korrelatsiooni kahe muutuja vahel, siis soovitan kasutada funktsiooni cor.test(). Vaikimisi teeb see funktsioon Pearsoni korrelatsioonanalüüsi. Selle seade muutmiseks peab lisama argumendi “method =”spearman"".

cor.test(tabel$sotsiaalsus, tabel$ekstravertsus)# saab kasutada kahete muutujat
## 
##  Pearson's product-moment correlation
## 
## data:  tabel$sotsiaalsus and tabel$ekstravertsus
## t = 7.4918, df = 197, p-value = 2.239e-12
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.3550503 0.5724810
## sample estimates:
##      cor 
## 0.470886

Funktsioon corr.test() on psych paketis olev funktsioon, mis võimaldab võtta korrelatsiooni mitme muutuja vahel korraga (sarnaselt funktsioonile cor()). Erinevalt funktsioonist cor() kuvab funktsioon corr.test() ka p-väärtused.

# install.packages("psych")
library("psych") #nüüd saame kasutada paketi funktsioone
corr.test(tabel[,7:9])
## Call:corr.test(x = tabel[, 7:9])
## Correlation matrix 
##             avatus depressioon traitanx
## avatus        1.00       -0.06    -0.08
## depressioon  -0.06        1.00     0.66
## traitanx     -0.08        0.66     1.00
## Sample Size 
## [1] 200
## Probability values (Entries above the diagonal are adjusted for multiple tests.) 
##             avatus depressioon traitanx
## avatus        0.00        0.48     0.48
## depressioon   0.40        0.00     0.00
## traitanx      0.24        0.00     0.00
## 
##  To see confidence intervals of the correlations, print with the short=FALSE option

corr.test() funktsioonile saame anda sisendiks ka andmestiku:

corr.test(data.frame(tabel$ekstravertsus,tabel$sotsiaalsus, tabel$avatus)) #teebe korrelatsioonitabeli
## Call:corr.test(x = data.frame(tabel$ekstravertsus, tabel$sotsiaalsus, 
##     tabel$avatus))
## Correlation matrix 
##                     tabel.ekstravertsus tabel.sotsiaalsus tabel.avatus
## tabel.ekstravertsus                1.00              0.47         0.46
## tabel.sotsiaalsus                  0.47              1.00         0.42
## tabel.avatus                       0.46              0.42         1.00
## Sample Size 
##                     tabel.ekstravertsus tabel.sotsiaalsus tabel.avatus
## tabel.ekstravertsus                 200               199          200
## tabel.sotsiaalsus                   199               199          199
## tabel.avatus                        200               199          200
## Probability values (Entries above the diagonal are adjusted for multiple tests.) 
##                     tabel.ekstravertsus tabel.sotsiaalsus tabel.avatus
## tabel.ekstravertsus                   0                 0            0
## tabel.sotsiaalsus                     0                 0            0
## tabel.avatus                          0                 0            0
## 
##  To see confidence intervals of the correlations, print with the short=FALSE option

Joonis

Üks lihtne viis, kuidas illustreerida seost kahe muutuja vahel:

plot(x = tabel$sotsiaalsus, y = tabel$ekstravertsus)
reg1 <- lm(tabel$ekstravertsus~tabel$sotsiaalsus)#arvutab regressioonisirge
abline(reg1)#lisme regressioonisirge eelnevale joonisele

Teeme joonise ilusamaks:

plot(x = tabel$sotsiaalsus, y = tabel$ekstravertsus, main ="Korrelatsioon", ylab = "ekstravertsus", xlab ="sotsiaalsus")
abline(reg1, col = "blue", lwd = 2)#lisme regressioonisirge eelnevale joonisele

Sama joonise saame teha ka ggplot2 paketi abil.

library(ggplot2)
ggplot(tabel, aes(x= sotsiaalsus, y = ekstravertsus))+
    geom_point(shape=1) +    # shape = 1 - tühjad ringid
    geom_smooth(method=lm,   # lisab regressioonisirge
                se=FALSE)+    # SE = FALSE - ei lisa usalduspiire
    theme_bw()