Kode R berikut ini digunakan dalam Blog Statistik untuk Psikologi dalam artikel berjudul Fun Facts Koefisien Regresi (Terstandardisasi), Korelasi Parsial dan Semi-Parsial
library(ppcor) #me-load paket R bernama ppcor untuk melakukan analisis korelasi parsial dan korelasi
# semi-parsial
set.seed(8888)
x1=rnorm(100)
x2=0.4*x1+sqrt(1-0.4^2)*rnorm(100)
y=0.1*x1+0.15*x2+sqrt(1-0.02)*rnorm(100)
s1=sd(x1)
s2=sd(x2)
sy=sd(y)
ry1=cor(x1,y)
ry2=cor(x2,y)
r12=cor(x1,x2)
Sementara perintah-perintah ini saya membuat variabel baru yang merupakan variabel x1,x2, dan y dalam skor standar (z1,z2 dan zy).
z1=(x1-mean(x1))/sd(x1)
z2=(x2-mean(x2))/sd(x2)
zy=(y-mean(y))/sd(y)
b=(ry1-ry2*r12)/(1-r12^2)*(sy/s1)
beta=(ry1-ry2*r12)/(1-r12^2)
par.r=(ry1-ry2*r12)/sqrt((1-r12^2)*(1-ry2^2))
semi.par.r=(ry1-ry2*r12)/sqrt((1-r12^2))
b
## [1] 0.1868164
summary(lm(y~x1+x2))$coeff[2,1:4]
## Estimate Std. Error t value Pr(>|t|)
## 0.18681637 0.10718053 1.74300648 0.08450135
beta
## [1] 0.1740606
summary(lm(zy~z1+z2))$coeff[2,1:4]
## Estimate Std. Error t value Pr(>|t|)
## 0.17406065 0.09986231 1.74300648 0.08450135
# korelasi parsial
par.r
## [1] 0.1742675
pcor(cbind(x1,x2,y))$estimate[3,1]
## [1] 0.1742675
#korelasi semi parsial
semi.par.r
## [1] 0.1678641
spcor(cbind(x1,x2,y))$estimate[3,1]
## [1] 0.1678641
d Untuk uji signifikansi keempat koefisien
summary(lm(y~x1+x2))$coeff[2,1:4]
## Estimate Std. Error t value Pr(>|t|)
## 0.18681637 0.10718053 1.74300648 0.08450135
summary(lm(zy~z1+z2))$coeff[2,1:4]
## Estimate Std. Error t value Pr(>|t|)
## 0.17406065 0.09986231 1.74300648 0.08450135
c(pcor(cbind(x1,x2,y))$statistic[3,1],pcor(cbind(x1,x2,y))$p.value[3,1])
## [1] 1.74300648 0.08133248
c(spcor(cbind(x1,x2,y))$statistic[3,1],spcor(cbind(x1,x2,y))$p.value[3,1])
## [1] 1.67706738 0.09352931
#R kuadrat dari regresi dengan melibatkan semua variabel prediktor
summary(lm(y~x1+x2))$r.squared
## [1] 0.1003169
#R kuadrat dari regresi dengan hanya melibatkan x1
summary(lm(y~x2))$r.squared
## [1] 0.07213849
#Perhitungan Perubahan R Kuadrat
summary(lm(y~x1+x2))$r.squared-summary(lm(y~x2))$r.squared
## [1] 0.02817837
#Perhitungan korelasi semi parsial kuadrat
semi.par.r^2
## [1] 0.02817837
#Koefisien regresi yang tak terstandardisasi
x1.star=lm(x1~x2)$residual
yx2.star=lm(y~x2)$residual
lm(yx2.star~x1.star)$coeff
## (Intercept) x1.star
## -1.421335e-17 1.868164e-01
lm(y~x1+x2)$coeff
## (Intercept) x1 x2
## -0.01433446 0.18681637 0.26569439
#Koefisien korelasi parsial
x1.star=lm(x1~x2)$residual
yx2.star=lm(y~x2)$residual
cor(yx2.star,x1.star)
## [1] 0.1742675
pcor(cbind(x1,x2,y))$estimate[3,1]
## [1] 0.1742675
#Koefisien korelasi semi parsial
x1.star=lm(x1~x2)$residual
cor(x1.star,y)
## [1] 0.1678641
spcor(cbind(x1,x2,y))$estimate[3,1]
## [1] 0.1678641