Analisis Mediasi dengan package SEMinR pemrograman R

Artikel ini akan menjelaskan bagaimana melakukan analisis mediasi dengan package SEMinR pada pemrograman R. Pada contoh ini kita akan menggunakan data educationFull.csv yang dapat di-download di file ini (educationFull.csv), seperti biasa data dapat terlebih dahulu di-import ke dalam RStudio dengan cara di video ini.

Tutorial ini merupakan kelanjutan dari tutorial analisis PLS-SEM menggunakan SEMinR, silahkan anda mempelajari terlebih dahulu tutorial PLS-SEM dengan SEMinR.

Pedoman utama analisis mediasi kali ini kita akan menggunakan konsep dari buku Hair et al., 2017. dengan konsep dasar seperti gambar di bawah ini, dengan 3 buah variabel y1, y2 dan y3.

model dasar mediasi

dalam bukunya Hair et al., 2017, menjelaskan ketentuan dasar untuk proses pengambilan kesimpulan hasil pengujian mediasi bersarkan bagan berikut ,

bagan pengambilan kesimpulan analisis mediasi,, sumber Hair et al. 2017.
  1. jika indirect effect (p1.p2) signifikan maka ada potensi y2 sebagai mediasi, jika tidak maka y2 bukan variabel mediator
  2. jika p3 signifikan maka ada mediasi sebagian oleh variabel y2, jika p3 tidak signifikan maka y2 adalah mediator penuh (full mediation)

Kita akan melanjutkan proses dari tutorial PLS-SEM dengan SEMinR yang sudah kita lakukan untuk melihat analisis mediasi dari model di bawah ini.

misalnya kita akan melihat variabel Value apakah bisa menjadi variabel mediator bagi Tutoring maupun Advising dalam model di atas.

Dari proses analisis PLS-SEM dengan SEMinR kita mendapatkan hasil akhir seperti gambar di bawah ini,

Tahap #1

Kita jalankan baris perintah di bawah ini untuk menguji indirect effect variabel Tutoring-Value-Satisfaction,

confidence_interval(boot_seminr_model = boot_seminr_model, from = "Tutoring", through = "Value", to = "Satisfaction", alpha = 0.05)

didapatkan hasil di bawah ini, tampak bahwa indirect effect variabel Tutoring-Value-Satisfaction adalah signifikan,

sehingga dapat dinyatakan Value bisa menjadi variabel mediasi pengaruh Tutoring ke Satisfaction.

Tahap #2

Selanjutkan kita jalan baris perintah untuk menguji pengaruh variabel Tutoring ke Satisfaction, dengan perintah di bawah ini,

confidence_interval(boot_seminr_model = boot_seminr_model, from = "Tutoring", to = "Satisfaction", alpha = 0.05)

kita dapatkan hasil seperti gambar di bawah ini, tampak bahwa direct effect Tutoring ke Satisfaction adalah tidak signifikan, sehingga dapat kita simpulkan bahwa Value menjadi mediasi penuh (full mediation) bagi pengaruh Tutoring ke Satisfaction.

Bagaimana dengan posisi variabel Value pada pengaruh Advising-Satisfaction, silahkan anda dapat coba dan bisa kita diskusikan dengan comment di bawah ini. Terima kasih.

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,

Analisis PLS-SEM dengan package SEMinR 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 SEMinR, package ini termasuk baru, info detail dapat diakses dialamat website-nya, mengacu pada website itu, SEMinR dikembangkan oleh Soumya Ray [aut, ths], Nicholas Patrick Danks [aut, cre], Juan Manuel Velasquez Estrada [aut], James Uanhoro [ctr], Arturo Heynar Cano Bejar [ctr] dan dipublikasikan pada 2020-07-23.

Anda mungkin perlu menginstal terlebih dahulu package SEMinR 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, nilai di atas 0.7 menunjukkan indikator sudah cukup valid untuk mengukur variabel endogen.
    • Internal consistency reliability (composite reliability) dengan data rhoC, average variance extracted (AVE) diharapkan di atas 0.5, and rhoA di atas 0.7.
    • Discriminant validity dengan data cross-loading, di mana nilai untuk indikator pada satu variabel harus lebih besar dari nilai cross loading indikator variabel lain pada satu kolom yang sama.
  2. Structural Model Assessmentakan menguji inner model untuk:
    • Uji collinierity model dan data, tidak terjadi multikolinieritas jika nilai VIF < 5
    • Koefisien determinasi R2, nilai R square 0.75, 0.50, atau 0.25 berturut-turut artinya proporsi indikator sudah substantial (bagus), moderate (sedang), atau weak (kurang) persentasenya dalam mengukur variabel endogennya.
    • f2, mengindikasikan besarnya efek variabel independent pada variabel dependent dengan kategori kisaran nilai 0.02, 0.15, dan 0.35 menunjukkan efek small, medium, atau large effect.
  3. Bootstrappinguntuk pengujian signifikansi pengaruh langsung maupun mediated 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 (educationFull.csv). Jika file educationFull.csv dibuka akan terlihat sebuah sheet yang berisi data hasil observasi pada tiap indikator dari ke-4 variabel Tutoring, Advising, Value, Satisfaction yang akan kita uji dengan model seperti pada gambar di bawah ini yang kita ambil dari tutorial package semPLS yang lalu, di tutorial ini terdapat sedikit kekeliruan pada gambar untuk indikator Value. Secara umum model penelitian kita seperti gambar di bawah ini.

untuk variabel Value indikatornya keliru ya, mohon dimaklumkan.

Baris perintah untuk analisis menggunakan SEMinR sebagai berikut:

library(seminr)

#silahkan import data educationFull terlebih dahulu
#kolom di table dataframe harus sesuai nama dan jumlahnya

educate_mm <- constructs(
  composite("Advising", multi_items("adv.", c("comp","acces","comm","qual"))),
  composite("Tutoring", multi_items("tut.", c("prof","sched","stud","qual"))),
  composite("Value", multi_items("val.", c("devel","deci","meet","info"))),
  composite("Satisfaction", multi_items("sat.", c("glad","expe","over")))
)

educate_mm <- as.reflective(educate_mm)

#Creating structural model
#path disesuaikan dengan gambar model penelitian
educate_sm <- relationships(
  paths(from = "Tutoring", to = c("Value", "Satisfaction")),
  paths(from = "Advising", to = c("Value", "Satisfaction")),
  paths(from = "Value", to = "Satisfaction")
)

jalankan perintah di atas, kemudian lanjutkan dengan baris perintah di bawah ini,

educate_pls <- estimate_pls(data = educationFull, measurement_model = educate_mm, structural_model = educate_sm)

model_summary <- summary(educate_pls)
model_summary

jalankan baris program di atas, akan menghasilkan output seperti gambar di bawah ini,

lanjutkan perintah dengan baris di bawah ini, untuk uji Convergent validity dan composite reliability

model_summary$loadings #uji validitas
model_summary$reliability #composite reliability

akan menghasilkan output seperti pada gambar di bawah ini,

lanjutkan dengan baris perintah di bawah ini, untuk uji discriminat validity

model_summary$cross_loadings #discriminant validity

akan menghasilkan luaran berikut, tampak nilai cross loading untuk indikator tut.prof, tut.sched, tut.stud, dan tut.qual pada kolom Tutoring memiliki nilai paling besar pada satu kolom tersebut, demikian juga dengan kolom variabel lainnya.

lanjutkan dengan perintah untuk uji kolinieritas, R square dan uji effect f square dengan perintah di bawah ini,

model_summary$vif_items #Uji collinierity

model_summary$path #Rsquare

model_summary$fSquare #Uji effect

akan menghasilkan tabel di bawah ini,

Tahap akhir yaitu proses bootstraping kita jalankan dengan perintah di bawah ini,

#bootstrap
boot_seminr_model <- bootstrap_model(seminr_model = educate_pls, nboot = 1000, cores = 2, seed = NULL)

#melihat hasil uji hipotesis/returns a specific confidence interval
#using the percentile method as per Henseler et al. (2014).

#direct path
confidence_interval(boot_seminr_model = boot_seminr_model, from = "Advising", to = "Satisfaction", alpha = 0.05)

yang akan menghasilkan luaran seperti di bawah ini,

tampak bahwa Advising berpengaruh signifikan pada Satisfaction, kita lihat nilai 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 juga bisa melihat hasil uji mediated path dengan perintah di bawah ini,

#mediated path
confidence_interval(boot_seminr_model = boot_seminr_model, from = "Advising", through = "Value", to = "Satisfaction", alpha = 0.05)

dengan hasil berikut ini, menunjukkan jalur mediasi Value sebagai mediator bagi pengaruh Advising pada Satisfaction adalah signifikan, kita akan bahas lebih dalam mengenai hal ini di tutorial selanjutnya.

Bagian akhir, kita bisa melihat summary hasil uji bootstraping dengan baris perintah berikut,

#melihat summary lengkap
hasil_boot <- summary(boot_seminr_model)
hasil_boot

yang akan menghasilkan luaran seperti di bawah ini, tampak dari hasil di bawah ini Tutoring tidak berpengaruh signifikan pada Satisfaction karena ada nilai nol di dalam range nilai lower percentile (perc.025) -0.009 dengan nilai upper percentiles (perc.975) 0.267.

Proses penggunaan package SEMinR di atas dapat dilihat pada video di bawah ini.

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

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

Model yang akan kita uji di atas menunjukkan ada 5 hipotesis yang dapat kita uji, 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 pengambilan kesimpulan untuk salah satu hipotesis dari 5 yang kita uji di atas, 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.

Tabel hasil uji di atas menunjukkan bahwa secara keseluruhan, dari 5 (lima) pengaruh variabel independent ke variabel dependent adalah signifikan, karena dari kelimanya tidak ada yang memuat nilai 0 di antara range nilai perc.025 dan perc.975.

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

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

Regresi Linier Berganda dan Sederhana dengan R

Halo semua, tutorial kali ini adalah bagaimana melakukan regresi linier sederhana dan regresi linier berganda dengan pemrograman R kita sertai dengan contohnya.

Contoh #1

Data untuk video di atas dapat didownload di link ini.

Contoh #2

Contoh #2 ini kita akan menggunakan data yang berasal dari penelitian kami yang di terbitkan di Jurnal Manajemen dan Kewirausahaan, silahkan download data tabel12reg.xlsx. Seperti biasa kita akan melakukan import data ke dalam RStudio terlebih dahulu sebelum memulai pengaolahan data. Model regresi kita adalah seperti pada gambar di bawah ini,

Langkah pertama adalah dapat kita lakukan perintah operasi regresi linier sederhana dan berganda dari data kita dan model gambar di atas sebagai berikut,

Menyusun model Regresi Linier Sederhana

Misal persamaan regresi linier sederhana kita adalah:
SMP = a + b.KM + e
di mana a adalah konstanta dan b koefisien regresi, nama variabel yang akan kita gunakan dalam perintah R harus sesuai dengan nama kolom dalam tabel12reg kita, maka perintah nya seperti di bawah ini,

> regModelku <- lm(SMP~KM, data = table12reg)

Menyusun model Regresi Linier Berganda

Misal persamaan regresi linier berganda kita adalah:
SMP = a +b1.KM + b2.CI + e
di mana a adalah konstanta, b1 dan b2 adalah koefisien regresinya, nama variabel yang akan kita gunakan dalam perintah R harus sesuai dengan nama kolom dalam tabel12reg kita, maka perintah nya seperti di bawah ini,

> regModelku <- lm(SMP~KM+CI, data = table12reg) 

Uji Asumsi Regresi Linier

Sebelum membahas hasil uji regresi linier berganda kita perlu melakukan uji asumsi regresi linier untuk menguji normalitas, multikolinieritas, heterokedastisitas, autokorelasi dan linieritas dari model regresi kita.

Uji asumsi Normalitas

Pengujian residual dari model regresi apakah berdistribusi normal maka dilakukan uji Normalitas, dengan perintah di bawah ini,

> par(mfrow=c(2,2))
> plot(regModelku) 

maka di windows Plot akan muncul grafik seperti di bawah ini,

Kita lihat pada grafik Normal Q-Q (pojok kanan atas) menunjukkan point-point data berada disekitar garis lurus, maka dapat dikatakan terdistribusi normal, sehingga dapat dikatakan model regresi memenuhi asumsi Normalitas.

Uji asumsi Multikolinieritas

Pengujian korelasi antar variabel independent untuk melihat tidak adanya korelasi erat antar variabel independent dapat dilakukan melihat nilai VIF dengan perintah vif() dalam package car (anda mungkin perlu menginstal terlebih dahulu package ini), seperti di bawah ini,

> library(car)
> vif(regModelku) 

     KM       CI
 1.529073 1.529073

kita lihat bahwa nilai VIF untuk KM dan CI berada di bawah 2, maka dapat dikatakan tidak terjadi Multikolinieritas dan model kita memenuhi asumsi Multikolinieritas.

Uji asumsi Heteroskedastisitas

Mengukur apakah terjadi ketidaksamaan varians residual (Heteroskedastisitas) dari data-data pengukuran dapat kita lakukan dengan melihat sebaran pada grafik Residuals vs Vitted dengan perintah yang sama pada uji Normalitas.

> par(mfrow=c(2,2))
> plot(regModelku) 

maka di windows Plot akan muncul grafik seperti di bawah ini,

kita lihat pada grafik Residuals vs Fitted (pojok kiri atas) bahwa data-data tersebar dan tidak membentuk satu pola tertentu, sehingga dapat dikatakan tidak terjadi perbedaan varians residual dan model kita memenuhi uji asumsi Heteroskedastisitas.

Uji asumsi Autokorelasi

Uji autokorelasi dilakukan untuk menguji apakah ada pengaruh dari data terdahulu kepada data yang baru, uji ini dilakukan untuk data time series, dengan menggunakan perintah dwtest() dalam package lmtest (anda mungkin perlu menginstal terlebih dahulu package ini) dengan perintah di bawah ini,

> library(lmtest)
> dwtest(regModelku) 

Durbin-Watson test
data:  regModelku
DW = 1.9522, p-value = 0.3891
alternative hypothesis: true autocorrelation is greater than 0

dari hasil uji di atas, dengan nilai Durbin-Watson test p-value lebih dari 0.05 maka dapat dikatakan bahwa tidak terjadi pengaruh antar data sebelum dan terbaru, dapat dikatakan asumsi tidak ada Autokorelasi antar data model regresi terpenuhi.

Uji asumsi Linieritas

Pengujian hubungan linier antara variabel dependent dan independent dilakukan untuk memenuhi asumsi adanya hubungan linier antar variabel tersebut, dengan perintah crPlots() dari package conf (anda mungkin perlu menginstal terlebih dahulu package ini) di bawah ini,

> library(conf)
> crPlots(regModelku) 

maka di windows Plot akan muncul grafik seperti di bawah ini,

dari grafik di atas tampak bahwa posisi 2 (dua) garis warna berbeda (garis putus-putus dan garis sambung) berada pada posisi yang hampir berdempet, artinya variabel independent memiliki linieritas dengan variabel dependent, dapat dikatakan asumsi Lineritas model regresi terpenuhi.

Membaca hasil Regresi Linier Berganda

Tahap akhir dari proses regresi linier berganda adalah intepretasi hasil nya dapat dilakukan dengan perintah di bawah ini,

> summary(regModelku) 
 
Call:
lm(formula = SMP ~ KM + CI, data = table12reg)

Residuals:
    Min      1Q  Median      3Q     Max 
-6.8578 -0.9147  0.0728  1.0631  5.1673 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1.35207    0.82306   1.643  0.10265    
KM           0.10416    0.03865   2.695  0.00789 ** 
CI           0.74446    0.07008  10.622  < 2e-16 ***

Signif. codes:  
0 '***' 0.001 '**' 0.01 '*' 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.005 on 142 degrees of freedom
Multiple R-squared:  0.6235,    Adjusted R-squared:  0.6182 
F-statistic: 117.6 on 2 and 142 DF,  p-value: < 2.2e-16

dari tabel hasil uji di atas didapat persamaan regresi linier berganda kita adalah

SMP = 1.35207 + 0.10416KM + 0.74446CI + e

Kita dapat menyatakan hasil pengujian model regresi linier berganda di atas bahwa pengaruh KM dan CI ke SMP adalah signifikan dengan nilai p-value pada kolom Pr(>|t|) lebih kecil dari 0.05, setiap peningkatan satu satuan KM akan memberikan peningkatan sebesar 0.104 pada SMP, dan setiap peningkatan satu satuan pada CI akan memberikan peningkatan sebesar 0.744 pada SMP. Model kita memiliki nilai Adj. R2 sebesar 0.6182 atau variabel KM dan CI mampu menjelaskan 61.82% dari faktor-faktor yang mempengaruhi SMP. Pada uji F-statistic didapat p-value < 2.2e-16 jauh lebih kecil dari 0.05 menunjukkan model regresi sangat baik.

Analisis Moderasi dengan R

Artikel berikut akan memberikan contoh bagaimana pengujian sebuah variabel sebagai variabel moderasi. Metode dalam artikel ini akan mengacu pada buku Hayes (2018) dengan pendekatan regresi linier. Pada contoh ini kita akan menggunakan data tabel12reg.xlsx yang terdiri atas 145 data sample, data dapat di-download di sini, data terlebih dahulu di-import ke dalam RStudio dengan cara di video ini. Proses regresi linier dengan pemrograman R dapat dilihat pada tutorial sebelumnya di artikel ini.

Misal model penelitian kita seperti di bawah ini, kita akan menguji apakah variabel Z menjadi moderator pengaruh variabel X ke Y.

Proses pengujian moderasi akan menggunakan pengujian regresi linier berganda di mana model di atas akan diuji dengan regresi linier berganda dengan mengubah model menjadi seperti gambar di bawah ini.

model regresinya adalah: Y = c + b1.X + b2.Z + b3.X.Z + e, dalam bukunya, Hayes (2018) menjelaskan bahwa variabel Z akan menjadi moderator yang kuat jika nilai b3 signifikan pada model regresi di atas.

Kita lakukan proses regresi dengan perintah di bawah ini,

 > modelkita <- lm(SMP~KM*CI, data = table12reg)
 > summary(modelkita) 

 Call:
 lm(formula = SMP ~ KM * CI, data = table12reg)

 Residuals:
     Min      1Q  Median      3Q     Max 
 -6.9826 -0.8869  0.0943  1.0341  4.8728 

 Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
 (Intercept) -2.340687   2.111058  -1.109  0.26942    
 KM           0.314829   0.117498   2.679  0.00825 ** 
 CI           1.022098   0.162034   6.308 3.42e-09 ***
 KM:CI       -0.015295   0.008065  -1.897  0.05994 .  
 ----
 Signif. codes:  
 0 '***' 0.001 '**' 0.01 '*' 0.05 ‘.’ 0.1 ‘ ’ 1

 Residual standard error: 1.987 on 141 degrees of freedom
 Multiple R-squared:  0.6328,    Adjusted R-squared:  0.625 
 F-statistic: 81.01 on 3 and 141 DF,  p-value: < 2.2e-16

dari pengujian regresi linier di atas kita dapatkan nilai b3 sebesar -0.01529 dan tidak signifikan pada model (p-value 0.05994), sehingga dapat disimpulkan bahwa variabel Z (competitive intelligene) tidak menjadi moderator bagi pengaruh variabel X (knowledge management) pada variabel Y (strategic management process).

Simple slopes test

Kita akan melakukan pengujian simple slopes test, untuk melihat bagaimana setiap perubahan pada nilai varibel moderasi (Z) akan memberikan perubahan pada pengaruh variabel independent (X) ke variabel dependent (Y). Simple slopes test dapat dilakukan dengan perintah plotSlops() dan testSlopes() yang ada pada package rockchalk.

 > library(rockchalk) 
 > uji.slopes <- plotSlopes(modelkita, plotx="KM", modx="CI", n=3, modxVals="std.dev.")
 > hasil.uji.slopes <- testSlopes(uji.slopes)
   
Values of CI INSIDE this interval:
        lo         hi 
-145.08827   15.36297 
cause the slope of (b1 + b2*CI)KM to be statistically significant 

perintah plotSlopes() di atas akan menghasilkan grafik di bawah ini, tiga garis menunjukkan perubahan nilai Y dengan perubahan X dan Z, dimana nilai Z dimasukkan pada perintah plotSlops() otomatis digunakan tiga nilai Z yaitu mean, mean-SD dan mean+SD.

Lanjutkan dengan perintah di bawah ini untuk melihat hasil simple slopes test,

 > round(hasil.uji.slopes$hypotests,4)
 
        "CI"  slope Std. Error t value Pr(>|t|)
 (m-sd) 10.59 0.1529     0.0461  3.3150   0.0012
 (m)    13.54 0.1077     0.0383  2.8093   0.0057
 (m+sd) 16.49 0.0626     0.0441  1.4189   0.1581 

dari hasil di atas dapat kita lihat bahwa beberapa nilai variabel moderasi akan menghasilkan persamaan linier pengaruh variabel independent ke variabel dependent dengan nilai p-values yang tidak signifikan, saat nilai variabel moderasi = m, p-values nya 0.0057, saat saat nilai variabel moderasi = m+sd, p-values nya 0.1581. Menunjukkan tidak konsisten/signifikannya variabel competitive intelligence dalam memoderasi pengaruh knowledge management ke strategic management process.

Kita dapat membuat variasi pengujian simple slopes test dengan baris perintah di bawah ini,

> uji.slopes <- plotSlopes(modelkita, plotx="KM", modx="CI", n=5, modxVals="quantile")

bagaimana hasilnya? kami tunggu feedback nya ya, semoga lancar semua.

References
Hayes, A. F. (2018). Introduction to Mediation, Moderation, and Conditional Process Analysis, Second Edition: A Regression-Based Approach. New York: Guilford Publications.

Analisis Mediasi dengan R

Artikel ini akan memberikan contoh bagaimana melakukan analisis mediasi dengan pemrograman R. Pada contoh ini kita akan menggunakan data tabel12reg.xlsx yang dapat di-download di sini, dapat terlebih dahulu di-import ke dalam RStudio dengan cara di video ini. Proses regresi linier dengan pemrograman R dapat dilihat pada tutorial sebelumnya di artikel ini. Metode analisis mediasi ini akan menggunakan metode yang dikembangkan oleh Baron & Kenny (1986) yang berbasis pada analisis regresi linier sederhana dan regresi linier berganda.

Misal kita memiliki model di bawah ini, kita akan menguji apakah variabel M menjadi mediator pengaruh variabel X ke Y.

ada 3 tahap analisis mediasi yang akan dilakukan

#Tahap1
Pengujian regresi linier sederhana variabel X ke Y,

diharapakan ada pengaruh signifikan X ke Y, namun ada beberapa pendapat yang menyatakan tidak terlalu penting untuk melakukan #Tahap1 ini selama ada teori yang kuat terkait variabel X dan Y ini,

#Tahap1
> model.0 <- lm(SMP~KM, data = table12reg)
> summary(model.0) 

 Call:
 lm(formula = SMP ~ KM, data = table12reg)
 
 Residuals:
     Min      1Q  Median      3Q     Max 
 -6.6226 -1.5486 -0.0423  1.6861  9.8711 
 
 Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
 (Intercept)  6.40061    0.89703   7.135 4.45e-11 ***
 KM           0.34567    0.04173   8.284 7.76e-14 ***
 Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 ‘.’ 0.1 ‘ ’ 1
 
 Residual standard error: 2.677 on 143 degrees of freedom
 Multiple R-squared:  0.3243,    Adjusted R-squared:  0.3196 
 F-statistic: 68.63 on 1 and 143 DF,  p-value: 7.76e-14

dari proses #Tahap1 didapat bahwa variabel X memiliki tingkat signifikansi dengan p-value 7.76e-14 pada variabel Y.

#Tahap2
Pengujian regresi linier sederhana variabel X ke M,

variabel X harus berpengaruh signifikan ke M untuk bisa melanjutkan pengujian mediasi.

#Tahap2
> model.M <- lm(CI~KM, data = table12reg)
> summary(model.M) 

 Call:
 lm(formula = CI ~ KM, data = table12reg)

 Residuals:
     Min      1Q  Median      3Q     Max 
 -5.4035 -1.8647  0.1085  1.1085  9.5965 

 Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
 (Intercept)   6.7815     0.8018   8.458 2.89e-14 ***
 KM            0.3244     0.0373   8.698 7.28e-15 ***
 Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 ‘.’ 0.1 ‘ ’ 1

 Residual standard error: 2.393 on 143 degrees of freedom
 Multiple R-squared:  0.346,    Adjusted R-squared:  0.3414 
 F-statistic: 75.66 on 1 and 143 DF,  p-value: 7.276e-15

dari proses #Tahap2 didapatkan bahwa variabel Knowledge Management (X) berpengaruh signifikan pada variabel Competitive intelligence (M) dengan nilai p-value 7.28e-15.

#Tahap3
Pengujian regresi linier berganda variabel X dan M ke Y,

pada pengujian #Tahap3, M harus signifikan pada Y, jika signifikansi X terhadap Y turun, maka M adalah variabel mediasi sebagian pengaruh X pada Y, jika variabel X berpengaruh tidak signifikan pada Y, maka M adalah sebagai mediator penuh X pada Y.

#Tahap3
#multiple regression
> model.Y <- lm(SMP~KM+CI, data = table12reg)
> summary(model.Y)
 
 Call:
 lm(formula = SMP ~ KM + CI, data = table12reg)
 Residuals:
     Min      1Q  Median      3Q     Max 
 -6.8578 -0.9147  0.0728  1.0631  5.1673
 
 Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
 (Intercept)  1.35207    0.82306   1.643  0.10265    
 KM           0.10416    0.03865   2.695  0.00789 ** 
 CI           0.74446    0.07008  10.622  < 2e-16 ***
 Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 ‘.’ 0.1 ‘ ’ 1

 Residual standard error: 2.005 on 142 degrees of freedom
 Multiple R-squared:  0.6235,    Adjusted R-squared:  0.6182 
 F-statistic: 117.6 on 2 and 142 DF,  p-value: < 2.2e-16

dari hasil pengujian pada #Tahap3 kita dapatkan bahwa variabel M berpengaruh signifikan pada variabel Y (p-value < 2e-16) dan signifikansi variabel X pada variabel Y mengalami penurunan dimana nilai p-value menjadi 0.00789, dibandingkan sebelum ada varibel M (proses #Tahap1) dengan p-value adalah 7.76e-14. Pengujian pada 3 tahapan di atas memberikan kesimpulan bahwa variabel M menjadi mediator sebagian pengaruh variabel X kepada variabel Y.

References
Baron, R. M., & Kenny, D. A. (1986). The moderator–mediator variable distinction in social psychological research: Conceptual, strategic, and statistical considerations. Journal of Personality and Social Psychology, 5, 1173-1182.