Pada Chapter ini, kita akan membahas cara membangun model regresi linear berganda dan sederhana menggunakan R. Langkah-langkah dapat dilakukan sebagai berikut :
Tipe file XSLX adalah merupakan tipe file dari excel 2007 . Untuk cara importnya seperti berikut;
# perintah pertama untuk membaca file data tableregresisederhana.xlsx
library(readxl)
dataregresi <- read_excel("tableregresisederhana.xlsx")
Untuk melihat dataregresi
head(dataregresi)
## # A tibble: 6 x 14
## A1 A2 A3 A4 A5 A B1 B2 B3 B C1 C2 C3
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 5 5 6 6 6 28 6 6 6 18 6 6 6
## 2 3 2 2 2 3 12 4 4 3 11 2 4 3
## 3 2 2 2 3 3 12 3 4 4 11 5 5 4
## 4 3 3 2 3 3 14 4 3 3 10 3 4 3
## 5 6 6 5 6 6 29 6 6 6 18 6 6 5
## 6 3 3 1 2 4 13 3 3 3 9 3 3 3
## # ... with 1 more variable: C <dbl>
Menyusun model Regresi Linier Sederhana
Misal persamaan regresi linier sederhana kita adalah: C = a + b.A + e di mana a adalah konstanta dan b koefisien regresi, nama variabel yang akan kita gunakan dalam perintah R harus sesuai dengan nama kolom dalam dataregresi, maka perintah nya seperti di bawah ini,
regModelup1 <- lm(C~A, data = dataregresi)
Menyusun model Regresi Linier Berganda
Misal persamaan regresi linier berganda kita adalah: C = a +b1.A + b2.B + e di mana a adalah konstanta, b1 dan b2 adalah koefisien regresinya, nama variabel yang akan kita gunakan dalam perintah R harus sesuai dengan nama kolom dalam dataregresi kita, maka perintah nya seperti di bawah ini,
regModelup2 <- lm(C~A+B, data = dataregresi)
Uji Asumsi Regresi Linier
Sebelum membahas hasil uji regresi linier berganda kita perlu melakukan uji asumsi regresi linier untuk menguji normalitas, multikolinieritas, heterokedastisitas, autokorelasi dan linieritas dari model regresi kita.
Uji asumsi Normalitas
Pengujian residual dari model regresi apakah berdistribusi normal maka dilakukan uji Normalitas, dengan perintah di bawah ini,
par(mfrow=c(2,2))
plot(regModelup2)
Kita lihat pada grafik Normal Q-Q (pojok kanan atas) menunjukkan point-point data berada disekitar garis lurus, maka dapat dikatakan terdistribusi normal, sehingga dapat dikatakan model regresi memenuhi asumsi Normalitas.
Uji asumsi Multikolinieritas
Pengujian korelasi antar variabel independent untuk melihat tidak adanya korelasi erat antar variabel independent dapat dilakukan melihat nilai VIF dengan perintah vif() dalam package car (anda mungkin perlu menginstal terlebih dahulu package ini), seperti di bawah ini,
library(car)
## Loading required package: carData
vif(regModelup2)
## A B
## 1.529073 1.529073
kita lihat bahwa nilai VIF untuk KM dan CI berada di bawah 2, maka dapat dikatakan tidak terjadi Multikolinieritas dan model kita memenuhi asumsi Multikolinieritas.
Uji asumsi Heteroskedastisitas
Mengukur apakah terjadi ketidaksamaan varians residual (Heteroskedastisitas) dari data-data pengukuran dapat kita lakukan dengan melihat sebaran pada grafik Residuals vs Vitted dengan perintah yang sama pada uji Normalitas.
par(mfrow=c(2,2))
plot(regModelup2)
kita lihat pada grafik Residuals vs Fitted (pojok kiri atas) bahwa data-data tersebar dan tidak membentuk satu pola tertentu, sehingga dapat dikatakan tidak terjadi perbedaan varians residual dan model kita memenuhi uji asumsi Heteroskedastisitas.
Uji asumsi Autokorelasi
Uji autokorelasi dilakukan untuk menguji apakah ada pengaruh dari data terdahulu kepada data yang baru, uji ini dilakukan untuk data time series, dengan menggunakan perintah dwtest() dalam package lmtest (anda mungkin perlu menginstal terlebih dahulu package ini) dengan perintah di bawah ini,
library(lmtest)
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
dwtest(regModelup2)
##
## Durbin-Watson test
##
## data: regModelup2
## DW = 1.9522, p-value = 0.3891
## alternative hypothesis: true autocorrelation is greater than 0
dari hasil uji di atas, dengan nilai Durbin-Watson test p-value lebih dari 0.05 maka dapat dikatakan bahwa tidak terjadi pengaruh antar data sebelum dan terbaru, dapat dikatakan asumsi tidak ada Autokorelasi antar data model regresi terpenuhi.
Uji asumsi Linieritas
Pengujian hubungan linier antara variabel dependent dan independent dilakukan untuk memenuhi asumsi adanya hubungan linier antar variabel tersebut, dengan perintah crPlots() dari package conf (anda mungkin perlu menginstal terlebih dahulu package ini) di bawah ini,
library(conf)
## Warning: package 'conf' was built under R version 4.1.2
crPlots(regModelup2)
dari grafik di atas tampak bahwa posisi 2 (dua) garis warna berbeda (garis putus-putus dan garis sambung) berada pada posisi yang hampir berdempet, artinya variabel independent memiliki linieritas dengan variabel dependent, dapat dikatakan asumsi Lineritas model regresi terpenuhi.
Membaca hasil Regresi Linier Berganda
Tahap akhir dari proses regresi linier berganda adalah intepretasi hasil nya dapat dilakukan dengan perintah di bawah ini,
summary(regModelup2)
##
## Call:
## lm(formula = C ~ A + B, data = dataregresi)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.8578 -0.9147 0.0728 1.0631 5.1673
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.35207 0.82306 1.643 0.10265
## A 0.10416 0.03865 2.695 0.00789 **
## B 0.74446 0.07008 10.622 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.005 on 142 degrees of freedom
## Multiple R-squared: 0.6235, Adjusted R-squared: 0.6182
## F-statistic: 117.6 on 2 and 142 DF, p-value: < 2.2e-16
dari tabel hasil uji di atas didapat persamaan regresi linier berganda kita adalah
C = 1.35207 + 0.10416A + 0.74446B + e
Kita dapat menyatakan hasil pengujian model regresi linier berganda di atas bahwa pengaruh A dan B ke C adalah signifikan dengan nilai p-value pada kolom Pr(>|t|) lebih kecil dari 0.05, setiap peningkatan satu satuan A akan memberikan peningkatan sebesar 0.104 pada C, dan setiap peningkatan satu satuan pada B akan memberikan peningkatan sebesar 0.744 pada C. Model kita memiliki nilai Adj. R2 sebesar 0.6182 atau variabel A dan B mampu menjelaskan 61.82% dari faktor-faktor yang mempengaruhi C. Pada uji F-statistic didapat p-value < 2.2e-16 jauh lebih kecil dari 0.05 menunjukkan model regresi sangat baik.
Daftar Pustaka https://didi.uvers.ac.id/2020/03/13/regresi-linier-berganda-dan-sederhana-dengan-pemrograman-r/