PLS-SEM dengan package semPLS pemrograman R

Partial least squares structural equation modeling (PLS-SEM) merupakan salah satu metode analisis data dan pengembangan model penelitian yang sangat populer (Hair et al., 2017).

Pada tutorial ini kita akan melakukan analisis data statistik PLS-SEM dalam pemrograman R, kali ini saya menggunakan R versi 4.0.1 dengan package semPLS yang dikembangkan oleh Armin Monecke dan Friedrich Leisch yang diluncurkan pada tahun 2013. Anda mungkin perlu menginstal terlebih dahulu package semPLS jika belum terinstal di RStudio anda. Artikel kali ini akan membahas proses PLS-SEM disertai dengan contoh.

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

  1. Measurement Model Assessment, akan menguji empat hal pada outer model yang meliputi uji:
    • Convergent validity indikator tiap variabel dengan melihat nilai dari outer loading,
    • Indicator reliability pengujian keeratan hubungan indikator dengan variabel nya melalui communality test,
    • Internal consistency reliability (composite reliability) dengan data rho.
    • Discriminant validity dengan data cross loading.
  2. Structural Model Assessmentakan menguji inner model untuk:
    • 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 membahas contoh dari data file education.csv , saya juga menyediakan data yang sudah dimodifikasi di file ini (educate.xlsx). Jika file educate.xls dibuka akan terlihat 3 sheet seperti gambar di bawah ini,

Seperti biasa, terlebih dahulu kita import data ke dalam R, akan ada 3 sheet yang perlu kita import menjadi 3 buah tabel yang akan kita gunakan. Berikut ini tahapan pemrograman R untuk PLS-SEM, kita memiliki model seperti pada gambar di bawah ini,

Model yang akan diuji

dengan inner model dan outer model seperti gambar di bawah ini

Tahap Persiapan Model

Ketik baris perintah seperti di bawah ini di RStudio,

#Tahap Persiapan Model
library(lattice)
library(semPLS)

#import 3 table dari file educate.xlsx
#beri nama masing-masing table dengan 'educate', 'TAVSsm' dan 'TAVSmm'
#setup tipe data table educate sebagai datafram, TAVSsm dan TAVSmm matrix
TAVSsm <- as.matrix(TAVSsm)
TAVSmm <- as.matrix(TAVSmm)
educate <- as.data.frame(educate)

#simpan data kedalam file utk digunakan lain waktu
save(TAVSsm, file="TAVSsm.rda")
save(TAVSmm, file="TAVSmm.rda")
save(educate, file="educate.rda")

#memanggil data R yang tersimpan di working directory
load("TAVSsm.rda")
load("TAVSmm.rda")
load("educate.rda")

#Bangun model semPLS
TAVS <- plsm(data = educate, strucmod = TAVSsm, measuremod = TAVSmm)

Setelah baris perintah di atas maka di RStudio akan dihasilkan 3 table seperti pada gambar di bawah ini,

lanjutkan dengan baris perintah di bawah ini, untuk melihat hubungan antar indikator dalam setiap variabel, saya beri contoh untuk variabel Tutoring,

#melihat hubungan antar indikator
mvpairs(model = TAVS, data = educate, LVs = "Tutoring")

yang akan menghasilkan gambar seperti di bawah ini,

kita lanjutakan dengan baris program di bawah ini,

#menyiapkan format untuk Model Assessment
tavs <- sempls(model=TAVS,data=educate,wscheme="centroid")
tavs

akan menghasilkan tampilan pada bagian console window di bawah ini,

Tahap #1 Measurement Model Assessment

*Convergent validity indikator tiap variabel dengan melihat nilai dari outer loading, masukkan baris program berikut,

#convergent validity
tavs$outer_loadings

tabel hasil uji di atas menunjukkan nilai loading dari setiap indikator lebih besar dari 0.7 mengartikan bahwa setiap indikator mampu dengan baik mengukur variabelnya masing-masing.

*Indicator reliability pengujian keeratan hubungan indikator dengan variabel nya melalui communality test, dengan baris program berikut,

#indicator reliability
communality(tavs)

nilai communality di atas 0.5, mengartikan bahwa setiap indikator memiliki hubungan dan reliability yang bagus untuk mengukur variabelnya masing-masing.

*Internal consistency reliability (composite reliability) dengan data rho. Silahkan masukkan baris program di bawah,

#Internal Consistency Reliability
dgrho(tavs)

nilai rho untuk semua variabel lebih besar dari 0.7, hal ini menunjukkan bahwa indikator mewakili dengan baik dan reliabel untuk mengukur variabel masing-masing.

*Discriminant validity dengan data cross loading, menggunakan baris program berikut,

#Discriminant Validity (cross loading)
plsLoadings(tavs)

tabel uji di atas menunjukkan indikator dari setiap variabel mengukur dengan baik variabelnya, terlihat dari tabel cross loading masing-masing variabel lebih tinggi dibanding kolom variabel lainnya, misalnya baris adv.acces dengan nilai 0.86 memiliki nilai paling tinggi dalam satu baris.

*Menggambar jalur model yang diuji, untuk indikator full bisa diisi FALSE atau TRUE, baris program di bawah ini,

#gambar jalur: indikator full = FALSE
library(DiagrammeR)
pathDiagram(tavs, file = "graph_tavs", full = FALSE, edge.labels = "both",output.type = "graphics", digits = 2, graphics.fmt = "pdf")
grViz("graph_tavs.dot")

baris program di atas akan menghasilkan file graph_tavs.dot dan tersimpan ke dalam working directory kita.

Kemudian kita buka file tersebut dengan perintah grViz dan akan tampil pada windows viewer di sisi kanan, gambar jalur ini dapat kita simpan kembali sebagai file gambar (png, jpeg, bmp) melalui menu Export.

gambar jalur model tanpa indikator

untuk indikator full = TRUE akan menghasilkan gambar jalur yang lengkap dengan seluruh indikatornya, seperti di bawah ini,

#gambar jalur: indikator full = TRUE
library(DiagrammeR)
pathDiagram(tavs, file = "graph_tavs", full = TRUE, edge.labels = "both",output.type = "graphics", digits = 2, graphics.fmt = "pdf")
grViz("graph_tavs.dot")
gambar jalur model lengkap dengan indikator

Tahap #2 Structural Model Assessment

*Koefisien determinasi R2 dengan baris program di bawah ini,

#Koefisien determinasi R2 dengan perintah di bawah ini
rSquared(tavs)

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

*Redundancy, kemampuan variabel independent mengukur variasi variabel endogen nya, menggunakan baris program di bawah,

#Redundancy
redundancy(tavs)

nilai redundancy yang semakin besar menunjukkan kemampuan variabel independent semakin mampu mengukur variasi variabel endogen nya.

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

#GoF
gof(tavs)

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-SEM adalah pengujian bootstraping, dilakukan untuk menguji signifikansi pengaruh dari satu variabel ke variabel lainnya, dengan perintah di bawah ini,

#Bootstrapping
set.seed(123)
tavsBoot <- bootsempls(tavs, nboot = 500, start = "ones", verbose = FALSE)
tavsBoot

akan menghasilkan,

dilanjutkan baris program,

tavsBootsummary <- summary(tavsBoot, type = "bca", level = 0.95)
tavsBootsummary

akan menghasilkan tabel di bawah ini,

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 contoh, pengaruh variabel Advising pada Value (beta_1_3) dengan nilai perc.025 dan perc.975 adalah antara 0.2520-0.544, tidak ada nilai 0 di antara range ini, artinya Advising berpengaruh signifikan pada Value, dari tabel di atas dapat dikatakan bahwa secara keseluruhan, dari 5 (lima) pengaruh variabel independent ke variabel dependent adalah signifikan.

References

  • Hair, J. F., Hult, G. T. M., Ringle, C., & Sarstedt, M. (2017). A primer on partial least squares structural equation modeling (PLS-SEM). In SAGE Publications, Inc. Retrieved from https://us.sagepub.com/en-us/nam/a-primer-on-partial-least-squares-structural-equation-modeling-pls-sem/book244583
  • 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

Berikut ini adalah video tutorial penggunaan package semPLS, di video ini dijelaskan setiap tahapan PLS-SEM dijalankan.

PLS-SEM dengan package semPLS pemrograman R