devtools::install_github("Yu-Group/vthemes")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.
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, antara lain:
Dalam analisis regresi linier berganda, dilakukan juga pengujian terhadap asumsi-asumsi klasik tersebut menggunakan berbagai metode seperti uji normalitas residual, uji Non multikolinearitas, uji Non Heteroskedastisitas, dan uji Non autokorelasi. Jika asumsi-asumsi tersebut tidak terpenuhi, mungkin diperlukan transformasi variabel atau penggunaan metode regresi lainnya yang lebih sesuai.
Pada kesempatan ini, akan dilakukan uji regresi linear berganda pada data life expectancy dan health di Asia pada tahun 2009. Sebelum melanjutkan kelangkah berikutnya, terlebih dahulu kita siapkan library yang akan digunakan.
# Memuat paket yang diperlukan
library(readxl)
library(dplyr)
library(lmtest)
library(car)
library(vthemes)
library(ggplot2)Setelah menginstal library yang diperlukan langkah selanjutnya yaitu memilih variabel independent, dalam analisis regresi berganda minimal variabel nya independennya sebanyak 3, dalam hal ini disini kita ambil 3 variabel independen yaitu :
Dengan Variabel Independent sebagai berikut :
Y : Life_Expectancy
X1 : Alcohol_Consumption
X2 : Adult_Mortality
X3 : GDP_Per_Kapita
# Membaca Data dari File Excel
library(readxl)
data <- read_excel("C:/Users/anjalika rahayu/OneDrive/Dokumen/dataSIMCM2.xlsx")
# Menampilkan Data
data## # A tibble: 27 × 4
## Y X1 X2 X3
## <dbl> <dbl> <dbl> <dbl>
## 1 74.7 0.25 91.9 33437
## 2 68.4 0.23 227. 2235
## 3 68.7 0.68 144. 783
## 4 66.7 2.73 192. 1244
## 5 64.3 6.1 217. 1586
## 6 74.4 5.75 92.9 5647
## 7 69.7 1.74 158. 2131
## 8 67.4 7.73 230. 2630
## 9 74.2 6.19 160. 5164
## 10 74.5 0.52 127. 8248
## # ℹ 17 more rows
# Statistik Deskriptif untuk Semua Variabel
summary(data)## Y X1 X2 X3
## Min. :61.00 Min. :0.000 Min. : 58.75 Min. : 526
## 1st Qu.:67.05 1st Qu.:0.385 1st Qu.:129.28 1st Qu.: 1106
## Median :69.30 Median :1.840 Median :169.17 Median : 2433
## Mean :70.43 Mean :2.603 Mean :162.69 Mean : 6968
## 3rd Qu.:74.45 3rd Qu.:4.335 3rd Qu.:203.64 3rd Qu.: 5431
## Max. :82.80 Max. :8.280 Max. :250.13 Max. :48753
Melalui statistik deskriptif diatas, didapatkan nilai minimum, kuartil bawah, median, mean, kuartil atas, dan nilai maksimum dari keempat variabel. Pada variabel Life_Expectancy, didapatkan nilai minimum 60.50 tahun, kuartil bawah 66.65 tahun, median 69.10 tahun, kuartil atas 74.20 tahun, dan nilai maksimum 82.90 tahun. Dan hingga variabel independent.
Selanjutnya, untuk melihat hubungan dari masing-masing variabel, maka dicari nilai korelasinya.
# Menghitung matriks korelasi
cor_matrix <- cor(data)
cor_matrix <- round(cor_matrix, 3)
cor_matrix## Y X1 X2 X3
## Y 1.000 0.245 -0.874 0.722
## X1 0.245 1.000 0.018 0.109
## X2 -0.874 0.018 1.000 -0.649
## X3 0.722 0.109 -0.649 1.000
Melalui output diatas, terlihat bahwa variabel:
Sebelum melakukan tahapan uji asumsi klasik maka kita membuat terlebih dahulu model regresi dari data yang sudah kita pilih yaitu Data Angka Harapan Hidup di Asia pada tahun 2010 dengan penjelasan variabel sebagai berikut :
Y : Life_Expectancy
X1 : Alcohol_Consumption
X2 : Adult_Mortality
X3 : GDP_Per_Kapita
# Membangun model regresi
model.mkt <- lm(Y~ X1+ X2 + X3, data = data)
model.mkt##
## Call:
## lm(formula = Y ~ X1 + X2 + X3, data = data)
##
## Coefficients:
## (Intercept) X1 X2 X3
## 7.980e+01 4.703e-01 -6.916e-02 9.512e-05
# Histogram dari residual
ggplot(data.frame(Residual=resid(model.mkt)), aes(x=Residual)) +
geom_histogram(binwidth=0.5, fill="lightgreen", color="black") +
labs(x = "Residual", y = "Count", title = "Histogram of Residuals")# Grafik QQ Plot untuk normalitas residual
qqnorm(resid(model.mkt))
qqline(resid(model.mkt))# Uji Normalitas residual model
shapiro.test(resid(model.mkt))##
## Shapiro-Wilk normality test
##
## data: resid(model.mkt)
## W = 0.96684, p-value = 0.5208
# Grafik Residual Plot untuk non-heteroskedastisitas
plot(model.mkt, which = 1)# Uji non-Heteroskedastisitas
bptest(model.mkt)##
## studentized Breusch-Pagan test
##
## data: model.mkt
## BP = 2.175, df = 3, p-value = 0.5369
# Uji Multikolinearitas
vif(model.mkt)## X1 X2 X3
## 1.026229 1.751185 1.771860
vif_values <- vif(model.mkt)
# 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.
# Uji autokorelasi residual
dwtest(model.mkt)##
## Durbin-Watson test
##
## data: model.mkt
## DW = 1.7376, p-value = 0.227
## alternative hypothesis: true autocorrelation is greater than 0
Berdasarkan uji autokorelasi diatas, diperoleh p-value = 0.227 > 0.05 yang berarti bahwa asumsi tidak terjadinya autokorelasi terpenuhi.
# Ringkasan model
summary(model.mkt)##
## Call:
## lm(formula = Y ~ X1 + X2 + X3, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.5085 -1.4018 -0.2005 1.8311 4.0038
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.980e+01 1.850e+00 43.139 < 2e-16 ***
## X1 4.703e-01 1.599e-01 2.941 0.00733 **
## X2 -6.916e-02 9.772e-03 -7.077 3.29e-07 ***
## X3 9.512e-05 4.547e-05 2.092 0.04769 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.063 on 23 degrees of freedom
## Multiple R-squared: 0.858, Adjusted R-squared: 0.8395
## F-statistic: 46.34 on 3 and 23 DF, p-value: 6.552e-10
Melalui output diatas, diperoleh:
Model regresi linear berganda yaitu: \[Y = 4.703e-01X_1 - 6.916e-02X_2 + 9.512e-05X_3 + \epsilon\]
Artinya, jika variabel Life_Expectancy naik sebanyak 1 tahun, maka akan menaikkan Alcohol_consumption sebesar 4.703e-01, menurunkan Adult_mortality sebesar 6.916e-02, dan menaikkan GDP_Per_Kapita sebesar 9.512e-05