Tampilkan postingan dengan label SEM. Tampilkan semua postingan
Tampilkan postingan dengan label SEM. Tampilkan semua postingan

3/03/2026

Model comparison dan parameter constraints di SEM

Model comparison (perbandingan model) dan parameter constraints (batasan parameter)

Apa itu model dalam SEM?

Model = “peta hubungan sebab-akibat” antar variabel.

  • Panah satu arah X → Y: “X memengaruhi Y” (regresi/efek langsung)
  • Panah dua arah X ↔ Y: “X berkorelasi dengan Y” (hubungan tanpa arah sebab-akibat yang tegas)
  • Setiap panah punya angka (parameter) yang menunjukkan seberapa kuat pengaruh/hubungannya
  • Ada juga “error” (bagian yang tidak bisa dijelaskan model)

Tujuan SEM: melihat apakah pola hubungan yang kita gambar cocok (fit) dengan data.

Intinya: model mencoba meniru pola hubungan yang ada di data. Kalau model “mirip” dengan data, kita bilang fit-nya bagus.


Apa itu “Parameter”?

Parameter = angka-angka di model yang harus diestimasi/dicari dari data, misalnya:

  • Koefisien pengaruh pada panah (seberapa kuat pengaruh X ke Y)
  • Korelasi (↔)
  • Varians (besar penyebaran/error)

Kalau model punya lebih banyak parameter bebas, biasanya lebih mudah “menyesuaikan” data (fit bisa membaik), tapi risikonya: terlalu “menghafal” data (overfit) dan tidak sederhana.


Apa itu Model Fit (kecocokan model)?

Model fit menjawab: “Seberapa dekat model kita dengan data nyata?”

Di  SEM, sering muncul beberapa ukuran (fit indices), misalnya:

- Chi-square (χ²): mengukur “jarak” antara model dan data. (Semakin kecil umumnya semakin baik.)

- df (degrees of freedom/ derajat bebas): kira-kira ukuran “kesederhanaan model”.

  • Model lebih sederhana → df biasanya lebih besar.
  • Model lebih rumit → df biasanya lebih kecil.

- CFI, TLI: umumnya makin mendekati 1 makin baik.

- RMSEA: umumnya makin kecil makin baik.

- AIC, BIC: dipakai untuk membandingkan model (umumnya lebih kecil lebih baik).

Catatan: membandingkan fit indices itu deskriptif (membantu memilih), bukan “pembuktian mutlak” untuk semua situasi.


Kenapa kita perlu “Model Comparison” (membandingkan model)?

Karena saat analisis, kita sering mencoba beberapa model:

  • Model A: sederhana (lebih sedikit panah/ parameter)
  • Model B: kompleks (lebih banuak panah/ parameter)

Pertanyaan:

  • Kalau menambah parameter: apakah fit benar-benar membaik?
  • Kalau menghapus parameter: apakah fit jadi jauh lebih buruk?


Ukuran-ukuran fit yang sering dibandingkan

- χ² (Chi-square)

Mengukur “jarak” antara model dan data.

Umumnya χ² lebih kecil → lebih baik (tapi sangat dipengaruhi ukuran sampel N).

- df (degrees of freedom/ derajat bebas)

Kira-kira menunjukkan “seberapa dibatasi” modelnya.

  • Model lebih sederhana biasanya punya df lebih besar.
  • Model lebih fleksibel/kompleks biasanya df lebih kecil.

- CFI, TLI

Indeks perbandingan dengan baseline model. 

Semakin mendekati 1 → biasanya semakin baik.

- RMSEA

Mengukur error aproksimasi per df.

Lebih kecil → biasanya lebih baik.

- AIC, BIC

Untuk membandingkan model (terutama yang tidak selalu nested).

Lebih kecil → biasanya lebih baik (menghukum model yang terlalu kompleks).

Catatan: perbandingan fit indices bersifat deskriptif (membantu memilih), bukan satu-satunya dasar “pembuktian statistik”.


Konsep penting: “Nested Models” (model bersarang)

Dua model disebut nested (bersarang) kalau:

- Model lengkap (full/ unrestricted) punya semua parameter model sederhana plus minimal 1 parameter tambahan.

- Model sederhana (reduced/ restricted) bisa dibuat dari model lengkap hanya dengan memberi batasan (constraint), misalnya:

  • mengubah suatu panah jadi 0 (dihapus)
  • atau memaksa dua pengaruh harus sama.

Contoh:

  • Model 1 (full): ada korelasi error (lebih banyak parameter)
  • Model 2 (reduced): korelasi error dihilangkan (ada “pembatasan”) → Model 2 nested di dalam Model 1.

Kalau tidak nested, kita tidak bisa memakai beberapa tes perbedaan χ² dengan cara standar.


Cara membandingkan model nested: LRT/ Chi-square Difference Test

Nama lain: Likelihood Ratio Test (LRT) atau uji selisih chi-square.

- Ide sederhana:

Kita bandingkan model full (lebih bebas) vs reduced (lebih dibatasi)

Hitung selisih:

Aturan keputusan (gampangnya):

  • Jika Δχ²  “besar” (signifikan) → model reduced lebih buruk secara nyata → model full lebih layak.
  • Jika tidak signifikan → tambahan parameter di full tidak terlalu perlu → pilih reduced (lebih sederhana).


LM Test (Lagrangian Multiplier) & Modification Indices (MI)

- LM Test itu apa?

LM test menjawab pertanyaan:

“Kalau kita membebaskan satu constraint (misalnya menambah satu panah yang tadinya 0), kira-kira fit membaik tidak?”

Ciri penting:

  • Cukup mengestimasi model yang restricted saja.
  • Hasilnya memberi petunjuk: constraint mana yang kalau dibuka akan paling menurunkan χ².

- Modification Indices (MI) itu apa?

MI adalah “petunjuk otomatis” dari software:

“Kalau kamu menambah parameter ini (mis. tambah panah X → Y), kira-kira χ² turun sebesar …”

Kadang ada contoh MI yang menyarankan hubungan tertentu untuk ditambah, lalu model direvisi dan fit membaik.

Peringatan penting dari:

  • Hati-hati “fishing expedition” (asal coba-coba karena ingin fit bagus).
  • Bisa “capitalizing on chance” = kebetulan cocok di data ini, tapi gagal di data lain.
  • Idealnya perubahan harus masuk akal secara teori, dan perlu replikasi (dicek lagi di data lain).


Wald Test (untuk “model trimming”/ menghapus jalur)

Kalau LM/MI itu seperti:

“Tambahkan apa supaya lebih baik?”

Maka Wald test seperti:

“Parameter ini kalau dihapus (dibuat 0), apakah model jadi jauh lebih buruk atau tidak?”

Catatan:

  • Dipakai untuk “trimming” (merapikan model)
  • Disarankan hati-hati, terutama kalau N (jumlah data) kecil
  • Jangan asal buang semua jalur yang tidak signifikan; lebih aman menunggu replikasi

Ringkasan fungsi:

  • Wald: menguji apakah pembatasan bisa dipasang (boleh dihapus/ dibuat 0).
  • LM: menguji apakah pembatasan sebaiknya dilepas (sebaiknya ditambah jalur).


Model Respecification (kalau model tidak fit, apa yang dilakukan?)

- Cari penyebab umum:

  • Salah memasukkan hubungan (inclusion yang keliru)
  • Ada hubungan penting yang lupa dimasukkan (exclusion)
  • Memang model dasarnya kurang tepat

- Kalau sudah mengubah-ubah model berdasarkan data, kita masuk wilayah eksploratori:

  • p-value jadi “perkiraan”
  • butuh replikasi

- Lebih baik revisi berdasarkan teori, bukan hanya angka.

- Praktik yang lebih sehat:

  • Lihat residuals (bagian yang tidak dijelaskan model) untuk tanda “ada yang aneh”
  • Bisa “pecah” masalah jadi bagian kecil (piece-wise fitting)


Parameter Constraints (Pembatasan Parameter)

Ini bagian “mengunci” parameter untuk menguji hipotesis tertentu.

- Jenis constraint yang umum

Fixing parameter to 0

  • Contoh: “panah ini dianggap tidak ada” → koefisien = 0.
  • Ini mirip ide trimming.

- Equality constraints (membuat dua parameter sama)

  • Contoh hipotesis: “Pengaruh A ke Y sama besar dengan pengaruh B ke Y.”
  • Ditulis seperti: 

Makna konseptualnya:

Kita mengatakan dua pengaruh itu “kekuatan efeknya sama”, jadi model dipaksa memperlakukan keduanya setara.

Cara mengecek constraint “masuk akal atau tidak”, biasanya dibandingkan:

  • Model full (tanpa dipaksa sama)
  • Model constrained (dipaksa sama)

Kalau setelah dipaksa sama ternyata fit jadi jauh lebih buruk, berarti dugaan “keduanya sama” tidak cocok dengan data.


Jadi, “pilih yang mana” saat membandingkan?

Rekomendasi:

  • Umumnya LRT (chi-square difference test) direkomendasikan karena fleksibel dan “serbaguna”
  • Ada pengecualian tertentu (mis. constraint pertidaksamaan)

Prinsip besar yang aman:

  • Kalau dua model nested dan hasil LRT bilang “perbedaannya tidak signifikan” → pilih model yang lebih sederhana
  • Tapi jangan cuma angka: perubahan model sebaiknya tetap masuk akal secara teori


This entry was posted in

Model fit di SEM

Apa itu Model Fit (Kecocokan Model)?

Model = gambaran hubungan antar variabel yang kita buat (misalnya: olahraga → kebugaran → sakit).

Data = hasil pengukuran nyata dari orang-orang.

Model fit menjawab pertanyaan:

Seberapa cocok cerita/ jalur yang dibuat model dengan pola yang benar-benar ada di data?

  • Kalau fit bagus: model “tidak jauh” dari data.
  • Kalau fit jelek: model “melenceng”, ada hubungan yang kurang/ kelebihan, atau arah hubungan salah.


Setelah model dibuat, apa yang biasanya dicek?

Evaluasi model biasanya mencakup:

- Besar & arah parameter (koefisien jalur)

Contoh: koefisien −0,196 artinya ketika variabel A naik, variabel B turun (hubungan negatif).

- Residual (sisa kesalahan)

Residual besar = model belum menjelaskan hubungan tertentu dengan baik. 

- R^2 untuk variabel yang dipengaruhi (endogenous)

R^2 itu “berapa persen bisa dijelaskan model” (misal R^2 = 0,152 berarti 15,2% dijelaskan)).

- Global model fit (fokus materi ini)

Nilai ringkas untuk menilai kecocokan model secara keseluruhan.


Konsep inti: “Model sempurna (Exact fit) vs model kita”

Ada dua cara berpikir:

  • Exact fit: model dianggap tepat sama dengan data (jarak = 0)
  • Dalam praktik, kita sering cukup puas dengan close/ approximate fit: model tidak sempurna, tapi cukup dekat dan masuk akal

Model yang baik harus jauh lebih baik dari model terburuk, dan cukup dekat ke data.


Uji Chi-square (χ^2) = tes statistik “exact model fit”

- Apa yang diuji?

Chi-square menguji hipotesis:

  • H0 (nol): model cocok tepat dengan data (perbedaan = 0)
  • Kita berharap H0 tidak ditolak (artinya: tidak ada bukti kuat bahwa model jelek)

- Cara membaca hasilnya (versi sederhana)

  • Jika p-value > 0,05 → biasanya dianggap fit oke (tidak menolak H0).
  • Jika p-value ≤ 0,05 → biasanya dianggap model tidak cocok.

- Kenapa chi-square “kontroversial”?

Karena sangat sensitif terhadap ukuran sampel:

  • Kalau sampel besar, kesalahan kecil pun bisa terdeteksi → model gampang “ditolak”.
  • Kadang bisa terjadi hal aneh: kesalahan serius malah “lolos” atau kesalahan kecil malah “ditolak”

- Chi-square juga dipengaruhi hal lain (bukan murni salah model), misalnya:

  • ukuran sampel
  • nilai parameter
  • jumlah indikator

Kesimpulan praktis: chi-square tetap dilihat, tapi jangan sendirian. Harus dibantu indeks lain.


Incremental Fit Indices (Relative Fit Indices)

Ide pembanding:

  • Worst possible model = null/independence model (menganggap variabel-variabel tidak saling berhubungan)
  • Best possible model = fully saturated model (fit sempurna)

Indeks “incremental” menilai: apakah model kita jauh lebih baik dibanding model terburuk atau tidak?

- TLI (Tucker-Lewis Index)

  • Idealnya mendekati 1.
  • Jauh < 1 → indikasi misspecification.
  • Jauh > 1 bisa terjadi (sering disebut “overfitting”/efek perhitungan).

Intuisi: TLI melihat perbandingan “seberapa efisien” model memperbaiki fit dibanding baseline, dengan mempertimbangkan kompleksitas (df).

Intinya: Semakin dekat 1 → semakin bagus.

- CFI (Comparative Fit Index)

Menggunakan ide bahwa χ^2 − df merepresentasikan “ketidakcocokan” (non centrality).

  • Semakin dekat 1 → semakin bagus.
  • Baseline biasanya menganggap Σ diagonal (variabel tidak berkorelasi).

Logikanya: CFI menilai seberapa besar peningkatan model kita dibanding model yang “tidak menghubungkan apa-apa”.


Absolute Fit Indices: jarak dari fit sempurna

Absolute fit menganggap model terbaik punya nilai fit = 0, lalu mengukur jarak dari kondisi sempurna itu.

- RMSEA (Root Mean Square Error of Approximation)

RMSEA = rata-rata “kesalahan pendekatan” per derajat kebebasan.

Patokan:

  • 0 = sempurna
  • < 0,05 = well-fitting
  • < 0,08 = reasonable approximation
  • > 0,10 = not acceptable

- RMSEA dan CI 90% 

RMSEA juga sering dilaporkan dengan CI 90% (batas bawah & atas):

Jika RMSEA terestimasi 0, batas bawah CI bisa 0 juga—itu artinya “ketidakcocokan tidak melewati batas close fit”, bukan berarti model benar-benar sempurna.

Ada juga “tes close fit”:

Jika p-value uji ini besar → mendukung close fit.


Contoh: menilai fit dari hasil output

Output (hasil “fit.measures”):

Penjelasan:

- Chi-square = 5,937, df = 4, p = 0,204

Karena 0,204 > 0,05, maka tidak menolak H0 → secara chi-square, model cocok.

- Baseline

Artinya model “tanpa hubungan” itu jelas buruk—ini yang membuat CFI/TLI bisa tinggi jika model kita jauh lebih baik.

- CFI = 0,988

Sangat dekat 1 → bagus.

- TLI = 0,969

Dekat 1 → bagus.

- RMSEA = 0,036, CI 90%: 0,000 sampai 0,092

  • 0,036 < 0,05 → baik
  • Batas atas 0,092 masih mendekati area “cukup” (karena <0,10), jadi masih masuk akal
  • P-value RMSEA ≤ 0,05 = 0,582 → mendukung “close fit”

- R^2 

Artinya: struktur hubungan tidak bertentangan dengan data, tapi kemampuan menjelaskan variasi variabel itu masih terbatas (mungkin ada faktor lain di luar model).

  • fitness: 0,152 (15,2%)
  • stress: 0,062 (6,2%)
  • illness: 0,174 (17,4%)

Kesimpulan contoh: model ini fit-nya baik/ cocok dengan data berdasarkan kombinasi indikator.


Cara cepat menilai model fit

Kalau kamu melihat output SEM, lakukan urutan ini:

- Lihat Chi-square p-value

p > 0,05 → mendukung fit (tapi jangan puas dulu)

- Lihat CFI & TLI

makin dekat 1 → makin bagus

- Lihat RMSEA + CI

< 0,05 bagus; < 0,08 masih oke; > 0,10 jelek



This entry was posted in

Konsep model fit (kecocokan model) di SEM

Apa itu Model Fit?

Bayangkan kamu membuat peta untuk menjelaskan jalan-jalan di sebuah kota.

Kalau peta kamu mirip dengan kondisi kota sebenarnya → fit-nya bagus.

Kalau banyak jalan yang salah → fit-nya jelek.

Dalam statistik (sering di SEM / CFA / path analysis), model fit artinya:

Seberapa cocok “model hubungan” yang kita gambar dengan data nyata.


Tiga model pembanding penting: baseline, saturated, dan user model

- Baseline / Null / Independence model (model paling jelek)

Asumsinya:

variabel-variabel tidak saling berhubungan (tidak ada korelasi/relasi),

secara matriks, kovarians antar variabel diasumsikan nol (hanya diagonal yang ada).

Model ini biasanya memang jelek, tapi berguna sebagai patokan untuk indeks “relatif” seperti CFI dan TLI.

- Saturated / Unrestricted model (model paling sempurna)

Model yang membiarkan semua hubungan yang mungkin sehingga bisa:

menyesuaikan data hampir/benar-benar sempurna.

Ini “sempurna” secara fit, tetapi sering terlalu bebas (kurang informatif untuk teori).

- User / Maintained model (model yang kita ajukan)

Ini model yang kita buat berdasarkan teori/hipotesis.

Tujuan evaluasi fit: mengecek apakah model teori ini masuk akal dibanding data.


Konsep dasar uji Chi-square (χ^2 ) dan degrees of freedom (df)

Banyak indeks fit berakar dari dua hal ini.

- χ^2 tu mengukur apa?

Anggap χ^2 sebagai “ukuran ketidakcocokan” antara: pola hubungan yang diprediksi model vs pola hubungan yang benar-benar ada di data.

Interpretasi umum:

  • χ^2 kecil (relatif terhadap df) → model lebih cocok
  • χ^2 besar → model kurang cocok

- df (derajat bebas) itu apa?

df berkaitan dengan seberapa ketat model:

  • semakin banyak “pembatas/aturan” (parameter dikunci) → df makin besar
  • model makin bebas → df makin kecil (bahkan bisa 0 untuk model sangat bebas)

- P-value dari uji χ^2 Ada “uji exact fit”:

  • Hipotesis nol (H0): model pas sempurna dengan data
  • Kalau p-value kecil (mis. < 0,05) → model dianggap tidak pas sempurna
  • Kalau p-value besar → kita “tidak punya bukti” model itu tidak pas (lebih aman)

Catatan penting: uji χ^2 ini sering “sensitif” terhadap ukuran sampel, jadi peneliti biasanya melihat indeks lain juga (CFI, TLI, RMSEA).


Incremental Fit Indices (Indeks fit “relatif”)

Indeks ini membandingkan model kita dengan baseline model (model terjelek).

Intinya:

kalau model kita jauh lebih baik daripada baseline → indeks mendekati 1.

Dua yang paling umum:

  • TLI (Tucker–Lewis Index)
  • CFI (Comparative Fit Index)


1. TLI (Tucker–Lewis Index/ ρ2)

Makna konsepnya:

TLI membandingkan “seberapa buruk” model kita vs baseline, dengan mempertimbangkan df (jadi ada “hukuman” untuk model yang terlalu rumit).

  • Idealnya TLI = 1 (fit sangat baik)
  • Jauh < 1 → indikasi misspecification (model keliru/ada hubungan penting yang hilang atau salah)
  • Bisa > 1 → kadang terjadi (secara perhitungan bisa “melewati 1”), sering diinterpretasi sebagai tanda perhitungan/fit yang “terlalu” baik atau efek sampel/model

Catatan, mengingatkan TLI dipengaruhi oleh:

  • pilihan baseline,
  • penelitian sebelumnya,
  • hubungan antar indeks,
  • jenis fitting function yang dipakai software.


2. CFI (Comparative Fit Index)

CFI membandingkan peningkatan kecocokan model kita dibanding baseline.

Cara pikir simpelnya:

  • CFI mendekati 1,00 → bagus
  • CFI jauh dari 1 → kurang bagus
  • χ^2 − df merepresentasikan noncentrality (sederhananya: “berapa jauh model meleset dari fit sempurna”).
  • Baseline biasanya mengasumsikan tidak ada faktor/relasi yang mendasari variabel teramati, sehingga matriks kovarians “diagonal”.


3. Arti huruf b dan m pada rumus CFI/TLI

Cara pikirnya:

b = baseline model (model pembanding terjelek)

m = maintained/user model (model kita)

Jadi kalau kita lihat rumus CFI/TLI, huruf itu cuma penanda “yang mana baseline, yang mana model kita”.


RMSEA (Root Mean Square Error of Approximation)

- Kenapa disebut absolute fit index?

Karena RMSEA:

tidak membandingkan dengan baseline model,

langsung mengukur “seberapa jauh dari perfect fit”.

- Nilai ideal

RMSEA = 0 → perfect fit (cocok sempurna)

makin besar RMSEA → makin tidak cocok

- Kaitan dengan χ^2 

Aturan praktis yang sering dipakai:

RMSEA ≤ 0,05 → close fit (bagus)

0,05–0,08 → cukup

0,08–0,10 → kurang

≥ 0,10 → jelek


Dua hal khas RMSEA: CI 90% dan uji close-fit/ not-close-fit/ poor-fit

1. 90% Confidence Interval (CI)

RMSEA dari sampel adalah estimasi, jadi diberi rentang batas bawah dan atas:

  • CI sempit → estimasi lebih presisi
  • CI lebar → kita lebih sulit yakin “fit sebenarnya” dekat yang mana


2. Tiga uji hipotesis

- Close-fit hypothesis (uji satu arah)

Kita ingin mempertahankan H0 (p-value besar) → artinya model cukup dekat dengan data (close fit).

- Not-close-fit hypothesis

Kita ingin menolak H0 → artinya model bukan “tidak close”, jadi lebih meyakinkan bahwa fit cukup dekat.

- Poor-fit hypothesis

Kita ingin menolak H0 → artinya model bukan fit buruk.

Intinya:

Bagus kalau: close-fit “oke”, poor-fit “ditolak”.


This entry was posted in

3/02/2026

Lavaan untuk SEM

Apa itu lavaan?

Lavaan adalah paket di bahasa pemrograman R untuk membuat model statistik yang hubungannya bisa kompleks.

Bayangkan kamu ingin menjawab pertanyaan seperti:

  • “Apakah rasa suka (enjoy) berpengaruh ke nilai matematika (math)?”
  • “Apakah jenis kelamin (girl) memengaruhi enjoy, lalu akhirnya memengaruhi nilai math?”

Nah, lavaan membantu kita:

  • menulis modelnya (seperti menggambar peta hubungan)
  • menghitung angkanya dari data
  • menampilkan hasil dan mengecek apakah modelnya cocok


Data itu bentuknya bagaimana?

lavaan bisa memakai data dari banyak sumber (misalnya .csv, Excel, .Rdata).

lavaan bisa bekerja dengan:

  • data mentah (data frame/matrix)
  • matriks kovarians + vektor mean + ukuran sampel


Alur kerja lavaan: 3 langkah utama

- Langkah 1 — Model specification (menuliskan model)

Kita menuliskan “rumus hubungan” antar variabel.

- Langkah 2 — Model fitting (menghitung model dari data)

Pakai fungsi seperti sem().

- Langkah 3 — Summary & outputs (melihat hasil)

Pakai summary() dan fungsi output lain.

Contoh kerangka:

library(lavaan)

setwd("...")      # arah folder kerja

load("obsvar.Rdata")

# Step 1: model

m1 <- '

  lnmath ~ enjoy

  enjoy  ~ gir1

'

# Step 2: fit

fit_m1 <- sem(m1, data = obsvar)

# Step 3: output

summary(fit_m1)


Bahasa/ Simbol penting di lavaan

Ada 4 tipe formula:

1. =~ (mendefinisikan variabel laten)

Variabel laten = sesuatu yang tidak terlihat langsung, tapi “diukur” lewat beberapa indikator.

Contoh (ilustrasi umum):

Motivasi =~ item1 + item2 + item3

Artinya: “Motivasi” diukur lewat item1–item3.


2. ~ (regresi / arah pengaruh)

Bentuk umum:

Artinya: Y diprediksi oleh X1 dan X2

Contoh:

  • lnmath ~ enjoy → nilai log-math dipengaruhi enjoy
  • enjoy ~ gir1 → enjoy dipengaruhi gender (misal gir1=1 perempuan)


3. ~~ ((ko)varian / residual covariance)

Dipakai untuk:

  • varians: X ~~ X
  • kovarians: X ~~ Y

Ini berguna kalau dua variabel punya hubungan “bersama” yang tidak dimodelkan sebagai panah sebab-akibat.


4. ~1 (intercept)

Intercept = nilai rata-rata dasar ketika prediktor bernilai 0.


Contoh 1: model jalur sederhana (dua regresi)

Model:

lnmath ~ enjoy

enjoy ~ gir1

Makna konsepnya:

enjoy dipengaruhi oleh girl

lnmath (log dari math) dipengaruhi oleh enjoy

Jadi gender girl bisa berpengaruh ke lnmath secara tidak langsung lewat enjoy (meski di contoh ini belum dihitung sebagai “indirect effect” secara eksplisit).


1. Membaca output summary(fit)

- Informasi estimasi

  • Estimator: ML (Maximum Likelihood) → metode umum untuk mengestimasi parameter.
  • Number of observations → jumlah data yang dipakai.

- Parameter Estimates (angka koefisien)

Untuk tiap panah regresi ada:

  • Estimate: besar pengaruh
  • Std.Err: ketidakpastian (standar error)
  • z-value dan p-value: apakah pengaruh “cukup kuat” (secara statistik)

Dari contoh (intinya):

lnmath ~ enjoy estimate positif → enjoy naik → lnmath cenderung naik.

enjoy ~ girl p-value besar → pengaruh gender ke enjoy tidak meyakinkan pada contoh tersebut.

- Variances (residual variances)

Misal .lnmath = variasi lnmath yang belum dijelaskan prediktor dalam model.


2. Konsep “kecocokan model”: Chi-square, df, p-value

Di output ada Model Test (Chi-square):

  • Model SEM “memprediksi” struktur kovarians tertentu.
  • Uji chi-square mengecek: apakah prediksi model beda jauh dari data?

Secara sederhana:

  • p kecil → ada perbedaan yang terdeteksi (model kurang pas)
  • p besar → model tidak terbukti berbeda dari data (model cukup pas)


3. Konsep “S vs Σ hat”: data nyata vs prediksi model

SEM sangat terkait dengan kovarians.

- Kovarians yang benar-benar ada di data: S

Dari contoh:

- Kovarians yang “dipaksakan” oleh model: Σ hat

Dari contoh:

Kalau model bagus, S dan Σ hat harus mirip.


4. Residual (selisih data vs model)

Residual di sini artinya: selisih antara yang terjadi di data dan yang diprediksi model.

Residual kovarians (raw residual) = 

Bisa 2 cara:

- Hitung sendiri

- Pakai fungsi lavaan

Makna tipe residual:

  • raw: selisih asli
  • normalized/ standardized: selisih yang sudah diskalakan agar mudah dibandingkan (mirip ide “berapa besar kesalahan relatif terhadap skala/variansnya”)

Cara memahami cepat:

  • Residual kecil (dekat 0) → model lumayan pas
  • Residual besar → ada hubungan di data yang belum ditangkap model


5. Koefisien terstandar (standardized coefficients)

Kenapa distandarkan?

Karena kalau skala variabel beda (misal math 0–100, enjoy 1–5), membandingkan pengaruh jadi susah.

Solusi: koefisien standar (dalam satuan SD).

Interpretasi yang mudah:

est.std = 0.143 (contoh untuk lnmath ~ enjoy) artinya:

jika enjoy naik 1 standar deviasi, maka lnmath naik sekitar 0.143 standar deviasi.


6. Hasil Fit measures


Contoh 2: Plain Vanilla Regression

Model:

Di lavaan:

Kenapa df = 0 di contoh?

Untuk regresi tunggal yang “jenuh” terhadap kovarians yang dipakai, kadang derajat bebas bisa 0 (secara konsep: model tidak memberi batasan tambahan untuk diuji di level kovarians tertentu). Yang penting: koefisien regresinya tetap bisa ditaksir dan diinterpretasi.

Cara baca hasilnya:

  • Koefisien enjoy positif → kalau enjoy naik, prediksi math cenderung naik.
  • Koefisien gir1 negatif → kalau gir1=1 (misal perempuan), prediksi math cenderung lebih rendah dibanding acuan (tergantung pengkodean).
  • Ada juga Variance .math → itu “sisa variasi” math yang belum dijelaskan model.


Indirect effect (pengaruh tidak langsung / mediasi)

Ini konsep SEM yang sangat sering dipakai.

Struktur mediasi (dari contoh): x → y → z

Ada:

  • Direct effect: x → z
  • Indirect effect: x → y → z (melewati mediator)

Contoh:

Penjelasan:

  • lang memengaruhi enjoy
  • enjoy memengaruhi lnmath
  • lang bisa memengaruhi lnmath secara tidak langsung lewat enjoy.

Cara lavaan menulisnya:

Cara baca label::

- a: Ada pengaruh langsung dan tidak langsung (a * lang)

- b: pengaruh enjoy -> lnmath (b * enjoy)

- c: pengaruh langsung (direct) lang -> lnmath (c * lang)

- ab = pengaruh tidak langsung/ indirect (hasil kali a × b)

- Total: total pengaruh langsung + tidak langsung (c + ab)

Hasilnya:


Bootstrapping (kenapa dipakai untuk indirect effect?)

Karena indirect effect itu perkalian (a*b), dan “uji signifikansinya” tidak sesederhana uji biasa.

Bootstrapping = cara “mengundi ulang” data berkali-kali (sampling dengan pengembalian) untuk memperkirakan:

  • standar error,
  • confidence interval (rentang nilai yang masuk akal).

Bootstrapping:

  • mengambil sampel ulang dari data (dengan pengembalian) berkali-kali
  • hitung ab setiap kali
  • dari sebaran itu dapat SE dan confidence interval yang lebih masuk akal

Di output ada di (lihat hasil indirect effect):

  • “Number of requested bootstrap draws: 1000”
  • “successful: 999”


Menguji “parameter equality” (apakah dua pengaruh sama?)

Misal ada pertanyaan:

“Apakah pengaruh enjoy -> lnmath sama dengan pengaruh lang -> lnmath?”

Ada 2 cara yang dilakukan:

- Cara 1 — Model bersarang (nested models) + beda chi-square (chi-square difference)

Caranya: buat model yang memaksa dua koefisien sama (pakai label yang sama, misal sama-sama c), lalu lihat apakah model jadi jauh lebih buruk.

Lalu bandingkan dengan model tanpa paksaan (model “full”).

Jika fit memburuk signifikan → paksaan “harus sama” tidak cocok.- 

Cara 2 — Wald test

Langsung menguji kendala pada model:

Interpretasi:

p kecil → bukti bahwa b dan c berbeda.


Menguji koefisien sama dengan nilai tertentu (misal b=−0.10)

Contoh, pada Wald test untuk memeriksa apakah koefisien tertentu sama dengan angka yang kita tentukan:

Dan juga cara “mematok” koefisien saat menulis model, misalnya:

lnmath ~ -.10*enjoy

Kalau dipatok, model jadi lebih ketat → bisa diuji dengan chi-square/df.


Membuat gambar jalur (path diagram) dengan semPlot

semPlot digunakan untuk menggambar “peta panah” hubungan variabel (biar visual dan mudah dipahami).

Contoh:

library(semPlot)

semPaths(fit_m4, title = FALSE)

Ini membantu membaca model seperti peta: mana yang memengaruhi mana, seberapa besar koefisien, dll.


This entry was posted in

Alur path analysis

Apa itu path analysis?

Path analysis (analisis jalur) adalah metode statistik untuk menjelaskan hubungan sebab–akibat (atau “dugaan pengaruh”) antara beberapa hal sekaligus, memakai diagram panah.

Bayangkan kamu ingin menjawab:

  • “Apakah olahraga membuat orang lebih jarang sakit?”
  • Tapi mungkin pengaruhnya tidak langsung, melainkan lewat perantara seperti olahraga → kebugaran meningkat → sakit menurun

Jadi path analysis membantu memetakan: pengaruh langsung dan pengaruh tidak langsung.

Panah X → Y artinya: X memprediksi/mempengaruhi Y (dalam kerangka model).

Kita bisa punya banyak panah sekaligus, jadi kita bisa membedakan:

  • pengaruh langsung (direct effect): X → Y
  • pengaruh tidak langsung (indirect effect): X → M → Y (melewati variabel perantara/mediator M)

Path analysis biasanya dipakai ketika semua variabelnya terukur langsung (bukan “konstruk laten” dengan indikator-indikator).


Alur kerja analisis (mengikuti Kline)

Urutan umum:

  • Specify model → tentukan model/diagram panah (hipotesis hubungan)
  • Identify model → pastikan model “bisa dihitung/diestimasi”
  • Select measures/collect data → tentukan alat ukur & kumpulkan data
  • Fit model → cocokkan model ke data (hitung angka pengaruhnya)
  • Evaluate fit & revise → cek apakah model cocok dengan data; revisi jika perlu
  • Interpret results → maknai hasilnya (ceritakan kesimpulannya)


Contoh:

1. Konsep “Model”: variabel dan arah panah

Dari contoh ada 5 variabel:

  • Exercise (olahraga)
  • Hardiness (ketangguhan/ketahanan mental)
  • Fitness (kebugaran)
  • Stress (stres)
  • Illness (sakit/keluhan)

Intinya, model ini mencoba menjelaskan Illness (sakit) dengan mempertimbangkan jalur dari Exercise dan Hardiness melalui variabel lain (Fitness, Stress).

- Cara membaca panah (konsep koefisien jalur)

Biasanya tiap panah punya koefisien (sering ditulis β atau simbol lain) yang berarti:

  • jika X naik 1 satuan (atau 1 standar deviasi jika distandardisasi)
  • maka Y berubah sebesar koefisien itu,
  • dengan variabel prediktor lain dikontrol sesuai struktur model.


2. Data yang dipakai (apa yang diukur)

Yang diukur: Exercise, Hardiness, Fitness, Stress, Illness

Jumlah responden: N = 373 mahasiswa

Artinya: ada 373 orang, masing-masing punya skor olahraga, ketangguhan, kebugaran, stres, dan sakit.


3. Hipotesis

Tidak ada jalur langsung:

  • Exercise → Illness (tidak dimasukkan)
  • Hardiness → Illness (tidak dimasukkan)

Pengaruh Exercise dan Hardiness ke Illness harus lewat mediator, misalnya:

  • Exercise → Fitness → Illness
  • Exercise → Stress → Illness
  • Hardiness → Stress → Illness


4. Pengaruh langsung vs tidak langsung

- Pengaruh langsung

Kalau ada panah: 

X → Y maka X punya pengaruh langsung ke Y.

- Pengaruh tidak langsung (lewat perantara)

Kalau jalurnya:

X → M → Y maka X memengaruhi Y lewat M.

Biasanya (secara konsep) besarnya pengaruh tidak langsung mengikuti ide: pengaruh (X → M) “dikombinasikan” dengan pengaruh (M → Y).


5. Model Identification

Apakah parameter yang kita minta bisa ditentukan dari informasi data?

- Berapa banyak informasi dari data?

Dari contoh ada 5 variabel terukur, kita bisa membentuk matriks kovarians/ korelasi 5×5.

Jumlah elemen unik (karena simetris) adalah:

Artinya: ada 15 informasi yang bisa dipakai untuk menaksir parameter.

- Berapa banyak parameter yang mau diestimasi?

Koefisien jalur dan varians/ kovarians error yang relevan, lalu menyimpulkan jumlahnya:

t = 10 parameter

- Aturan t (t-rule)

Syarat perlu (umum dipakai): jumlah parameter t harus lebih kecil atau sama dari jumlah informasi data.

Dari contoh:

10 < 15 → t-rule terpenuhi

Catatan: t-rule biasanya syarat perlu, bukan jaminan mutlak; karena kita akan lanjut ke “recursive rule”.

- Recursive rule

Model recursive (secara konsep) berarti:

  • panahnya satu arah dan tidak membentuk lingkaran sebab-akibat (tidak ada feedback loop seperti A → B dan B → A dalam satu waktu),
  • dan biasanya error antar variabel endogen tidak saling berkorelasi (tergantung spesifikasi).

Akibatnya, model lebih “aman” untuk diestimasi dan cenderung identified (parameter dapat ditaksir unik).


6. Select measures/ collect data

Dari contoh, langkah ini “kita lewatkan” karena datanya sudah tersedia. Secara konsep, ini adalah tahap:

  • memilih instrumen ukur yang valid,
  • mengumpulkan data,
  • memastikan skala, reliabilitas, dsb.


7. Fit the model to data

Kita mungkin stop disini karena tes model fit akan dijelaskan di post selanjutnya. Disini kita akan menggunakan lavaan.

Lavaan adalah paket di R untuk SEM/ path analysis. Di tahap “fit model”, software akan:

  • mengestimasi koefisien jalur (mis. a, b, c),
  • mengestimasi varians residual,
  • biasanya memberi ukuran kecocokan model (fit) seperti χ^2, CFI, RMSEA, SRMR, dll.


Referensi

Kline, R. B. (2016). Principles and practice of structural equation modeling (4th ed.). New York: Guilford Press.


This entry was posted in

Evaluasi model di SEM: residual

 Populasi dan sampel

- Populasi (ideal): kalau model benar, maka matriks kovarians yang “benar” akan sama persis dengan yang diprediksi model.

Ditulis: Σ = Σ(θ)

Maka residual populasi: Σ − Σ(θ) = 0

- Sampel (data nyata): kita tidak punya Σ populasi, yang kita punya adalah:

S = matriks kovarians hasil data sampel (observed)

Σ hat = matriks kovarians yang diimplikasikan model memakai parameter hasil estimasi (θ hat)

Karena itu residual:


Konsep inti: Residual itu “selisih” observed vs model

S = “hubungan yang terlihat di data” (misalnya kovarians/korelasi yang benar-benar terjadi)

Σ hat = “hubungan yang diprediksi/diharapkan oleh model”

R = “seberapa meleset model” pada tiap bagian (tiap varians/kovarians)

Poin penting:

Kalau ada komponen residual ≠ 0 (di populasi), berarti spesifikasi model salah. Residual hampir selalu tidak nol (karena data terbatas & acak), jadi kita lihat besar-kecilnya residual.


Makna tanda residual: positif vs negatif

- Residual positif (R > 0)

Artinya: kovarians yang terlihat di data lebih besar daripada yang diprediksi model (model underpredicts covariance/ model “kekecilan” memprediksi hubungan).

- Residual negatif (R < 0)

Artinya: kovarians data lebih kecil daripada yang diprediksi model (model overpredicts covariance atau model “kebesaran” memprediksi hubungan).

Bayangkan “hubungan” itu seperti “seberapa sering dua hal naik-turun bareng”:

  • Kalau residual positif, data bilang “barengnya kuat”, model bilang “nggak sekuat itu” → model kekecilan.
  • Kalau residual negatif, model bilang “barengnya kuat”, data bilang “nggak sekuat itu” → model kebesaran.


Kenapa residual dipakai untuk menilai fit (kecocokan model)?

Karena residual itu seperti “jejak kesalahan” model:

  • Kalau banyak residual kecil-kecil → model cukup cocok.
  • Kalau ada residual besar, misal pada pasangan variabel A dan B maka model kurang tepat menjelaskan hubungan A – B (mungkin ada hubungan yang seharusnya dimasukkan, atau asumsi model keliru)


Kenapa perlu residual “standardized” (distandardisasi)?

Kalau residual belum distandardisasi, perbandingan antar-angka bisa tidak adil (karena skala/ketidakpastian tiap elemen beda).

- Normalized residual

Intinya: residual dibagi ukuran “simpangan baku”/ketidakpastian tertentu → jadi lebih sebanding antar-elemen.

- Standardized residual

Tujuannya mirip “z-score”: membuat residual kira-kira mengikuti normal standar sehingga lebih mudah menilai mana yang “besar tidak wajar”.

This entry was posted in

Fungsi estimation dan fitting pada SEM

Apa itu “model” dan “parameter”?

Kita punya model (hubungan yang kita duga) misalnya bentuk umum: suatu variabel hasil y dipengaruhi variabel lain x, plus “error” (gangguan).

Angka-angka di model yang belum kita tahu disebut parameter (contoh: koefisien pengaruh, varians error, kovarians antar faktor, dll).

Angka yang ingin kita cari itu disebut parameter. Intinya:

  • Kita punya data nyata (hasil pengukuran)
  • Kita punya model dugaan
  • Tugas kita adalah mencari parameter supaya model “paling cocok” dengan data


Kenapa kita butuh “estimasi”?

Di dunia nyata, kita tidak tahu nilai parameter sebenarnya (nilai “populasi”).

Kita hanya punya sampel (data dari sebagian orang/siswa).

Jadi kita melakukan estimasi = menebak parameter dengan cara yang masuk akal berdasarkan data.


Matriks kovarians sampel S

Materi ini banyak memakai ringkasan data bernama matriks kovarians sampel, disingkat S.

Anggap S itu seperti “tabel ringkasan hubungan” antar variabel:

  • Ukuran: (p+q)×(p+q) 
  • Diagonal: varians (seberapa menyebar suatu variabel).
  • Diluar diagonal: kovarians (seberapa dua variabel bergerak bersama).

Sifat S:

  • bentuknya kotak, simetris
  • isinya bisa berubah karena: kebetulan sampel (sampling fluctuation), hubungan tidak linear, outlier (data ekstrem), data yang “sangat berpengaruh” (influential).


Matriks kovarians “hasil model” Σ(θ)

Kalau S adalah ringkasan dari data asli, maka:

Σ(θ) adalah ringkasan yang diprediksi oleh model, tergantung parameter θ.

Jadi ada dua “ringkasan”:

  • S = yang kita lihat dari data
  • Σ(θ) = yang dihasilkan model (kalau parameternya θ)


Tujuan utama estimasi: membuat Σ(θ) sedekat mungkin dengan S (residual matrix)

Kita ingin selisihnya kecil:

residual = S − Σ(θ)

Kalau model cocok, residu ini “kecil” (mendekati nol).

Kuncinya:

Estimasi itu intinya meminimalkan “jarak” antara S dan Σ(θ).

Masalahnya: “jarak” itu bisa dihitung dengan beberapa cara. Cara menghitung jarak inilah yang disebut fitting function.


Apa itu “fitting function”?

Fitting function = rumus untuk mengukur seberapa tidak cocok model dengan data.

Kalau nilai fitting function makin kecil, berarti: model makin cocok (karena Σ(θ) makin dekat ke S).

Tiga fitting function:

  • Maximum Likelihood (ML)
  • Unweighted Least Squares (ULS)
  • Generalized Least Squares (GLS)


1. Maximum Likelihood (ML)

- Ide utama

ML itu memilih parameter yang membuat data kita paling “mungkin terjadi” jika model benar.

Analogi:

  • kita menebak aturan permainan
  • ML memilih aturan yang membuat hasil permainan yang kamu lihat jadi paling masuk akal

- Hal penting yang diasumsikan ML

  • S dan Σ(θ) harus positive definite (matriksnya “bagus” sehingga bisa dihitung invers (^−1) dan log determinan (log∣⋅∣))
  • Variabel teramati biasanya diasumsikan normal multivariat (MVN)

Kenapa penting?

  • Karena rumus ML butuh invers (Σ(θ)^−1) dan log determinan (log∣Σ(θ)∣) 
  • Kalau matriks “bermasalah”, bisa muncul peringatan seperti log(0) atau tidak bisa diinvers

- Kelebihan ML

  • Unbiased & konsisten (asymptotically): sampel makin besar → estimasi mendekati nilai benar
  • Efisien (varians estimasi kecil dibanding metode lain, saat asumsi terpenuhi)
  • Mendukung uji statistik (uji signifikansi, uji kecocokan model/ overall fit untuk model yang over-identified)
  • Scale invariant: ganti satuan (misal USD ke EUR) tidak mengubah inti hasil (hanya skala)
  • Scale free: transformasi linear pada prediktor tidak “merusak” makna estimasi (ada hubungan transformasi yang jelas)


2. Unweighted Least Squares (ULS)

- Ide utama ULS

ULS meminimalkan jumlah kuadrat dari setiap elemen residual S−Σ(θ).

Jika “unweighted” artinya: semua elemen residual dianggap sama penting (tidak ada pembobotan khusus).

Ini mirip OLS di regresi: cari parameter yang membuat selisih prediksi vs data sekecil mungkin (dengan kuadrat).

Analogi:

Kamu menilai ketidakcocokan dengan menjumlahkan semua “kesalahan”, semuanya dihitung setara.

- Kelebihan & kekurangan ULS

Kelebihan:

Tidak bergantung kuat pada asumsi distribusi normal.

Kekurangan:

  • kurang efisien (biasanya kalah bagus dari ML/GLS saat asumsi terpenuhi)
  • tidak scale invariant dan tidak scale free
  • tidak ada paket uji signifikansi yang langsung enak dipakai seperti ML.


3. Generalized Least Squares (GLS)

- Ide utama 

GLS = ULS tapi pakai “bobot”

GLS juga meminimalkan residual, tetapi memakai weight matrix (matriks bobot) W^−1

Intuisi penting:

  • ULS menganggap semua elemen residual punya “tingkat ketelitian” sama
  • GLS mengizinkan tiap elemen residual punya variasi/ketelitian berbeda, jadi dibobot

Analogi:

  • Kalau ada pengukuran yang kurang akurat, kamu “kurangi pengaruhnya” dengan bobot lebih kecil
  • Jika ada pengukuran yang lebih akurat, bobotnya lebih besar

- Kelebihan & kekurangan GLS (sesuai slide)

Kelebihan (saat asumsi terpenuhi):

  • konsisten, efisien
  • bisa dilakukan pengujian
  • scale invariant & scale free

Kekurangan:

  • sensitif terhadap kurtosis (data “berekor tebal”, banyak nilai ekstrem)
  • perilaku pada sampel kecil kurang pasti (menurut slide)


Ringkasan

Jika sampel besar dan variabel ~ normal multivariat serta i.i.d. → ML biasanya pilihan utama

Jika beberapa asumsi tidak terpenuhi → ULS bisa jadi alternatif

Jika ada masalah seperti varians tidak konstan/ingin pembobotan → GLS

Logika GLS ini juga jadi dasar estimator untuk data kategorikal seperti WLS / WLSMV


Estimator alternatif ketika data tidak “normal”

  • Jika data skew / kurtotic / non-normal (tapi masih lumayan kontinu/ordinal):
  • gunakan metode “robust” (contoh di lavaan: MLR, kadang MLF).
  • Jika data benar-benar kategorikal/ordinal (misal: Ya/Tidak, atau skala 1–5 yang dianggap kategori):
  • gunakan WLS / DWLS / WLSMV (weighted least squares versi robust).


Jika outcome kategorikal: konsep latent response & threshold

Kalau variabel hasil yang kita amati berupa kategori (misal: 1–5, atau Ya/Tidak), model membayangkan ada skor kontinu “tersembunyi”:

  • y^∗ = latent response variable (kontinu)
  • y (yang terlihat) = kategori yang muncul karena y^∗ melewati ambang tertentu.

Misal kategori:

  • y=1 jika ≤ τ1 (rendah)
  • ​y=2 jika τ1 < y^∗ ≤ τ2 (sedikit lebih tinggi)

​dst.

Threshold τ ini lah parameter yang ikut diestimasi.


Koefisien determinasi R^2 di SEM

Catatan:

Untuk tiap outcome yi, kita bisa hitung ukuran “seberapa banyak variasi yi dijelaskan oleh prediktor” = R^2.

Sifat R^2:

  • bisa sensitif (terutama jika angka kecil),
  • tidak selalu bagus dipakai sebagai “rata-rata kualitas model”, karena tiap outcome punya R^2 sendiri.


Koefisien terstandar (standardized coefficient)

Koefisien asli (unstandardized) sulit dibandingkan jika skala variabel beda:

Contoh:

Penjelasan:

Gender (0/1), GPA (0–4), nilai matematika (misal 0–100 atau 500/1000).

Koefisien terstandar mengubahnya ke satuan simpangan baku (SD). 

Interpretasi:

Jika X naik 1 SD, maka Y berubah berapa SD.

Rumus (dengan σ diambil dari SD yang diprediksi model):


Intercepts (konstanta) dan mean structure

Sebelumnya model hanya fokus pada kovarians (hubungan/variasi).

Kadang kita juga ingin memodelkan rata-rata.

Maka kita tambahkan: intercept (konstanta awal) untuk variabel-variabel.

Intinya: selain mencocokkan “pola hubungan”, kita juga mencocokkan “level rata-rata”.

Sampai sini, gambaran umum dari model adalah:

Kita dapat menambahkan intersep ke model kita, dan melanjutkan seperti biasa:

Contoh:





This entry was posted in
View My Stats