Regresi multivariate merupakan suatu metode statistika yang digunakan untuk mengetahui hubungan antar variabel respon dan prediktor, dengan jumlah variabel prediktor respon lebih dari satu. Model regresi linier multivariate adalah model regresi linier dengan lebih dari satu variabel respon (Y) yang saling berkorelasi dan satu atau lebih variabel prediktor (X).
Dalam pembelajaran mengenai Regresi Multivariate ini, akan dilakukan analisis apakah variabel Presentase Penduduk Miskin, Akses Terhadap Hunian Layak, Akses Terhadap Sanitasi Layak, dan Tingkat Partisipasi Angkatan Kerja signifikan mempengaruhi Indeks Pembangunan Manusia dan Indeks Pembangunan Gender.
\[ Y1= \beta_01+\beta_11X_1+…+\beta_p1X_p+\epsilon_1 \] \[ Y2= \beta_02+\beta_12X_1+…+\beta_p2X_p+\epsilon_2 \] \[ . \] \[ . \] \[ Yq= \beta_0q+\beta_1qX_1+…+\beta_pqX_p+\epsilon_q \]
Terlebih dahulu, akan dilakukan pendefinisian variabel, yakni
x1
= Presentase Penduduk Miskin, x2
= Akses
Terhadap Hunian Layak, x3
= Akses Terhadap Sanitasi Layak,
x4
= Tingkat Partisipasi Angkatan Kerja, y1
=
Indeks Pembangunan Manusia, dan y2
= Indeks Pembangunan
Gender.
## Input Data
dataIPGIPM = read.csv("DataIPGIPM.csv")
dataIPGIPM
## IPM IPG AHH APS Persentase.Penduduk.Miskin
## 1 73.40 92.55 70.38 83.41 14.45
## 2 73.37 91.31 70.03 79.25 8.15
## 3 73.75 94.93 70.24 84.33 5.95
## 4 74.04 88.98 72.29 78.15 6.68
## 5 72.77 89.29 71.82 72.46 7.58
## 6 71.62 93.25 70.71 71.71 11.78
## 7 72.78 91.57 69.97 79.57 14.04
## 8 71.15 90.75 71.30 71.74 11.11
## 9 72.85 89.84 71.28 69.53 4.52
## 10 77.11 93.96 70.97 84.97 5.69
## 11 82.46 95.24 73.75 72.50 4.44
## 12 73.74 90.23 74.10 68.58 7.62
## 13 73.39 92.87 74.79 70.87 10.77
## 14 81.07 94.93 75.22 91.17 11.04
## 15 73.38 92.15 72.16 74.07 10.35
## 16 73.87 92.48 70.82 69.64 6.17
## 17 77.10 94.59 73.03 84.73 4.25
## 18 70.20 91.39 67.52 77.46 13.85
## 19 66.68 93.38 67.81 75.93 19.96
## 20 69.41 88.06 71.37 69.25 6.71
## 21 72.20 89.49 70.33 66.32 5.11
## 22 72.50 89.65 69.47 69.95 4.29
## 23 78.20 87.13 74.79 81.50 6.11
## 24 72.49 88.46 72.74 77.03 6.45
## 25 74.36 95.06 72.45 74.55 7.38
## 26 70.95 92.63 69.22 76.29 12.41
## 27 73.46 93.19 71.26 71.00 8.70
## 28 72.79 91.20 71.53 74.60 11.43
## 29 70.45 88.25 68.89 71.70 15.15
## 30 67.55 90.25 66.06 71.57 11.49
## 31 70.94 93.51 66.84 79.90 16.42
## 32 70.21 90.59 69.16 78.38 6.46
## 33 66.66 84.18 66.85 80.58 20.49
## 34 62.25 81.64 66.49 64.15 26.03
## Akses.Terhadap.Hunian.Layak TPT Akses.Terhadap.Sanitasi.Layak TPAK
## 1 65.91 6.03 78.85 64.77
## 2 70.95 5.89 84.18 71.06
## 3 59.85 5.94 70.97 69.61
## 4 71.53 4.23 84.58 64.45
## 5 64.12 4.53 83.04 68.75
## 6 61.82 4.11 80.54 70.72
## 7 54.74 3.42 80.28 70.91
## 8 63.15 4.23 84.58 70.04
## 9 32.57 4.56 93.21 68.34
## 10 54.21 6.80 91.10 68.68
## 11 38.80 6.53 93.50 65.21
## 12 54.17 7.44 74.88 66.49
## 13 68.85 5.13 85.20 71.72
## 14 85.79 3.69 96.42 74.08
## 15 70.74 4.88 83.72 72.56
## 16 63.06 7.52 86.41 64.44
## 17 84.26 2.69 95.70 77.08
## 18 66.31 2.80 85.11 73.31
## 19 42.70 3.14 75.67 75.72
## 20 64.16 5.05 79.89 69.42
## 21 56.49 4.10 76.31 67.18
## 22 57.50 4.31 82.89 69.76
## 23 75.82 5.31 91.21 65.57
## 24 71.43 4.01 84.22 70.35
## 25 72.39 6.10 85.91 64.09
## 26 59.60 2.95 75.80 69.85
## 27 71.88 4.33 93.69 65.66
## 28 74.01 3.15 88.99 70.07
## 29 70.75 3.06 81.72 70.79
## 30 59.28 2.27 80.73 71.05
## 31 63.61 6.31 78.17 63.60
## 32 68.17 4.31 80.64 67.77
## 33 56.92 5.38 76.30 67.24
## 34 29.01 2.67 43.00 77.20
# Variabel Independen
x1 <- (dataIPGIPM[,5])
x2 <- (dataIPGIPM[,6])
x3 <- (dataIPGIPM[,8])
x4 <- (dataIPGIPM[,9])
# Variabel Dependen
y1 <- (dataIPGIPM[,1])
y2 <- (dataIPGIPM[,2])
Setelah melakukan pendefinisian variabel, akan diperiksa korelasi
antar variabel y1
dan y2
, sebagai berikut.
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
library(reshape2)
## Warning: package 'reshape2' was built under R version 4.3.3
library(corrplot)
## Warning: package 'corrplot' was built under R version 4.3.3
## corrplot 0.94 loaded
# Menghitung matriks korelasi
correlation_matrix <- cor(cbind(y1, y2))
correlation_matrix
## y1 y2
## y1 1.000000 0.599022
## y2 0.599022 1.000000
# Membuat heatmap menggunakan ggplot2
corrplot(correlation_matrix, method = "circle",
type = "upper",
tl.col = "black", tl.srt = 45,
addCoef.col = "black")
Berdasarkan matriks korelasi antara variabel dependen
y1
dany2
dan juga dengan melihat pada heatmap diatas, didapatkan bahwa IPM dan IPG berkorelasi secara positif dengan nilai korelasi (r) sebesar 0,60. Nilai r tersebut mengimplikasikan bahwa semakin tinggi tingkat pembangunan manusia (IPM) di suatu wilayah, semakin tinggi pula tingkat kesetaraan gender (IPG) di wilayah tersebut. Namun, hubungan ini tidak terlalu kuat karena nilai korelasinya masih kurang dari 1.
Selanjutnya kita akan membentuk model regresi multivariate
menggunakan fungsi lm()
dengan variabel
dependen y1
dan y2
sebagai matriks dan
variabel independen x1
hingga x4
.
Fungsi summary()
digunakan untuk
memberikan ringkasan statistik dari model yang telah dibangun.
model = lm(cbind(y1,y2) ~ x1+x2+x3+x4, data=dataIPGIPM)
summary(model)
## Response y1 :
##
## Call:
## lm(formula = y1 ~ x1 + x2 + x3 + x4, data = dataIPGIPM)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.2298 -1.5963 -0.1172 1.4004 6.0717
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 60.779971 10.412198 5.837 2.49e-06 ***
## x1 -0.235296 0.113187 -2.079 0.04659 *
## x2 0.006205 0.040177 0.154 0.87833
## x3 0.215036 0.066274 3.245 0.00296 **
## x4 -0.056640 0.130353 -0.435 0.66713
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.502 on 29 degrees of freedom
## Multiple R-squared: 0.6308, Adjusted R-squared: 0.5799
## F-statistic: 12.39 on 4 and 29 DF, p-value: 5.386e-06
##
##
## Response y2 :
##
## Call:
## lm(formula = y2 ~ x1 + x2 + x3 + x4, data = dataIPGIPM)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.4035 -1.9095 0.1314 1.3913 5.5290
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 75.264060 11.351613 6.630 2.87e-07 ***
## x1 -0.043753 0.123399 -0.355 0.7255
## x2 0.002186 0.043802 0.050 0.9605
## x3 0.161443 0.072253 2.234 0.0333 *
## x4 0.040351 0.142114 0.284 0.7785
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.727 on 29 degrees of freedom
## Multiple R-squared: 0.297, Adjusted R-squared: 0.2
## F-statistic: 3.062 on 4 and 29 DF, p-value: 0.03206
Dari perhitungan di atas, didapatkan model regresi sebagai berikut
Model Regresi 1
\[ \hat{Y}_1= 60.779971 -0.235296X_1 + 0.006205X_2 + 0.215036X_3 - 0.056640X_4 \] Berdasarkan model regresi 1, dapat disimpulkan bahwa :
β01 = Ketika keempat variabel prediktor (X) bernilai nol, maka nilai Indeks Pembangunan Manusia adalah 60,78.
β11 = Nilai Indeks Pembangunan Manusia turun sebesar 0,235 jika nilai Presentase Penduduk Miskin naik satu satuan.
β21 = Nilai Indeks Pembangunan Manusia akan naik sebesar 0.006 jika nilai Akses Terhadap Hunian Layak naik satu satuan.
β31 = Nilai Indeks Pembangunan Manusia akan naik sebesar 0,215 jika nilai Akses Terhadap Sanitasi Layak naik satu satuan.
β41 = Nilai Indeks Pembangunan Manusia akan turun sebesar 0,056 jika nilai Tingkat Partisipasi Angkatan Kerja naik satu satuan.
Nilai koefisien determinasi (R2) sebesar 0,5799 berarti bahwa 57,99% sebaran variabel Indeks Pembangunan Manusia dapat dijelaskan oleh variabel Presentase Penduduk Miskin, Akses Terhadap Hunian Layak, Akses Terhadap Sanitasi Layak, dan Tingkat Partisipasi Angkatan Kerja.
Dari perhitungan di atas, didapatkan pula model regresi 2 sebagai berikut
Model Regresi 2
\[ \hat{Y}_2= 75.264060 - 0.042753X_1 + 0.002186X_2 + 0.161443X_3 + 0.040351X_4 \] Berdasarkan model regresi 2, dapat disimpulkan bahwa :
β02 = Ketika keempat variabel prediktor (X) bernilai nol, maka nilai Indeks Pembangunan Gender adalah 75,26.
β12 = Nilai Indeks Pembangunan Gender turun sebesar 0,043 jika nilai Presentase Penduduk Miskin naik satu satuan.
β22 = Nilai Indeks Pembangunan Gender akan naik sebesar 0.002 jika nilai Akses Terhadap Hunian Layak naik satu satuan.
β32 = Nilai Indeks Pembangunan Gender akan naik sebesar 0,161 jika nilai Akses Terhadap Sanitasi Layak naik satu satuan.
β42 = Nilai Indeks Pembangunan Gender akan naik sebesar 0,040 jika nilai Tingkat Partisipasi Angkatan Kerja naik satu satuan.
Nilai koefisien determinasi (R2) sebesar 0,2 berarti bahwa hanya 20% sebaran variabel Indeks Pembangunan Gender dapat dijelaskan oleh variabel Presentase Penduduk Miskin, Akses Terhadap Hunian Layak, Akses Terhadap Sanitasi Layak, dan Tingkat Partisipasi Angkatan Kerja. Artinya diperlukan variabel lain agar dapat menduga nilai IPG dengan baik.
Dalam pengujian signifikansi, tentu diperlukan terpenuhinya asumsi, maka dari itu selanjutnya akan dilakukan pengujian asumsi data.
Menghitung residual dari model dan menguji asumsi normalitas
menggunakan uji Shapiro-Wilk dengan
fungsi mshapiro.test()
. Uji ini akan
membantu menentukan apakah residual terdistribusi normal.
Hipotesis :
H0 : Residual Berdistribusi Normal Multivariate
H1 : Residual Tidak Berdistribusi Normal Multivariate
Taraf Signifikansi : \[\alpha = 5\% = 0.05\]
Kriteria Uji :
Tolak H0 jika nilai p-value < \[ \alpha\]
resid(model)
## y1 y2
## 1 2.324109434 2.4307630
## 2 -0.009403132 -0.2102005
## 3 2.680314947 5.5289829
## 4 -0.149294296 -2.4036447
## 5 -0.586840463 -1.9629526
## 6 -0.085153911 2.5099569
## 7 1.717217593 0.9786263
## 8 -1.628315134 -0.6470578
## 9 -3.241217654 -3.1031976
## 10 1.632787118 1.3476106
## 11 6.071657221 2.3591615
## 12 2.080995886 0.4091199
## 13 0.458149451 1.2777207
## 14 5.817536727 1.4058787
## 15 0.703428572 0.7402537
## 16 -0.780821414 0.7975205
## 17 0.584115650 0.7673251
## 18 -1.881966255 -0.1115939
## 19 -1.651366022 3.6241342
## 20 -3.436484507 -2.7495942
## 21 -0.332412552 -0.7044789
## 22 -1.500426193 -1.7489663
## 23 2.487717227 -5.4035245
## 24 -1.341201159 -3.1134393
## 25 0.023688641 3.5049093
## 26 0.376850455 2.7227211
## 27 -2.146609259 0.3743994
## 28 -0.927014896 -0.9199741
## 29 -0.767393278 -2.5554446
## 30 -4.229794747 -0.5411686
## 31 0.421869584 3.6389772
## 32 -2.974923812 -0.2938029
## 33 -2.250675883 -5.3432989
## 34 2.540876062 -2.6057217
library(mvnormtest)
## Warning: package 'mvnormtest' was built under R version 4.3.3
mshapiro.test(t(resid(model)))
##
## Shapiro-Wilk normality test
##
## data: Z
## W = 0.97377, p-value = 0.5727
Dari hasil uji asumsi normalitas menggunakan metode shapiro-wilk, didapatkan p-value (0,5727) > alpha (0,05), maka dari itu diputuskan untuk terima H0, yang artinya residual data berdistribusi normal. Residual data yang berdistribusi normal mengindikasikan bahwa data berdistribusi normal. Sehingga asumsi normalitas terpenuhi.
Membuat dataframe untuk variabel independen dan menghitung matriks korelasi. Variabel Inflasi Faktor (VIF) dihitung untuk mengidentifikasi multikolinearitas. VIF yang tinggi (umumnya di atas 10) menunjukkan adanya masalah multikolinearitas.
Multikolinearitas di cek berdasarkan nilai VIF, adapun batasan nilai VIF yang dapat digunakan adalah 3, 5, atau 10. Jika nilai VIF lebih besar daripada batas yang ditentukan maka terjadi multikolinearitas antar variabel independen
x = data.frame(x1=x1, x2=x2, x3=x3, x4=x4)
R <- cor(x) ; R
## x1 x2 x3 x4
## x1 1.0000000 -0.28309618 -0.6314513 0.36424536
## x2 -0.2830962 1.00000000 0.5081694 -0.04399359
## x3 -0.6314513 0.50816937 1.0000000 -0.23339464
## x4 0.3642454 -0.04399359 -0.2333946 1.00000000
VIF <- diag(solve(R)) ; VIF
## x1 x2 x3 x4
## 1.815056 1.360357 2.072080 1.159720
Dari hasil uji asumsi multikolinearitas dengan melihat nilai VIF, didapatkan semua nilai VIF untuk variabel
x1
hinggax4
< 10, yang artinya tidak terdapat multikolinearitas pada data, maka asumsi multikolinearitas terpenuhi.
Menggunakan resettest()
dari paket
lmtest
untuk menguji asumsi linearitas.
Uji ini memeriksa apakah model telah ditentukan dengan benar dan apakah
hubungan antara variabel independen dan dependen adalah linear.
Hipotesis
H0 : Model Persamaan Regresi Linier
H1 : Bukan Model Persamaan Regresi Linier
Taraf Signifikansi : \[\alpha = 5\% = 0.05\]
Kriteria Uji :
Tolak H0 jika nilai p-value < \[ \alpha\]
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.3.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.3.3
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
resettest(model)
##
## RESET test
##
## data: model
## RESET = 1.9336, df1 = 4, df2 = 25, p-value = 0.1361
Dari hasil uji asumsi linearitas menggunakan
resettest()
, didapatkan p-value (0,1361) > alpha (0,05), maka dari itu diputuskan untuk terima H0, yang artinya model regresi linear dapat digunakan. Sehingga asumsi linearitas terpenuhi.
Menggunakan bptest()
untuk melakukan
uji Breusch-Pagan guna memeriksa homoskedastisitas residual.
Homoskedastisitas menunjukkan bahwa varians residual adalah konstan.
Hipotesis
H0 : Homoskedastisitas
H1 : Heteroskedastisitas
Taraf Signifikansi : \[\alpha = 5\% = 0.05\]
Kriteria Uji :
Tolak H0 jika nilai p-value < \[ \alpha\]
bptest(model)
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 14.541, df = 4, p-value = 0.005755
Dari hasil uji asumsi homoskedastisitas menggunakan
bptest()
, didapatkan p-value (0,005) < alpha (0,05), maka dari itu diputuskan untuk tolak H0, yang artinya data bersifat heteroskedastisitas, namun demi tujuan pembelajaran, akan diasumsikan data bersifat homoskedastisitas.
Setelah memeriksa semua asumsi, selanjutnya akan dilakukan pengujian signifikansi menggunakan Wilk’s Lamda, dengan formula sebagai berikut:
\[ \Lambda=\frac{|E|}{|E+H|}=\frac{|Y^TY-T(X)T(Y)|}{|Y^TY-nyy^T|} \]
Hipotesis
H0 : Model tidak signifikan (Seluruh variabel bebas tidak memiliki pengaruh yang signifikan secara statistika terhadap variabel tak bebas)
H1 : Model signifikan (terdapat minimal satu variabel bebas yang memiliki pengaruh signifikan secara statistika terhadap variabel tak bebas)
Taraf Signifikansi : \[\alpha = 5\% = 0.05\]
Titik Kritis :
Dalam pengujian ini digunakan titik kritis yakni nilai pada tabel wilk’s lambda dengan taraf signifikansi 0,05, df1 = 2 (banyak variabel dependen), dan df2 = 31 (banyak data - banyak variabel dependen - 1).
\[Wilk's~\lambda(0.05;2;31) = 0.725\]
Kriteria Uji :
Tolak H0 jika Wilk’s hitung < Wilk’s tabel
##Uji Signifikansi Parameter
# MATRIKS X
u = matrix(1, nrow=34, ncol=1)
x = data.frame(x1=x1, x2=x2, x3=x3, x4=x4)
X = cbind(u, x)
# MATRIKS Y
Y = as.matrix(data.frame(y1=y1, y2=y2))
# MATRIKS YBAR
YBAR = colMeans(Y)
YBAR1 = matrix(c(YBAR), ncol=1, nrow=2)
# MATRIKS BETA
Beta = cbind(coef(model))
# ukuran sampel
n = 34
# PERHITUNGAN
E = t(Y)%*%Y-t(Beta)%*%t(X)%*%Y ; E
## y1 y2
## y1 181.49343 71.53476
## y2 71.53476 215.72041
detE = det(E)
detE
## [1] 34034.61
EH = (t(Y)%*%Y)-(n*(YBAR1%*%t(YBAR1)))
detEH = det(EH)
det(EH)
## [1] 96718.92
WilksLambda = detE/detEH
WilksLambda
## [1] 0.351892
Dari hasil pengujian signifikansi parameter di atas, didapatkan nilai Wilk’s lambda hitung (0,352) < Wilk’s tabel (0,725), dengan itu kita memiliki bukti untuk menolak H0. Sehingga dapat disimpulkan bahwa Presentase Penduduk Miskin, Akses Terhadap Hunian Layak, Akses Terhadap Sanitasi Layak, dan Tingkat Partisipasi Angkatan Kerja secara serentak signifikan mempengaruhi Indeks Pembangunan Manusia dan Indeks Pembangunan Gender.