Multikolinieritas merupakan suatu keadaan dimana terdapat hubungan yang besar antar peubah independen/prediktor atau X pada suatu model regresi linier. Multikolinieritas dapat menggangu salah satu asumsi pada model regresi linier yaitu tidak adanya hubungan linier yang kuat antara variabel independen. Keadaan multikolinieritas dapat menyebabkan beberapa permasalahan terkait dengan hasil pendugaan model regresi linier.
Beberapa cara yang dapat dilakukan untuk mengidentifikasi ada tidaknya multikolinieritas antara lain:
- Melihat nilai VIF (Variance Inflation Factor). Nilai ini mengukur seberapa besar varians koefisien regresi meningkat karena multikolinieritas. Ambang batas nilai VIF pada suatu model regresi linier yang sering digunakan adalah 10. Saat nilai VIF lebih dari 10 maka diduga multikolinieritas telah terjadi.
- Korelasi antar peubah independen. Cara sederhana lain yang dapat digunakan adalah melihat koefisien korelasi antar peubah independen. Saat nilai korelasi antar peubah independen besar, maka dapat disimpulkan terjadi multikolinieritas.
1. Persiapan Package
Beberapa package yang dibutuhkan pada tutorial ini adalah sebagai berikut. Silahkan install terlebih dahulu jika belum tersedia menggunakan perintah:
install.packages("readxl")
install.packages("pls")
install.packages("regclass")
install.packages("ggplot2")
2. Persiapan Data
Tutorial pada artikel ini menggunakan data contoh berikut : Data Contoh Regresi Komponen Utama atau klik Menu Data Contoh, pilih contoh data nomor 52. Silahkan unduh data tersebut, kemudian simpan dengan mudah pada drive perangkat PC/Laptop. Kemudian import data dengan perintah berikut:
library(readxl)
df_pcr <- read_excel("D:/Contoh Data PCR.xlsx")
View(df_pcr)
dan luaran sebagai berikut:
Atau dapat menggunakan data lainnya sesuai kebutuhan.
3. Indentifikasi Multikolinieritas
Terdapat 2 cara yang akan dilakukan pada tutorial ini, cara pertama adalah melihat nilai VIF dan cara kedua adalah dengan melihat koefisien korelasi.
#Cara Pertama : Visualisasi Nilai VIF
lmpre = lm(Y~.,data = df_pcr) #pemodelan regresi linier
library(regclass) #package untuk menampilkan VIF
library(ggplot2) #package visualisasi
dfv = data.frame(VIF(lmpre))
k = ncol(df_pcr[,-1])
dfvif = dfv[1:k,]
peubah = seq(1:k)
dfvif2 = data.frame(dfvif,peubah)
ggplot(data=dfvif2, aes(x=peubah, y=dfvif))+
geom_bar(stat="identity", fill="steelblue")+
theme_minimal()+
xlab("X") + ylab("VIF") +
geom_hline(yintercept=10, linetype="dashed", color = "red")
dan luaran sebagai berikut:
#Cara Kedua : Nilai Koefisien Korelasi
cor(df_pcr[,-1])
4. Penanganan Multikolinieritas
Tutorial pada artikel ini memanfaatkan pendekatan regresi komponen utama untuk penanganan multikolinieritas menggunakan Package "pls". Package ini memungkinkan pemilihan komponen utama optimum menggunakan pendekatan Cross Validation (CV). Luaran yang diperoleh adalah informasi mengenai jumlah optimum komponen utama dan hasil pemodelan regresi liniernya.
#Perintah Analisis Regresi Komponen Utama
#Validasi komponen utama menggunakan CV
set.seed(123)
library(pls)
fit = pcr(Y ~ ., data = df_pcr, scale = TRUE, validation = "CV" )
summary(fit)
#Perintah yang digunakan untuk melihat jumlah komponen optimum
validationplot(fit, val.type = 'MSEP')
which.min(MSEP(fit)$val[1,1, ]) - 1
#Ekstraksi komponen utama sebanyak 4 komponen
X_komponen_utama = fit$scores[1:4]; X_komponen_utama
Secara lebih lengkap, package "pls" dapat dipelajari lebih dalam melalui beberapa tautan berikut:
0 Response to "Tutorial R : Menangani Multikolinieritas dengan Regresi Komponen Utama (PCR)"
Post a Comment