Analisis regresi berganda adalah pengembangan dari analisis regresi sederhana dimana terdapat lebih dari satu variabel independen x. Analisis ini digunakan untuk melihat sejumlah variabel independen sejumlah k terhadap variabel dependen y berdasarkan nilai variabel-variabel independen sejumlah k.
Perbedaaan antara regresi sederhana dengan regresi berganda terletak pada jumlah variabel bebasnya. Jika dalam regresi sederhana jumlah variabel bebas yang digunakan untuk memprediksi variabel tergantung hanya satu, maka regresi berganda jumlah variabel bebas yang digunakan untuk memprediksi variabel tergantung lebih dari satu.
Fungsi regresi linear berganda adalah metode statistik yang digunakan untuk menganalisis hubungan antara satu variabel dependen (Y) dan dua atau lebih variabel independen (X1, X2, …, Xn). Metode ini membantu kita untuk memprediksi nilai Y berdasarkan nilai variabel independen.
Menurut Mentgomery and Peck (2006), persamaan umum model regresi linear berganda dapat ditulis dalam persamaan berikut : \[Y = \beta_0 + \beta_1X_1 + \beta_2X_2 +...+\beta_pX_p + \epsilon_i\]
Analisis regresi linier berganda melibatkan beberapa asumsi yang diuji dalam uji asumsi klasik. Uji asumsi dilakukan sebelum menguji hipotesis. Tujuan uji asumsi klasik untuk memberikan kepastian bahwa persamaan regresi yang diperoleh memiliki ketepatan dalam estimasi, tidak bias, dan konsisten. Jika asumsi-asumsi tersebut tidak terpenuhi, mungkin diperlukan transformasi variabel atau penggunaan metode regresi lainnya yang lebih sesuai.
Model regresi yang baik adalah memiliki residu yang berdistribusi normal atau mendekati normal. Uji normalitas dapat dilakukan dengan uji Shapiro-wilk. Suatu data dikatakan berdistribusi normal jika p-value > dari nilai α. Selain melihat dari p-value dapat pula dilihat dari sebaran plot data, apabila berada di sekitar garis lurus maka data berdistribusi normal.
Tujuan uji multikolinearitas untuk memastikan bahwa variabel independen tidak saling berkorelasi tinggi dan tidak memberikan informasi yang berlebihan dalam model regresi. Multikolinearitas dapat menyebabkan koefisien regresi menjadi tidak stabil, standar error yang tinggi, dan interpretasi yang sulit. Multikolinearitas dapat dilihat dari nilai VIF (Variance Inflation Factor).
\[VIF= \frac{1}{1-R_j^2}\] Suatu data dikatakan tidak menunjukkan adanya multikolinearitas ketika nilai VIF < 10.
Uji heteroskedastisitas bertujuan untuk memastikan bahwa model regresi memiliki homoskedastisitas, yaitu varian residu tidak bergantung pada nilai variabel independen. Heteroskedastisitas dapat menyebabkan estimasi koefisien regresi yang tidak efisien dan standar error yang tidak akurat. Uji normalitas dapat dilakukan dengan uji Breusch-Pagan.Suatu data dikatakan berdistribusi homoskedastisitas jika p-value > dari nilai α. Selain melihat dari p-value dapat pula dilihat dari sebaran plot data, apabila titik-titik data tersebar dan tidak membentuk pola tertentu maka data berdistribusi normal.
Asumsi ini menyatakan bahwa residU tidak berkorelasi satu sama lain.Tujuannya untuk memastikan bahwa tidak ada ketergantungan antar observasi dalam data. Autokorelasi dapat menyebabkan estimasi koefisien regresi yang tidak efisien dan standar error yang tidak akurat.Uji autokorelasi dapat dilakukan dengan uji Durbin Watson. Suatu data dikatakan non autokorelasi jika p-value > dari nilai α.
Uji F bertujuan untuk mencari apakah variabel independen mempengaruhi variabel dependen secara bersama-sama (simultan). Tingkatan yang digunakan sebesar 0,05 atau 5%, jika nilai signifikan F < 0,05 maka variabel independen secara simultan mempengaruhi variabel dependen atau sebaliknya
Tujuan dari uji parsial ini adalah untuk melihat sejauh mana pengaruh secara parsial dari variabel bebas terhadap variabel terikat.
# Paket yang diperlukan
library(readxl)
library(kableExtra)
## Warning: package 'kableExtra' was built under R version 4.3.3
library(dplyr)
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:kableExtra':
##
## group_rows
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(lmtest)
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
library(car)
## Warning: package 'car' was built under R version 4.3.2
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
library(ggplot2)
Pada tahun 2000 hingga 2015 penduduk dunia dihadapkan dengan permasalahan sosial dan ekonomi yang tidak stabil, termasuk negara-negara di Eropa baik yang tergabung dalam Uni Eropa dan negara-negara di Bentua Eropa. Negara-negara Eropa pada tahun 2012 hampir semuanya merupakan negara maju, dengan adanya permasalahan sosial maupun ekonomi tersebut apakah memengaruhi angka harapan hidup masyarakatnya. Sehingga ingin diketahui bagaimana pengaruh dari permasalahan konsumsi alkohol, kematian pada orang dewasa, dan PDB negara-negara Eropa terhadap angka harapan hidup di tahun 2012.
Dalam analisis regresi berganda minimal variabel independennya sebanyak 2, jika hanya ada 1 variabel independen maka termasuk dalam regresi linear sederhana. Contoh kasus ini digunakan 3 variabel independen dan 1 variabel dependen, antara lain:
Variabel dependen (variabel yang dipengaruhi) atau biasa disebut variabel Y:
Life Expectancy yang merupakan angka harapan hidup rata-rata laki-laki dan perempuan di Eropa pada tahun 2012.
Variabel independen (variabel yang mempengaruhi) atau biasa disebut variabel X:
Alcohol Consumption (X1) yang merupakan konsumsi alkohol yang dicatat dalam liter per kapita dengan usia 15+ tahun.
Adult Mortality (X2) yang merupakan kematian orang dewasa per 1000 penduduk.
GDP per Capita (X3) yang merupakan nilai Gross Domestic Product dalam USD.
# Import dari file Excel
library(readxl)
data <- read_excel("C:/Users/USERR/Downloads/Data Regresi Ganda CM.xlsx")
Y = data$`Life Expectancy`
X1 = data$`Alcohol Consumption`
X2 = data$`Adult Mortality`
X3 = data$`GDP per Capita`
data.regresi= data.frame(Y, X1, X2,X3)
# Menampilkan data
kable(data.regresi)
| Y | X1 | X2 | X3 |
|---|---|---|---|
| 77.3 | 4.43 | 79.7620 | 3736 |
| 73.8 | 3.89 | 129.8370 | 3313 |
| 80.9 | 12.10 | 69.0215 | 44550 |
| 72.0 | 13.56 | 192.4090 | 6048 |
| 80.4 | 10.09 | 78.0865 | 39976 |
| 76.4 | 4.83 | 100.3530 | 4216 |
| 74.3 | 10.88 | 135.0865 | 6694 |
| 76.9 | 10.58 | 98.1320 | 11547 |
| 79.8 | 10.58 | 54.6180 | 24217 |
| 78.1 | 12.83 | 92.0385 | 16607 |
| 80.1 | 9.23 | 75.0940 | 51567 |
| 76.3 | 16.96 | 133.0870 | 16257 |
| 80.6 | 9.27 | 79.3410 | 43637 |
| 82.0 | 12.22 | 80.3445 | 36183 |
| 72.1 | 7.23 | 164.1770 | 3597 |
| 80.5 | 11.32 | 73.3235 | 40069 |
| 80.6 | 7.62 | 72.6245 | 18124 |
| 75.1 | 11.13 | 142.5135 | 11470 |
| 82.9 | 6.82 | 50.6180 | 49192 |
| 80.8 | 11.38 | 67.3805 | 46001 |
| 82.2 | 7.48 | 55.1645 | 31185 |
| 73.8 | 10.20 | 165.2735 | 12410 |
| 73.9 | 14.97 | 179.7720 | 12679 |
| 81.4 | 11.67 | 68.2955 | 104488 |
| 80.7 | 7.18 | 54.2180 | 21222 |
| 70.6 | 8.30 | 176.3780 | 2374 |
| 76.2 | 9.37 | 106.8490 | 5996 |
| 81.1 | 9.00 | 62.8590 | 44243 |
| 74.9 | 3.54 | 101.4970 | 4408 |
| 81.5 | 6.21 | 59.0970 | 73179 |
| 76.7 | 10.21 | 124.3160 | 11520 |
| 80.4 | 9.76 | 80.7525 | 18655 |
| 74.4 | 9.66 | 135.6795 | 8005 |
| 70.1 | 10.56 | 228.0705 | 9476 |
| 74.8 | 8.78 | 121.4185 | 5344 |
| 76.1 | 10.14 | 115.5610 | 15067 |
| 80.1 | 10.95 | 80.7685 | 20157 |
| 82.4 | 8.60 | 61.3175 | 24635 |
| 81.7 | 7.23 | 55.8855 | 48886 |
| 82.7 | 9.87 | 53.4515 | 82800 |
| 70.9 | 8.54 | 203.7885 | 2460 |
| 80.9 | 9.53 | 69.1470 | 43100 |
Statistika deskriptif berfungsi memberikan gambaran sebaran dan karakteristik data.
# Statistik deskriptif
summary(data.regresi)
## Y X1 X2 X3
## Min. :70.10 Min. : 3.540 Min. : 50.62 Min. : 2374
## 1st Qu.:74.83 1st Qu.: 7.790 1st Qu.: 68.48 1st Qu.: 7022
## Median :78.95 Median : 9.710 Median : 80.76 Median : 17366
## Mean :77.82 Mean : 9.493 Mean :103.03 Mean : 25697
## 3rd Qu.:80.88 3rd Qu.:10.932 3rd Qu.:132.27 3rd Qu.: 42342
## Max. :82.90 Max. :16.960 Max. :228.07 Max. :104488
Untuk melihat hubungan dari masing-masing variabel, dilakukan dengan mencari nilai korelasinya.
# Menghitung matriks korelasi
cor_matrix <- cor(data.regresi)
cor_matrix <- round(cor_matrix, 3)
cor_matrix
## Y X1 X2 X3
## Y 1.000 -0.034 -0.944 0.734
## X1 -0.034 1.000 0.226 0.103
## X2 -0.944 0.226 1.000 -0.621
## X3 0.734 0.103 -0.621 1.000
Melalui output diatas, terlihat bahwa variabel:
# MModel regresi
model.mkt <- lm(Y~ X1+ X2 + X3, data = data.regresi)
model.mkt
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3, data = data.regresi)
##
## Coefficients:
## (Intercept) X1 X2 X3
## 8.239e+01 1.936e-01 -6.951e-02 2.937e-05
# Histogram dari residual
ggplot(data.frame(Residual=resid(model.mkt)), aes(x=Residual)) +
geom_histogram(binwidth=0.5, fill="red", color="black") +
labs(x = "Residual", y = "Count", title = "Histogram of Residuals")
# Grafik QQ Plot
qqnorm(resid(model.mkt))
qqline(resid(model.mkt))
# Uji normalitas residual
shapiro.test(resid(model.mkt))
##
## Shapiro-Wilk normality test
##
## data: resid(model.mkt)
## W = 0.97528, p-value = 0.4878
# Uji Multikolinearitas
vif(model.mkt)
## X1 X2 X3
## 1.172108 1.889099 1.812110
vif_values <- vif(model.mkt)
# Plot VIF
plot(vif_values, type = "bar", main = "VIF Plot")
## Warning in plot.xy(xy, type, ...): plot type 'bar' will be truncated to first
## character
Nilai VIF ketiga variabel independen < 10 sehingga tidak terjadi multikolinearitas yang berarti asumsi non-multikolinearitas terpenuhi.
# Grafik residual uji heteroskedastisitas
plot(model.mkt, which = 1)
# Uji heteroskedastisitas
bptest(model.mkt)
##
## studentized Breusch-Pagan test
##
## data: model.mkt
## BP = 0.59773, df = 3, p-value = 0.897
# Uji autokorelasi residual
dwtest(model.mkt)
##
## Durbin-Watson test
##
## data: model.mkt
## DW = 1.7111, p-value = 0.1725
## alternative hypothesis: true autocorrelation is greater than 0
Diperoleh p-value = 0.1725 > 0.05 yang berarti tidak terdapat autokorelasi sehingga asumsi non autokorelasi terpenuhi.
# Uji kelayakan model
summary(model.mkt)
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3, data = data.regresi)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.5695 -0.6454 -0.1022 0.6320 1.8851
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.239e+01 6.505e-01 126.663 < 2e-16 ***
## X1 1.936e-01 5.677e-02 3.410 0.00155 **
## X2 -6.951e-02 4.250e-03 -16.356 < 2e-16 ***
## X3 2.937e-05 8.249e-06 3.561 0.00101 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9245 on 38 degrees of freedom
## Multiple R-squared: 0.9441, Adjusted R-squared: 0.9397
## F-statistic: 214 on 3 and 38 DF, p-value: < 2.2e-16
Diketahui P value < α = 0,05, sehingga model layak digunakan.
# Uji parsial
summary(model.mkt)
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3, data = data.regresi)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.5695 -0.6454 -0.1022 0.6320 1.8851
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.239e+01 6.505e-01 126.663 < 2e-16 ***
## X1 1.936e-01 5.677e-02 3.410 0.00155 **
## X2 -6.951e-02 4.250e-03 -16.356 < 2e-16 ***
## X3 2.937e-05 8.249e-06 3.561 0.00101 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9245 on 38 degrees of freedom
## Multiple R-squared: 0.9441, Adjusted R-squared: 0.9397
## F-statistic: 214 on 3 and 38 DF, p-value: < 2.2e-16
# Ringkasan model
summary(model.mkt)
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3, data = data.regresi)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.5695 -0.6454 -0.1022 0.6320 1.8851
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.239e+01 6.505e-01 126.663 < 2e-16 ***
## X1 1.936e-01 5.677e-02 3.410 0.00155 **
## X2 -6.951e-02 4.250e-03 -16.356 < 2e-16 ***
## X3 2.937e-05 8.249e-06 3.561 0.00101 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9245 on 38 degrees of freedom
## Multiple R-squared: 0.9441, Adjusted R-squared: 0.9397
## F-statistic: 214 on 3 and 38 DF, p-value: < 2.2e-16
Model regresi linear berganda yang diperoleh yaitu: Regression Equation \[Life Expectancy = 82,389 + 0,1936 Alcohol Consumption - 0,06951 Adult Mortality + 0,000029 GDP per Capita + \epsilon\]
Artinya, jika variabel Life_Expectancy naik sebanyak 1 tahun, maka akan menaikkan Alcohol Consumption sebesar 0,1936, menurunkan Adult Mortality sebesar 0,06951, dan menaikkan GDP per Capita sebesar 0,000029. Oleh karena itu, model regresi ini cukup dapat diandalkan dalam melakukan prediksi mengenai angka harapan hidup.