Tutorial R : Menangani Multikolinieritas dengan Regresi Komponen Utama (PCR)

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:

  1. 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.
  2. 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.
Setelah multikolinieritas terindetifikasi, tahap selanjutnya adalah melakukan penanganannya. Salah satu usaha yang dapat dilakukan adalah dengan menggunakan pendekatan Regresi Komponen Utama atau Principal Component Regression (PCR). Konsep dasar dari PCR adalah pendekatetan Analisis Komponen Utama atau Principal Component Analysis (PCA). Pendekatan ini memiliki konsep mereduksi sekumpulan peubah menjadi beberapa komponen utama. Berikut beberapa tahapan proses identifikasi dan penanganan multikolinieritas dengan PCR menggunakan R.

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:


Berdasarkan gambar tersebut, nilai VIF yang dihasilkan sangat tinggi. Hal ini mengindikasikan bahwa terjadi multikolinieritas pada peubah independen.

#Cara Kedua : Nilai Koefisien Korelasi
cor(df_pcr[,-1])


Selain nilai VIF, nilai koefisien korelasi yang dihasilkan antar peubah independen juga sangat tinggi. Berdasarkan hasil kedua identifikasi, multikolinieritas dipastikan ada pada peubah independen.

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)


Informasi di atas menunjukan hasil summary model PCR dan bagaimana pemilihan jumlah komponen optimum berdasarkan kriteria RMSEP. Untuk melihat lebih rinci mengenai berapa jumlah optimum komponen utama, dapat menggunakan perintah berikut:

#Perintah yang digunakan untuk melihat jumlah komponen optimum
validationplot(fit, val.type = 'MSEP')
which.min(MSEP(fit)$val[1,1, ]) - 1



Berdasarkan hasil yang diperoleh, jumlah optimum dari komponen utama adalah sebanyak 4 komponen. Selanjutnya, komponen-komponen ini dapat diekstraksi dengan cara sebagai berikut:

#Ekstraksi komponen utama sebanyak 4 komponen
X_komponen_utama = fit$scores[1:4]; X_komponen_utama


Berdasarkan analisis yang dilakukan, model dengan 4 komponen merupakan model optimum berdasarkan kriteria RMSEP menggunakan CV.

Secara lebih lengkap, package "pls" dapat dipelajari lebih dalam melalui beberapa tautan berikut:

  1. https://www.rdocumentation.org/packages/pls/versions/2.8-5
  2. https://github.com/khliland/pls
Pertanyaan lebih lanjut dapat disampaikan pada kolom komentar maupun menu "Contact us".


0 Response to "Tutorial R : Menangani Multikolinieritas dengan Regresi Komponen Utama (PCR)"

Post a Comment