Regresi multivariat adalah teknik statistik yang digunakan untuk menganalisis hubungan antara satu variabel dependen (atau respons) dan dua atau lebih variabel independen (atau prediktor). Berbeda dengan regresi sederhana, yang hanya melibatkan satu variabel independen, regresi multivariat memungkinkan kita untuk memahami bagaimana beberapa variabel independen secara simultan mempengaruhi variabel dependen.
data = read.csv("C:/Users/Fadhail/Documents/Semester 3/ADM/DataIPGIPM.csv")
head(data)
## 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
## 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
# Variabel Independen
x1 <- (data[,3])
x2 <- (data[,6])
x3 <- (data[,8])
x4 <- (data[,9])
# Variabel Dependen
y1 <- (data[,1])
y2 <- (data[,2])
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 = "red", tl.srt = 45,
addCoef.col = "red")
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=data)
summary(model)
## Response y1 :
##
## Call:
## lm(formula = y1 ~ x1 + x2 + x3 + x4, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.2147 -1.2371 -0.0941 1.1760 4.2538
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.93993 13.27403 0.372 0.712487
## x1 0.87242 0.17436 5.004 2.51e-05 ***
## x2 -0.02162 0.03193 -0.677 0.503718
## x3 0.18259 0.04846 3.768 0.000749 ***
## x4 -0.11207 0.09824 -1.141 0.263291
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.965 on 29 degrees of freedom
## Multiple R-squared: 0.7723, Adjusted R-squared: 0.7409
## F-statistic: 24.6 on 4 and 29 DF, p-value: 5.847e-09
##
##
## Response y2 :
##
## Call:
## lm(formula = y2 ~ x1 + x2 + x3 + x4, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.6354 -1.7894 0.1006 1.3630 5.8415
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.253e+01 1.846e+01 3.929 0.000485 ***
## x1 3.543e-02 2.425e-01 0.146 0.884856
## x2 6.623e-04 4.441e-02 0.015 0.988204
## x3 1.712e-01 6.740e-02 2.541 0.016681 *
## x4 2.691e-02 1.366e-01 0.197 0.845250
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.732 on 29 degrees of freedom
## Multiple R-squared: 0.2944, Adjusted R-squared: 0.1971
## F-statistic: 3.025 on 4 and 29 DF, p-value: 0.03354
respone y1 :
Variabel x1 dan x3 memiliki pengaruh signifikan terhadap y1, sementara x2 dan x4 tidak signifikan.
Model ini memiliki kemampuan yang baik dalam menjelaskan variabilitas y1 (Adjusted R-squared sekitar 74%).
Model ini secara keseluruhan signifikan, tetapi hanya beberapa prediktor yang berkontribusi secara signifikan.
respone y2 :
Hanya variabel x3 yang berpengaruh signifikan terhadap y2, sementara x1, x2, dan x4 tidak signifikan.
Model ini memiliki kemampuan yang rendah dalam menjelaskan variabilitas y2 (Adjusted R-squared sekitar 19.71%).
Meskipun model signifikan secara keseluruhan, hanya satu prediktor yang berkontribusi signifikan, dan nilai R-squared menunjukkan model ini kurang efektif dalam memprediksi y2.
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 :
α = 5% = 0,05
Kriteria Uji :
Tolak H0 jika nilai p-value < α
resid(model)
## y1 y2
## 1 1.34564646 2.23343436
## 2 1.46166260 -0.07942991
## 3 3.66800298 5.84149354
## 4 -0.64127899 -2.38051490
## 5 -0.89835591 -1.90096065
## 6 -0.45244236 2.47496391
## 7 1.26884640 0.86527849
## 8 -2.22229016 -0.72030624
## 9 -2.93225259 -3.04134746
## 10 2.48941922 1.42745803
## 11 4.25383605 2.30158132
## 12 -0.89592028 0.42292904
## 13 -2.82872807 1.12090121
## 14 3.05818242 1.16970403
## 15 -0.13903297 0.72365077
## 16 -0.04720539 0.86408684
## 17 1.43337454 0.95087091
## 18 0.46346391 -0.12722045
## 19 -1.82623266 3.41973810
## 20 -3.21465440 -2.59368668
## 21 0.71947797 -0.44847063
## 22 0.87928364 -1.45481029
## 23 0.34536235 -5.48734425
## 24 -1.85908701 -3.01350506
## 25 -0.72546409 3.47519313
## 26 0.89744670 2.74428057
## 27 -1.84292172 0.27324852
## 28 -1.35002053 -1.04159456
## 29 -0.04918894 -2.67040859
## 30 -0.51831984 -0.40002304
## 31 1.91732330 3.46829753
## 32 -0.72177213 -0.07207121
## 33 -1.76665904 -5.63536459
## 34 0.73049858 -2.71005179
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.98658, p-value = 0.9429
Kesimpulan :
Berdasarkan perhitungan menggunakan software R didapatkan nilai pvalue sebesar 0,9429 karena pvalue lebih besar dari α maka terima H0, artinya residual berdistribusi normal multivariate. Oleh karena itu dapat disimpulkan bahwa asumsi normalitas residual 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.39944036 0.5721543 -0.15705487
## x2 0.3994404 1.00000000 0.5081694 -0.04399359
## x3 0.5721543 0.50816937 1.0000000 -0.23339464
## x4 -0.1570549 -0.04399359 -0.2333946 1.00000000
VIF <- diag(solve(R)) ; VIF
## x1 x2 x3 x4
## 1.525673 1.393353 1.796637 1.068131
diperoleh nilai VIF sebagai berikut :
x1: VIF sekitar 1,53.
x2: VIF sekitar 1,39.
x3: VIF sekitar 1,80.
x4: VIF sekitar 1,07.
Semua nilai VIF berada di bawah 10 artinya tidak ada multikolinearitas yang di antara variabel-variabel tersebut. Hal ini menunjukkan bahwa variabel prediktor dalam model ini tidak memiliki korelasi yang tinggi satu sama lain, sehingga asumsi tidak adanya 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 :
α = 5% = 0,05
Kriteria Uji :
Tolak H0 jika nilai p-value < α
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 = 2.5078, df1 = 4, df2 = 25, p-value = 0.06751
Kesimpulan :
Berdasarkan perhitungan menggunakan software R didapatkan nilai pvalue sebesar 0,06751 karena pvalue lebih besar dari α maka terima H0, artinya model persamaan regresi linier. Oleh karena itu dapat disimpulkan bahwa 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 :
α = 5% = 0,05
Kriteria Uji :
Tolak H0 jika nilai p-value < α
bptest(model)
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 15.071, df = 4, p-value = 0.004556
Kesimpulan :
Berdasarkan perhitungan menggunakan software R didapatkan nilai pvalue sebesar 0,004556 karena pvalue lebih kecil dari α maka tolak H0, artinya terdapat heteroskedastisitas . Oleh karena itu dapat disimpulkan bahwa asumsi homoskedastisitas tidak terpenuhi, namun untuk tujuan pembelajaran diasumsikan bahwasanya asumsi homoskedastisitas terpenuhi.
Menggunakan Wilk’s Lamda
\[ \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 :
α = 5% = 0,05
Kriteria Uji :
Tolak H0 jika nilai p-value < α
# 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 111.92010 72.64023
## y2 72.64023 216.49624
detE = det(E)
detE
## [1] 18953.68
EH = (t(Y)%*%Y)-(n*(YBAR1%*%t(YBAR1)))
detEH = det(EH)
det(EH)
## [1] 96718.92
WilksLambda = detE/detEH
WilksLambda
## [1] 0.1959666
Diperoleh nilai Wilks Lambda sebesar 0,1959666 < nilai tabel Wilks Lamda (0,05;2;31) 0,725, maka tolak H0. Sehingga dapat disimpulkan bahwa model signifikan (Setidaknya terdapat satu variabel independen yang memiliki pengaruh signifikan terhadap variabel dependen).