Artikel kali ini akan membahas proses PLS-PM disertai dengan contoh.
Tahapan proses PLS-PM ada 3 (tiga), 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.
- 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. Bootstrapping, untuk pengujian signifikansi pengaruh variabel independent ke variabel endogen.
Berikut ini contoh langkah pemrograman R untuk PLS-PM, kita memiliki model seperti pada gambar di bawah ini,
dengan outer model dan inner model seperti gambar di bawah ini
kita akan menggunakan data yang diakses dari website pengembang package plspm, silahkan klik file education.csv untuk mendownload data . Seperti biasa, terlebih dahulu kita import data ke dalam R, akan ada 26 kolom dan 181 data sample pada file education.csv.
Tahap Persiapan Model
#memanggil package plspm
> library(plspm)
#Menyusun matrik inner model, Advising pada baris pertama, dan seterusnya.
#angka 1 artinya ada pengaruh, contoh Satisfaction <- c(1, 1, 1, 0) artinya variabel satisfaction mendapat pengaruh dari 3 variabel
> 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 beri nama matrik "innerModelku", dan urutan dalam fungsi rbind() sesuai urutan baris matrik di atas
> innerModelku <- rbind(Advising, Tutoring, Value, Satisfaction)
> colnames(innerModelku) <- rownames(innerModelku)
#Jalankan perintah di bawah untuk melihat gambar model kita
> innerplot(innerModelku, box.size = 0.1)
> library(plspm)
#Menyusun matrik inner model, Advising pada baris pertama, dan seterusnya.
#angka 1 artinya ada pengaruh, contoh Satisfaction <- c(1, 1, 1, 0) artinya variabel satisfaction mendapat pengaruh dari 3 variabel
> 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 beri nama matrik "innerModelku", dan urutan dalam fungsi rbind() sesuai urutan baris matrik di atas
> innerModelku <- rbind(Advising, Tutoring, Value, Satisfaction)
> colnames(innerModelku) <- rownames(innerModelku)
#Jalankan perintah di bawah untuk melihat gambar model kita
> innerplot(innerModelku, box.size = 0.1)
maka di Windows Plots akan muncul tampilan seperti di bawah ini,
Gambar model |
Lanjutkan pemrograman kita dengan perintah di bawah ini,
#Membangun outer model dengan nama "outerModelku",
#angka dalam list sesuai urutan kolom dari tabel education
#Variabel Advising dalam tabel education indikatornya berada pada kolom 5-8
> outerModelku <- list(5:8, 9:12, 13:16, 17:19)
#Mode "A" artinya model variabel kita adalah reflective dan kita beri nama "modenya"
> modenya <- rep("A", 4)
#Menjalankan fungsi plspm()
> plskita <- plspm(education, innerModelku, outerModelku, modes = modenya)
#angka dalam list sesuai urutan kolom dari tabel education
#Variabel Advising dalam tabel education indikatornya berada pada kolom 5-8
> outerModelku <- list(5:8, 9:12, 13:16, 17:19)
#Mode "A" artinya model variabel kita adalah reflective dan kita beri nama "modenya"
> modenya <- rep("A", 4)
#Menjalankan fungsi plspm()
> plskita <- plspm(education, innerModelku, outerModelku, modes = modenya)
Measurement Model Assessment
*Unidimensionality, salah satunya dapat di lihat dari nilai Cronbach alpha, dengan perintah di bawah ini,
> plskita$unidim
Mode | MVs | C.alpha | DG.rho | eig.1st | eig.2nd | |
Advising | A | 4 | 0.9282665 | 0.9492069 | 3.29552 | 0.3429636 |
Tutoring | A | 4 | 0.8545382 | 0.9020758 | 2.791439 | 0.5376909 |
Value | A | 4 | 0.9103054 | 0.9371317 | 3.1543 | 0.5090336 |
Satisfaction | A | 3 | 0.9024956 | 0.9389807 | 2.510583 | 0.2699962 |
dari tabel di atas tampak bahwa, nilai Cronbach alpha utk semua variabel berada di atas 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
name | block | weight | loading | communality | redundancy | |
1 | adv.comp | Advising | 0.2651538 | 0.9060529 | 0.8209318 | 0 |
2 | adv.acces | Advising | 0.2575609 | 0.8566295 | 0.7338141 | 0 |
3 | adv.comm | Advising | 0.287775 | 0.9164694 | 0.8399162 | 0 |
4 | adv.qual | Advising | 0.2901705 | 0.949047 | 0.9006901 | 0 |
5 | tut.prof | Tutoring | 0.3021018 | 0.8771372 | 0.7693697 | 0 |
6 | tut.sched | Tutoring | 0.3153366 | 0.8465975 | 0.7167273 | 0 |
7 | tut.stud | Tutoring | 0.2976227 | 0.7746707 | 0.6001147 | 0 |
8 | tut.qual | Tutoring | 0.2831393 | 0.8387833 | 0.7035573 | 0 |
9 | val.devel | Value | 0.2565649 | 0.8913184 | 0.7944484 | 0.2804875 |
10 | val.deci | Value | 0.2708518 | 0.8857063 | 0.7844757 | 0.2769666 |
11 | val.meet | Value | 0.2719359 | 0.9051028 | 0.8192111 | 0.2892302 |
12 | val.info | Value | 0.3293177 | 0.8663181 | 0.7505071 | 0.2649736 |
13 | sat.glad | Satisfaction | 0.3343154 | 0.8989909 | 0.8081846 | 0.505913 |
14 | sat.expe | Satisfaction | 0.358932 | 0.9140994 | 0.8355777 | 0.5230607 |
15 | sat.over | Satisfaction | 0.3990739 | 0.9305393 | 0.8659034 | 0.5420442 |
*Pengujian cross-loadings, dengan perintah di bawah ini,
> plskita$crossloadings
name | block | Advising | Tutoring | Value | Satisfaction | |
1 | adv.comp | Advising | 0.9060529 | 0.4027957 | 0.4563602 | 0.5938755 |
2 | adv.acces | Advising | 0.8566295 | 0.384843 | 0.4518018 | 0.5683614 |
3 | adv.comm | Advising | 0.9164694 | 0.4450173 | 0.5134531 | 0.6263815 |
4 | adv.qual | Advising | 0.949047 | 0.4729755 | 0.4991096 | 0.6502128 |
5 | tut.prof | Tutoring | 0.4793289 | 0.8771372 | 0.4114777 | 0.4404338 |
6 | tut.sched | Tutoring | 0.3452845 | 0.8465975 | 0.4388641 | 0.4503704 |
7 | tut.stud | Tutoring | 0.3487387 | 0.7746707 | 0.4030577 | 0.4362253 |
8 | tut.qual | Tutoring | 0.4017534 | 0.8387833 | 0.3675891 | 0.4308519 |
9 | val.devel | Value | 0.4423594 | 0.3641667 | 0.8913184 | 0.5593182 |
10 | val.deci | Value | 0.4648483 | 0.430237 | 0.8857063 | 0.546817 |
11 | val.meet | Value | 0.4027196 | 0.4085567 | 0.9051028 | 0.6363958 |
12 | val.info | Value | 0.5497583 | 0.5030764 | 0.8663181 | 0.700314 |
13 | sat.glad | Satisfaction | 0.5493152 | 0.4573126 | 0.5777278 | 0.8989909 |
14 | sat.expe | Satisfaction | 0.580815 | 0.4750988 | 0.6451032 | 0.9140994 |
15 | sat.over | Satisfaction | 0.7032979 | 0.5098829 | 0.6780723 | 0.9305393 |
> plot(plskita)
dan akan ditampilkan gambar di bawah ini di windows Plot,
Structural Model Assessment
*Persamaan regresi tiap variabel endogen, dengan perintah di bawah ini,
> plskita$inner_model
$Value | ||||
Estimate | Std. Error | t value | Pr(>|t|) | |
Intercept | -1.127154e-17 | 0.06028679 | -1.869653e-16 | 1.000000e+00 |
Advising | 3.863951e-01 | 0.06835164 | 5.653048e+00 | 6.168069e-08 |
Tutoring | 3.046544e-01 | 0.06835164 | 4.457164e+00 | 1.465845e-05 |
$Satisfaction | ||||
Estimate | Std. Error | t value | Pr(>|t|) | |
Intercept | -7.479350e-18 | 0.04596812 | -1.627073e-16 | 1.000000e+00 |
Advising | 3.815310e-01 | 0.05660290 | 6.740485e+00 | 2.145682e-10 |
Tutoring | 1.403484e-01 | 0.05494896 | 2.554159e+00 | 1.148710e-02 |
Value | 4.247845e-01 | 0.05715110 | 7.432656e+00 | 4.377194e-12 |
*Koefisien determinasi R2, dengan perintah di bawah ini,
Nilai R2 di atas 0.6 menunjukkan bahwa 60% lebih dependent telah dapat dijelaskan oleh variabel independent-nya.
> plskita$inner_summary
Type | R2 | Block_ Communality | Mean_ Redundancy | AVE | |
Advising | Exogenous | 0 | 0.8238381 | 0 | 0.8238381 |
Tutoring | Exogenous | 0 | 0.6974423 | 0 | 0.6974423 |
Value | Endogenous | 0.3530595 | 0.7871606 | 0.2779145 | 0.7871606 |
Satisfaction | Endogenous | 0.6259869 | 0.8365553 | 0.5236726 | 0.8365553 |
Nilai R2 di atas 0.6 menunjukkan bahwa 60% lebih dependent telah dapat dijelaskan oleh variabel independent-nya.
*Redundancy, dihitung dengan yang sama untuk R2, 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
[1] 0.6190682
Semakin besar nilai GoF menunjukkan semakin bagusnya kinerja dan kualitas secara umum dari model pengukuran baik inner maupun outer model.
Bootstrapping
Langkah berikutnya PLS-PM adalah pengujian bootstraping, dilakukan untuk menguji signifikansi pengaruh dari satu variabel ke variabel lainnya, dengan perintah di bawah ini,
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, innerModelku, outerModelku, modes = modenya, boot.val = TRUE, br = 200)
> bootstrapnya$boot$paths
> bootstrapnya$boot$paths
Original | Mean.Boot | Std.Error | perc.025 | perc.975 | |
Advising -> Value | 0.3864 | 0.3829 | 0.0669 | 0.2590 | 0.5148 |
Advising -> Satisfaction | 0.3815 | 0.3645 | 0.0868 | 0.2098 | 0.5135 |
Tutoring -> Value | 0.3047 | 0.3096 | 0.0666 | 0.1842 | 0.4291 |
Tutoring -> Satisfaction | 0.1403 | 0.1363 | 0.0575 | 0.0159 | 0.2543 |
Value -> Satisfaction | 0.4248 | 0.4339 | 0.0741 | 0.3007 | 0.5882 |
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.2590-0.5148, 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