Analisis regresi linier berganda merupakan metode statistik yang digunakan untuk mengukur hubungan antara satu variabel dependen (X) dengan dua atau lebih variabel independen (Y). Model regresi linier pada regresi linier berganda digunakan untuk memprediksi nilai variabel dependen berdasarkan nilai-nilai variabel independen.

\[Y = \beta_0 + \beta_1X_1 + \beta_2X_2 +...+\beta_pX_p + \epsilon\]

Analisis regresi linier berganda melibatkan beberapa asumsi, antara lain:

  1. Asumsi Multikolinearitas
  2. Asumsi Normalitas Residual
  3. Asumsi Heteroskedastisitas
  4. Asumsi Autokorelasi Residual

Dalam analisis regresi linier berganda terdapat beberapa asumsi yang harus dipenuhi. Ketika asumsi-asumsi tersebut tidak terpenuhi, mungkin diperlukan transformasi variabel atau penggunaan metode regresi lainnya yang lebih sesuai.


Library

Pada kesempatan ini, akan dilakukan uji regresi linear berganda pada data Life expectancy tahun 2015 pada negara-negara yang terletak di Timur Tengah. Sebelum melanjutkan, terlebih dahulu kita siapkan library yang akan digunakan.

# Memuat paket yang diperlukan
library(readxl)
library(dplyr)
library(lmtest)
library(car)
library(ggplot2)

Load Data

Kemudian, akan diambil 3 variabel independen yaitu:

  1. Adult_mortality : angka kematian orang dewasa per 1000 populasi.
  2. Thinness_ten_ninteen_years : prevalensi kekurusan remaja usia 10 hingga 19 tahun.
  3. Incidents_HIV : kejadian HIV per 1000 populasi pada usia 15-49 tahun. Variabel dependen yang akan digunakan adalah Life_expectancy yang merupakan rata-rata Angka Harapan Hidup
# Membaca data dari file Excel
Data <- read_excel("C:/users/acer/Downloads/dataset_case_method.xlsx")
Data
## # A tibble: 2,864 × 22
##       No Country    Region  Year Infan…¹ Under…² Adult…³ Alcoh…⁴ Hepat…⁵ Measles
##    <dbl> <chr>      <chr>  <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>
##  1    69 Afghanist… Asia    2000    90.5   129.    311.     0.02      62      12
##  2   992 Albania    Rest …  2000    24.1    27.2    94.7    3.92      96      90
##  3  2602 Algeria    Africa  2000    33.9    39.7   140.     0.25      81      78
##  4  1971 Angola     Africa  2000   122.    204.    371.     1.47      67      64
##  5  2232 Antigua a… Centr…  2000    12.6    15.5   156.     6.86      98      58
##  6  2846 Argentina  South…  2000    17.5    19.6   139.     7.68      73      56
##  7  1374 Armenia    Rest …  2000    27      30.6   149.     2.91      55      94
##  8  2605 Australia  Ocean…  2000     5.1     6.2    77.0   10.2       95      85
##  9  1576 Austria    Europ…  2000     4.6     5.5    94.9   13.4       33      35
## 10  2150 Azerbaijan Asia    2000    60.9    74.4   170.     0.66      50      66
## # … with 2,854 more rows, 12 more variables: BMI <dbl>, Polio <dbl>,
## #   Diphtheria <dbl>, Incidents_HIV <dbl>, GDP_per_capita <dbl>,
## #   Population_mln <dbl>, Thinness_ten_nineteen_years <dbl>,
## #   Thinness_five_nine_years <dbl>, Schooling <dbl>,
## #   Economy_status_Developed <dbl>, Economy_status_Developing <dbl>,
## #   Life_expectancy <dbl>, and abbreviated variable names ¹​Infant_deaths,
## #   ²​Under_five_deaths, ³​Adult_mortality, ⁴​Alcohol_consumption, ⁵​Hepatitis_B
# Mengambil data di Timur Tengah pada tahun 2015
data_filtered <- filter(Data, Region == "Middle East" & Year == 2015) %>%
  select(Life_expectancy, Adult_mortality, Thinness_ten_nineteen_years, Incidents_HIV ) 
data_filtered
## # A tibble: 14 × 4
##    Life_expectancy Adult_mortality Thinness_ten_nineteen_years Incidents_HIV
##              <dbl>           <dbl>                       <dbl>         <dbl>
##  1            76.8            66.7                         6.2          0.05
##  2            75.8            81.9                         8.5          0.04
##  3            69.9           163.                          5.3          0.13
##  4            82.1            56.3                         1.2          0.08
##  5            74.1           110.                          4            0.13
##  6            75.1            58.1                         3.5          0.13
##  7            78.8            60.3                         4.9          0.04
##  8            76.9            89.2                         7.1          0.05
##  9            79.8            56.3                         5.2          0.06
## 10            74.7            88.0                         7.8          0.13
## 11            69.9           178.                          6.3          0.13
## 12            76.5           106.                          4.9          0.08
## 13            77.3            68.6                         5.3          0.13
## 14            66.1           222.                         13.6          0.03
# Menampilkan data hasil filter
data_filtered
## # A tibble: 14 × 4
##    Life_expectancy Adult_mortality Thinness_ten_nineteen_years Incidents_HIV
##              <dbl>           <dbl>                       <dbl>         <dbl>
##  1            76.8            66.7                         6.2          0.05
##  2            75.8            81.9                         8.5          0.04
##  3            69.9           163.                          5.3          0.13
##  4            82.1            56.3                         1.2          0.08
##  5            74.1           110.                          4            0.13
##  6            75.1            58.1                         3.5          0.13
##  7            78.8            60.3                         4.9          0.04
##  8            76.9            89.2                         7.1          0.05
##  9            79.8            56.3                         5.2          0.06
## 10            74.7            88.0                         7.8          0.13
## 11            69.9           178.                          6.3          0.13
## 12            76.5           106.                          4.9          0.08
## 13            77.3            68.6                         5.3          0.13
## 14            66.1           222.                         13.6          0.03

Statistik Deskriptif

Statistik deskriptif merupakan metode-metode yang berkaitan dengan pengumpulan dan penyajian suatu gugus data sehingga memberikan informasi yang berguna (Walpole, 1992). Statistika deskriptif menunjukkan ukuran pemusatan dan ukuran penyebaran data. Ukuran pemusatan terdiri atas rata-rata, median, dan modes. Untuk ukuran penyebaran terdiri dari varian, simpangan baku, jangkauan, dan lain-lain.

# Statistik deskriptif untuk semua variabel
summary(data_filtered)
##  Under_five_deaths  Hepatitis_B      Measles          Polio      
##  Min.   : 6.90     Min.   :14.0   Min.   :48.00   Min.   :74.00  
##  1st Qu.:12.50     1st Qu.:80.0   1st Qu.:68.75   1st Qu.:85.25  
##  Median :20.95     Median :92.5   Median :88.50   Median :93.50  
##  Mean   :26.94     Mean   :83.5   Mean   :81.79   Mean   :90.50  
##  3rd Qu.:33.85     3rd Qu.:96.5   3rd Qu.:94.25   3rd Qu.:94.75  
##  Max.   :95.00     Max.   :99.0   Max.   :99.00   Max.   :99.00

Melalui statistik deskriptif diatas, didapatkan nilai minimum, kuartil bawah, median, mean, kuartil atas, dan nilai maksimum dari keempat variabel. Pada variabel Life_expextancy diperoleh infromasi : - minimum 66.10 tahun, - kuartil bawah 74.25 tahun, - median 76.15 tahun, - kuartil atas 77.20 tahun, - rata-rata 75.27 tahun - nilai maksimum 82.10 tahun - dan seterusnya hingga variabel Incidents_HIV.


Nilai Korelasi Masing-Masing Variabel

Selanjutnya, untuk melihat hubungan dari masing-masing variabel, maka dicari nilai korelasinya.

# Menghitung matriks korelasi
cor_matrix <- cor(data_filtered)
cor_matrix <- round(cor_matrix, 2)
cor_matrix
##                   Under_five_deaths Hepatitis_B Measles Polio
## Under_five_deaths              1.00       -0.92   -0.19 -0.72
## Hepatitis_B                   -0.92        1.00    0.12  0.90
## Measles                       -0.19        0.12    1.00  0.36
## Polio                         -0.72        0.90    0.36  1.00

Melalui output diatas, terlihat bahwa variabel:


Uji Asumsi Klasik

# Membangun model regresi
model <- lm(Life_expectancy~ Adult_mortality+ Thinness_ten_nineteen_years+ Incidents_HIV, data = data_filtered)
model
## 
## Call:
## lm(formula = Life_expectancy ~ Adult_mortality + Thinness_ten_nineteen_years + 
##     Incidents_HIV, data = data_filtered)
## 
## Coefficients:
##                 (Intercept)              Adult_mortality  
##                    86.78878                     -0.05511  
## Thinness_ten_nineteen_years                Incidents_HIV  
##                    -0.55640                    -30.79703

1. Uji Non-Multikolinearitas

Dalam membuat regresi berganda, variabel bebas yang baik adalah variabel bebas yang mempunyai hubungan dengan variabel terikat, tetapi tidak mempunyai hubungan dengan variabel bebas lainnya.

```r
# Uji Multikolinearitas
vif(model)
## Hepatitis_B     Measles       Polio 
##    6.607974    1.504067    7.471415
vif_values <- vif(model)

# Membuat plot VIF
plot(vif_values, type = "bar", main = "VIF Plot")

Diperoleh nilai VIF ketiga variabel independen < 10 sehingga tidak terjadi multikolinearitas yang berarti asumsi non-multikolinearitas terpenuhi.

2. Uji Normalitas Residual

# Histogram dari residual
ggplot(data.frame(Residual=resid(model)), aes(x=Residual)) +
  geom_histogram(binwidth=0.5, fill="steelblue", color="black") +
  labs(x = "Residual", y = "Count", title = "Histogram of Residuals")

# Grafik QQ Plot untuk normalitas residual
qqnorm(resid(model))
qqline(resid(model))

# Uji Normalitas residual model
shapiro.test(resid(model))
## 
##  Shapiro-Wilk normality test
## 
## data:  resid(model)
## W = 0.96533, p-value = 0.8088

3. Uji Heteroskedastisitas

Heteroskedastisitas adalah adanya ketidaksamaan varian dari residual untuk semua pengamatan pada model regresi.

```r
# Grafik Residual Plot untuk non-heteroskedastisitas
plot(model, which = 1)

# Uji non-Heteroskedastisitas
bptest(model)
## 
##  studentized Breusch-Pagan test
## 
## data:  model
## BP = 2.7003, df = 3, p-value = 0.4402

4. Uji Autokorelasi Residual

# Uji autokorelasi residual
durbinWatsonTest(model)
##  lag Autocorrelation D-W Statistic p-value
##    1      -0.2894004      2.427779   0.474
##  Alternative hypothesis: rho != 0

Berdasarkan uji autokorelasi diatas, diperoleh p-value = 0.158 > 0.05 yang berarti bahwa asumsi tidak terjadinya autokorelasi terpenuhi.


Model Regresi Linier Berganda

# Ringkasan model 
summary(model)
## 
## Call:
## lm(formula = Under_five_deaths ~ Hepatitis_B + Measles + Polio, 
##     data = data_filtered)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.9178 -2.9007 -0.1861  3.7815  6.6475 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -54.20291   29.62200  -1.830 0.097205 .  
## Hepatitis_B  -1.71630    0.14975 -11.461 4.49e-07 ***
## Measles      -0.42788    0.09662  -4.428 0.001277 ** 
## Polio         2.86687    0.49285   5.817 0.000169 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.721 on 10 degrees of freedom
## Multiple R-squared:  0.9664, Adjusted R-squared:  0.9563 
## F-statistic: 95.77 on 3 and 10 DF,  p-value: 1.149e-07

Melalui output diatas, diperoleh: