Analisis regresi linear berganda merupakan salah satu metode statistika untuk membuat model dan menyelidiki pengaruh antara beberapa variabel bebas (X) terhadap satu variabel respon (Y). Bentuk umum model regresi linear berganda adalah sebagai berikut. \[Y = \beta_0 + \beta_1X_1 + \beta_2X_2 +...+\beta_pX_p + \epsilon\] Pada kesempatan kali ini, akan disampaikan mengenai bagaimana proses untuk melakukan analisis regresi linear berganda.
Library berguna untuk memuat package yang sudah terinstal pada R. Berikut ini merupakan packages yang diperlukan dalam analisis regresi linear berganda.
library(readxl)
library(dplyr)
library(lmtest)
library(car)
library(ggplot2)
library(kableExtra)
Data yang digunakan dalam analisis ini besumber dari
dataset CM 2 yang sudah difilter sesuai dengan keperluan yang
dibutuhkan. Variabel-variabel yang digunakan antara lain.
Life
Expectancy (Y): Angka harapan hidup
Under Five Deaths
(X1): Kematian anak dibawah 5 tahun per 1000 populasi
Adult
Mortality (X2): Kematian orang dewasa per 1000 populasi
BMI
(X3): Indikator pengukuran yang digunakan untuk menentukan kategori
berat badan
data_SIM <- read_excel("D:/kuliah/SEMESTER 4/SIM/CM II/data_SIM.xlsx")
kable_input = kable(data_SIM, format = "html", col.names = c("Under Five Deaths ($X_1$)", "Adult Mortality ($X_2$)", "BMI ($X_3$)", "Life Expectancy ($Y$)"))
data_styling = kable_styling(kable_input, full_width = TRUE)
scroll_box(data_styling, height = "300px")
| Under Five Deaths (\(X_1\)) | Adult Mortality (\(X_2\)) | BMI (\(X_3\)) | Life Expectancy (\(Y\)) |
|---|---|---|---|
| 21.8 | 124.5470 | 21.7 | 75.1 |
| 35.5 | 154.6040 | 22.4 | 69.5 |
| 27.7 | 175.5640 | 23.0 | 70.8 |
| 10.7 | 82.2730 | 23.7 | 75.9 |
| 43.5 | 177.9465 | 21.7 | 68.6 |
| 42.2 | 189.9280 | 26.4 | 67.7 |
| 52.2 | 196.0530 | 22.6 | 65.8 |
| 26.3 | 124.8970 | 26.9 | 72.3 |
| 10.8 | 148.8890 | 24.3 | 76.1 |
| 19.4 | 212.8410 | 26.1 | 69.1 |
| 9.8 | 68.3620 | 25.3 | 77.7 |
| 76.0 | 160.1410 | 23.9 | 66.6 |
| 70.4 | 227.7350 | 23.3 | 63.4 |
| 2.7 | 53.5860 | 22.7 | 83.8 |
| 37.5 | 134.7150 | 25.9 | 70.1 |
| 22.3 | 165.7935 | 26.5 | 70.7 |
| 11.9 | 182.1110 | 26.3 | 72.0 |
| 10.6 | 88.0930 | 27.0 | 75.3 |
| 38.1 | 129.7530 | 21.6 | 71.5 |
| 19.3 | 140.8150 | 26.7 | 70.9 |
| 2.7 | 50.9615 | 23.6 | 82.7 |
| 31.8 | 175.6540 | 22.1 | 68.6 |
| 33.1 | 208.0030 | 23.8 | 70.4 |
| 53.8 | 195.6250 | 22.8 | 66.5 |
| 29.6 | 199.7365 | 23.1 | 70.6 |
| 8.7 | 109.1795 | 23.0 | 76.3 |
| 8.1 | 121.7230 | 25.6 | 75.5 |
Data yang dambil merupakan data di Asia pada tahun 2015.
Scatterplot digunakan untuk membantu dalam memvisualisasikan hubungan antara dua variabel. Hubungan yang diuji adalah hubungan antara setiap variabel X dengan variabel Y.
ggplot(data_SIM, aes(x = Under_five_deaths, y = Life_expectancy)) +
geom_point() +
labs(x = "Under Five Deaths (X1)", y = "Life Expectancy (Y)", title = "Scatterplot of Life Expectancy (Y) vs Under Five Deaths (X1)")
Berdasarkan plot di atas dapat dilihat bahwa plot linear ke kiri sehingga dapat disimpulkan bahwa Under Five Deaths memiliki hubungan negatif dengan Life Expectancy. Hubungan tersebut masih tergolong kuat karena terbentuk garis miring yang persebarannya tergolong masih teratur.
ggplot(data_SIM, aes(x = Adult_mortality, y = Life_expectancy)) +
geom_point() +
labs(x = "Adult Mortality (X2)", y = "Life Expectancy (Y)", title = "Scatterplot of Life Expectancy (Y) vs Adult Mortality (X2)")
Berdasarkan plot di atas dapat dilihat bahwa plot linear ke kiri sehingga dapat disimpulkan bahwa Adult Mortality memiliki hubungan negatif dengan Life Expectancy. Hubungan tersebut masih tergolong kuat karena terbentuk garis miring yang persebarannya tergolong masih teratur.
ggplot(data_SIM, aes(x = BMI, y = Life_expectancy)) +
geom_point() +
labs(x = "BMI (X3)", y = "Life Expectancy (Y)", title = "Scatterplot of Life Expectancy (Y) vs BMI (X3)")
Berdasarkan plot di atas dapat dilihat bahwa plot linear ke kanan sehingga dapat disimpulkan bahwa BMI memiliki hubungan positif dengan Life Expectancy. Hubungan tersebut tergolong sangat lemah karena persebarannya sangat tidak teratur.
Untuk melakukan uji signifikansi dan uji asumsi klasik, dibutuhkan model regresinya terlebih dahulu. Model regresi dapat dicari menggunakan syntax berikut.
MODEL_REGRESI = lm(Life_expectancy~., data = data_SIM)
MODEL_REGRESI
##
## Call:
## lm(formula = Life_expectancy ~ ., data = data_SIM)
##
## Coefficients:
## (Intercept) Under_five_deaths Adult_mortality BMI
## 92.73677 -0.13653 -0.05166 -0.38418
Selain itu, dapat juga dicari summary lengkap dari model regresi di atas. Berikut merupakan summary lengkapnya.
summary(MODEL_REGRESI)
##
## Call:
## lm(formula = Life_expectancy ~ ., data = data_SIM)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.23015 -0.88571 -0.05921 0.83537 2.92106
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 92.736770 4.014898 23.098 < 2e-16 ***
## Under_five_deaths -0.136531 0.019898 -6.862 5.37e-07 ***
## Adult_mortality -0.051662 0.007525 -6.865 5.33e-07 ***
## BMI -0.384178 0.162208 -2.368 0.0266 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.416 on 23 degrees of freedom
## Multiple R-squared: 0.9244, Adjusted R-squared: 0.9146
## F-statistic: 93.76 on 3 and 23 DF, p-value: 4.822e-13
Namun, dari output di atas belum bisa ditarik sebuah kesimpulan karena model tersebut belum dilakukan uji signifikansi dan uji asumsi klasik. Oleh karena itu, pada bagian selanjutnya akan dijelaskan bagaimana proses dalam melakukan Uji Signifikansi dan Uji Asumsi Klasik Regresi.
summary(MODEL_REGRESI)
##
## Call:
## lm(formula = Life_expectancy ~ ., data = data_SIM)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.23015 -0.88571 -0.05921 0.83537 2.92106
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 92.736770 4.014898 23.098 < 2e-16 ***
## Under_five_deaths -0.136531 0.019898 -6.862 5.37e-07 ***
## Adult_mortality -0.051662 0.007525 -6.865 5.33e-07 ***
## BMI -0.384178 0.162208 -2.368 0.0266 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.416 on 23 degrees of freedom
## Multiple R-squared: 0.9244, Adjusted R-squared: 0.9146
## F-statistic: 93.76 on 3 and 23 DF, p-value: 4.822e-13
summary(MODEL_REGRESI)
##
## Call:
## lm(formula = Life_expectancy ~ ., data = data_SIM)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.23015 -0.88571 -0.05921 0.83537 2.92106
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 92.736770 4.014898 23.098 < 2e-16 ***
## Under_five_deaths -0.136531 0.019898 -6.862 5.37e-07 ***
## Adult_mortality -0.051662 0.007525 -6.865 5.33e-07 ***
## BMI -0.384178 0.162208 -2.368 0.0266 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.416 on 23 degrees of freedom
## Multiple R-squared: 0.9244, Adjusted R-squared: 0.9146
## F-statistic: 93.76 on 3 and 23 DF, p-value: 4.822e-13
shapiro.test(resid(MODEL_REGRESI))
##
## Shapiro-Wilk normality test
##
## data: resid(MODEL_REGRESI)
## W = 0.96818, p-value = 0.5544
bptest(MODEL_REGRESI)
##
## studentized Breusch-Pagan test
##
## data: MODEL_REGRESI
## BP = 6.1866, df = 3, p-value = 0.1029
dwtest(MODEL_REGRESI)
##
## Durbin-Watson test
##
## data: MODEL_REGRESI
## DW = 2.3466, p-value = 0.8122
## alternative hypothesis: true autocorrelation is greater than 0
VIF < 10 berarti tidak terdapat mulitkolinearitas antarvariabel. VIF > 10 berarti terdapat multikolinearitas antarvariabel.
vif(MODEL_REGRESI)
## Under_five_deaths Adult_mortality BMI
## 1.943544 1.798066 1.114495
Kesimpulan:
Karena semua nilai VIF < 10, maka dapat
disimpulkan bahwa tidak terjadi gejala
multikolinearitas antarvariabel.
Karena model regesi di atas tadi telah memenuhi uji-uji yang ada, maka model tersebut layak untuk dijadikan sebagai model regresi dengan persamaan \[Y=92.73677-0.13653X_1-0.05166X_2-0.38418X_3\]
Artinya, setiap kenaikan satu satuan Under Five Deaths (X1) akan menurunkan Life Expectancy (Y) sebesar 0,13653 tahun, setiap kenaikan satu satuan Adult Mortality (X2) akan menurunkan Life Expectancy (Y) sebesar 0,05166 tahun, dan setiap kenaikan satu satuan BMI (X3) akan menurunkan Life Expectancy (Y) sebesar 1,114495 tahun.
Selain itu, didapatkan nilai Adjusted R-Squared-nya yaitu 0.9146 atau 91,46%. Artinya, 91,46% Life Expectancy pada tahun 2015 di Asia dipengaruhi oleh Under Five Deaths, Adult Mortality, dan BMI. Sedangkan untuk 8,54% sisanya dipengaruhi oleh faktor lain yang belum diketahui.
Pada kasus ini, variabel-variabel yang digunakan adalah Under Five Deaths (X1), Adult Mortality (X2), BMI (X3), dan Life Expectancy (Y). Data tersebut merupakan data dari benua Asia pada tahun 2015. Data tersebut sudah dilakukan pengujian dan memenuhi untuk dijadikan model regresi. Model regresi yang terbentuk adalah \[Y=92.73677-0.13653X_1-0.05166X_2-0.38418X_3\]
Artinya, setiap kenaikan satu satuan Under Five Deaths (X1) akan menurunkan Life Expectancy (Y) sebesar 0,13653 tahun, setiap kenaikan satu satuan Adult Mortality (X2) akan menurunkan Life Expectancy (Y) sebesar 0,05166 tahun, dan setiap kenaikan satu satuan BMI (X3) akan menurunkan Life Expectancy (Y) sebesar 1,114495 tahun. Hasil tersebut merupakan hasil yang masuk akal karena semakin bertambahnya kematian bayi di bawah lima tahun ataupun semakin bertambahnya kematian orang dewasa, akan menurunkan angka harapan hidup yang ada. Selain itu, BMI juga memegang peranan penting karena apabila nilai BMI semakin tinggi, maka akan memicu obesitas yang nantinya bisa mengarah ke berbagai macam penyakit yang nantinya juga akan berdampak ke angka harapan hidup atau Life Expectancy yang ada.