Konspektis kasutatavad andmed.
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.
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
Ü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()