Partial Least Squares (PLS) Path Modeling dengan R

Partial Least Squares Path Modeling (PLS-PM) merupakan salah satu metode analisis data statistik yang termasuk di dalamnya mengunakan pendekatan pengolahan data dengan PLS-SEM (Sanchez, 2013). Pengolahan data statistik PLS-PM dalam pemrograman R menggunakan package plspm yang dikembangkan oleh Sanchez beserta tim yang diluncurkan pada tahun 2009. Anda mungkin perlu menginstal terlebih dahulu package plspm jika belum terinstal di RStudio anda. Artikel kali ini akan membahas proses PLS-PM disertai dengan contoh.

3 (tiga) tahapan proses PLS-PM, sebagai berikut:

  1. Measurement Model Assessment, akan menguji tiga aspek pada outer model yang meliputi uji:
    • Unidimensionality dari indikator tiap variabel,
    • Pengujian keeratan hubungan dan reliability indikator dengan variabel nya melalui outer loading dan communality test, di mana communality = loading2,
    • Pengujian cross-loadings indikator dari tiap variabel dalam model.
  2. Structural Model Assessmentakan menguji inner model untuk:
    • Persamaan regresi tiap variabel endogen,
    • Koefisien determinasi R2
    • Redundancy, kemampuan variabel independent mengukur variasi variabel endogen nya,
    • the Goodness-of-Fit (GoF) dari model.
  3. Bootstrappinguntuk pengujian signifikansi pengaruh variabel independent ke variabel endogen.

Contoh kasus

Pada contoh di bawah ini kita akan menggunakan data yang diakses dari website pengembang package plspm, silahkan klik file education.csv atau link alternative untuk mendownload data. Seperti biasa, terlebih dahulu kita import data ke dalam R, akan ada 27 kolom dan 181 data sample pada file education.csv. Berikut ini contoh langkah pemrograman R untuk PLS-PM, kita memiliki model seperti pada gambar di bawah ini,

Model yang akan diuji

dengan outer model dan inner model seperti gambar di bawah ini

Gambar inner model
Gambar outer model

Tahap Persiapan Model

Ketik baris perintah seperti di bawah ini di RStudio,

#memanggil package plspm

> library(plspm) 

#Menyusun matrik inner model, angka 1 artinya mendapat pengaruh, 
#contoh: >Satisfaction <- c(1, 1, 1, 0)
#artinya variabel Satisfaction mendapat pengaruh dari 3 variabel lain

> Advising <- c(0, 0, 0, 0)
> Tutoring <- c(0, 0, 0, 0)
> Value <- c(1, 1, 0, 0)
> Satisfaction <- c(1, 1, 1, 0) 

#Kita buat matrik "innerMod",
#urutan dalam fungsi rbind() sesuai urutan baris matrik di atas

> innerMod <- rbind(Advising, Tutoring, Value, Satisfaction)
> colnames(innerMod) <- rownames(innerMod)

#Jalankan perintah di bawah untuk melihat gambar model kita

> innerplot(innerMod, box.size = 0.1) 

maka di Windows Plots akan muncul tampilan seperti di bawah ini,

Model yang diuji

Lanjutkan pemrograman kita dengan perintah di bawah ini,

#Membangun outer model dengan nama "outerMod",
#angka dalam list sesuai urutan kolom dari tabel education
#indikator variabel Advising pada tabel ada pada kolom 6-9

> outerMod <- list(6:9, 10:13, 14:17, 18:20)

#Menyiapkan mode dengan nama modenya
#huruf A, artinya model variabel kita reflective
#angka 4, untuk 4 variabel dalam model kita

> modenya <- rep("A", 4) 

#Menjalankan fungsi plspm()

> plskita <- plspm(education,innerMod,outerMod,modes=modenya) 

Tahap #1 Measurement Model Assessment

*Unidimensionality, indikatornya dapat di lihat melalui nilai Cronbach alpha, dengan perintah di bawah ini,

> plskita$unidim

dari hasil perintah pada tabel di atas tampak bahwa, nilai Cronbach alpha utk semua variabel lebih besar dari 0.7, hal ini menunjukkan bahwa indikator mewakili dengan baik variabel yang diukurnya.

*Pengujian keeratan hubungan dan reliability indikator dengan variabel nya melalui outer loading dan communality test, dengan perintah di bawah ini,

> plskita$outer_model

tabel hasil uji di atas menunjukkan nilai loading dari setiap indikator lebih besar dari 0.7 dan nilai communality di atas 0.5, mengartikan bahwa setiap indikator memiliki hubungan dan reliability yang bagus untuk mengukur variabelnya masing-masing.

*Pengujian cross-loadings, dengan perintah di bawah ini,

> plskita$crossloadings

tabel uji di atas menunjukkan indikator dari setiap variabel mengukur dengan baik variabelnya, terlihat dari tabel loading masing-masing variabel lebih tinggi dibanding di variabel lainnya, terlihat dari angka-angka yang berada dalam kotak merah, misalnya baris adv.acces dengan nilai 0.8566 memiliki nilai paling tinggi dalam satu baris.

Hasil pengolahan data dapat kita lihat dalam bagan model kita dengan perintah di bawah ini,

> plot(plskita)

yang akan menampilkan gambar di windows Plot seperti pada gambar bawah ini ,

Tahap #2 Structural Model Assessment

*Persamaan regresi tiap variabel endogen, dengan perintah di bawah ini,

> plskita$inner_model

*Koefisien determinasi R2, dengan perintah di bawah ini,

> plskita$inner_summary

Nilai  Rdari variabel Satisfaction yang besarnya di atas 0.6 menunjukkan bahwa 60% lebih dependent telah dapat dijelaskan oleh variabel independent-nya.

*Redundancy, dihitung dengan yang sama untuk  R2 di atas, nilai mean_redundancy yang semakin besar menunjukkan kemampuan variabel independent semakin mampu mengukur variasi variabel endogen nya.

*the Goodness-of-Fit (GoF) model, dihitung dengan perintah,

> plskita$gof
 [1] 0.6190682

Semakin besar nilai GoF menunjukkan semakin bagusnya kinerja dan kualitas secara umum dari model pengukuran baik inner maupun outer model.

Tahap #3 Bootstrapping

Langkah berikutnya PLS-PM adalah pengujian bootstraping, dilakukan untuk menguji signifikansi pengaruh dari satu variabel ke variabel lainnya, dengan perintah di bawah ini,

> bootstrapnya= plspm(education,innerMod,outerMod,modes=modenya,boot.val=TRUE,br=200)

> bootstrapnya$boot$paths

dari pengujian pada tabel di atas tampak bahwa tidak ada nilai 0 di antara lower percentile (perc.025) dan upper percentiles (perc.975) menurut Guderdan et al. (2008) dan Garson (2016) jika tidak ada nilai 0 di antara range ini maka dapat dikatakan signifikan, kita lihat salah satu pengaruh variabel Advising pada Value dengan nilai perc.025 dan perc.975 adalah antara 0.2555-0.5228, tidak ada nilai 0 di antara range ini, artinya Advising berpengaruh signifikan pada Value, dari tabel di atas dapat dikatakan bahwa 5 (lima) arah pengaruh dari variabel independent ke variabel dependent adalah signifikan.

References:

  • Garson, G. D. 2016. Partial Least Squares: Regression and Structural Equation Models. Asheboro, NC: Statistical Associates Publishers.
  • Gudergan, Siegfried P. & Ringle, Christian M. & Wende, Sven & Will, Alexander, 2008. “Confirmatory tetrad analysis in PLS path modeling,” Journal of Business Research, Elsevier, vol. 61(12), pages 1238-1249, December.
  • Sanchez, G. 2013. PLS Path Modeling with R, Trowchez Editions. Berkeley, 2013. http://www.gastonsanchez.com/PLS Path Modeling with R.pdf
  • Data education.csv, http://www.gastonsanchez.com/education.csv

2 thoughts on “Partial Least Squares (PLS) Path Modeling dengan R

  1. Selamat pagi pak Didi.
    Mohon maaf sebelumnya, saya ingin bertanya terkait pemrograman R dengan packages “plspm”
    Saya apresiasi sebelumnya terhadap karya bapak ini yang sangat membantu saya untuk mengolah data SEM dengan PLS.
    Saya sudah mencoba meng-install packages “plspm” namun belum berhasil. Di R Console nya muncul kalimat begini “warning massage: package ‘plspm’ ia not available for R version 4.0.1)
    Begitu pak Didi. Saya menggunakan R versi 4.0.1
    Mohon penjelasannya.. terimakasih

    1. Salam Ibu, terima kasih sudah memberikan feedback utk artikel ini, utk package plspm di artikel ini memang kami gunakan pada R versi 3, untuk R versi 4 sepertinya ada perubahan oleh developer, jadi kami sarankan sementara silahkan gunakan R versi 3 jika ingin mencoba package plspm, kami akan ekplorasi utk R versi 4, jika ada update terbaru akan segera kami perbaharui melalui blog kami ini, sekali lagi terima kasih atas masukkannya, semoga sehat dan sukses selalu.

Leave a Reply

Your email address will not be published. Required fields are marked *