Pendahuluan
Psmatch2 merupakan pustaka perangkat lunak statistik yang mengimplementasikan metode matching skor kecondongan (propensity score matching) untuk menyesuaikan perbedaan yang teramati sebelum perlakuan antara kelompok yang diobati dan kelompok yang tidak diobati. Status perlakuan diidentifikasi dengan depvar==1 untuk observasi yang diobati dan depvar==0 untuk observasi yang tidak diobati.
Psmatch2 terus-menerus diperbaiki dan dikembangkan. Pastikan versi yang digunakan selalu diperbarui dengan cara berikut:
. ssc install psmatch2, replace
Secara default, psmatch2 menghitung standar kesalahan perkiraan efek perlakuan secara perkiraan yang mengasumsikan observasi yang independen, bobot tetap, homoskedastisitas dari variabel hasil dalam kelompok yang diobati dan kelompok kontrol, serta varians hasil tidak bergantung pada skor kecondongan:
stata
1/N1 * Var(Y | DM=1) + ÎŁ(w_i^2; i in DM=0) / (N1)^2 * Var(Y | DM=0)
di mana N1 adalah jumlah observasi yang diobati yang dipasangkan, DM=1 menunjukkan observasi yang diobati yang dipasangkan, DM=0 menunjukkan kontrol yang dipasangkan, dan w_i adalah bobot yang diberikan pada kontrol i. Psmatch2 menyimpan perkiraan standar kesalahan dari ATT (Average Treatment Effect) dalam r(seatt) atau jika ada lebih dari satu variabel hasil, dalam r(seatt_varname).
Dengan pencocokan tetangga terdekat pada variabel X (mahal()), maka kesalahan standar analitis seperti yang dijelaskan dalam Abadie dan Imbens (2006) dihitung ketika M>0 diberikan dengan menggunakan opsi ai(M), di mana M adalah jumlah tetangga yang digunakan untuk menghitung varians kondisional (rumus (14) dalam Abadie dan Imbens, 2006).
Psmatch2 menyimpan perkiraan efek perlakuan pada yang diobati dalam r(att), sehingga memungkinkan bootstrapping dari standar kesalahan perkiraan (walaupun tidak jelas apakah bootstrap valid dalam konteks ini). Hal ini dapat dilakukan sebagai berikut:
stata
. bootstrap r(att) : psmatch2 training age gender, out(wage)
Jika efek perlakuan rata-rata yang diminta menggunakan opsi ate, perkiraannya akan dikembalikan dalam r(ate). Efek perlakuan rata-rata pada kelompok yang tidak diobati juga akan dikembalikan dalam r(atu). Dengan lebih dari satu variabel hasil, efek dikembalikan sebagai r(att_varname) dll. untuk setiap variabel hasil dan efek.
Artikel Blog Sekolah Stata di indeks Oleh Google Scholar
Akses Google ScholarLihat dokumentasi bootstrap untuk lebih banyak detail tentang bootstrapping di Stata.
Jika Anda ingin dapat mereplikasi hasil Anda, Anda harus menetapkan seed sebelum memanggil psmatch2.
Baca Juga:Â Cara menghindari bias ketika Eksplorasi Data Sakernas
Metode Matching yang Tersedia
Berikut adalah metode pencocokan yang dapat dipilih dalam psmatch2:
- Pencocokan Satu-ke-Satu (One-to-One Matching):
statapsmatch2 depvar [indepvars] [if exp] [in range], [outcome(varlist) pscore(varname) ai(integer k>1) mahalanobis(varlist) caliper(real) noreplacement descending common trim(real) odds index logit ties warnings quietly ate] - Pencocokan Tetangga k-Terdekat (k-Nearest Neighbors Matching):
statapsmatch2 depvar [indepvars] [if exp] [in range], [outcome(varlist) pscore(varname) neighbor(integer k>1) caliper(real) common trim(real) odds index logit ties warnings quietly ate] - Pencocokan Radius (Radius Matching):
statapsmatch2 depvar [indepvars] [if exp] [in range], radius caliper(real) [outcome(varlist) pscore(varname) common trim(real) odds index logit quietly ate] - Pencocokan Kernel (Kernel Matching):
statapsmatch2 depvar [indepvars] [if exp] [in range], kernel [outcome(varlist) kerneltype(kernel_type) pscore(varname) bwidth(real) mahalanobis(varlist) common trim(real) odds index logit quietly ate] - Pencocokan Regresi Linear Lokal (Local Linear Regression Matching):
statapsmatch2 depvar [indepvars] [if exp] [in range], llr outcome(varlist) [kerneltype(kernel_type) pscore(varname) bwidth(real) mahalanobis(varlist) common trim(real) odds index logit quietly ate] - Pencocokan Spline (Spline Matching):
statapsmatch2 depvar [indepvars] [if exp] [in range], spline outcome(varlist) [nknots(integer) pscore(varname) neighbor(integer) caliper(real) common trim(real) odds index logit ties warnings quietly ate] - Pencocokan Mahalanobis (Mahalanobis Matching):
statapsmatch2 depvar [if exp] [in range], mahalanobis(varlist) outcome(varlist) ai(integer) [population altvariance kernel(kernel_type) llr bwidth(real) caliper(real) w(matrix) ate]
Penggunaan Sample Weights
Sejauh ini, belum jelas dalam literatur bagaimana cara mengakomodasi bobot sampel dalam konteks pencocokan. Jika Anda tahu cara yang tepat untuk mengakomodasi bobot sampel, mohon beritahu kami. Sementara itu, berikut adalah beberapa pemikiran yang mungkin perlu Anda pertimbangkan ketika mempertanyakan diri Anda sendiri pertanyaan-pertanyaan berikut:
- Apakah saya harus menggunakan bobot saat memperkirakan skor kecondongan?
Rekomendasi saat ini tampaknya untuk mengabaikan bobot sampel, memperkirakan skor kecondongan menggunakan model logit (opsi logit), dan mencocokkan pada rasio odds (logaritma dari rasio odds) skor kecondongan (opsi odds).
- Apakah saya harus menggunakan bobot setelah melakukan pencocokan?
Ketika tertarik pada efek perlakuan pada yang diobati, bobot sampel harus merujuk pada yang diobati saja. Jadi, bobot harus diterapkan pada hasil yang diamati dan hasil yang dipasangkan (jika perlu, lebih lanjut dibatasi hanya pada yang diobati pada dukungan bersama) untuk semua yang diobati.
Baca Juga:Eksplorasi Data Sakernas Menggunakan Library Tabout Stata
Pencocokan dalam Strata
Berikut adalah contoh kode yang menunjukkan bagaimana mencocokkan dalam sel-sel yang tepat dan kemudian menghitung efek rata-rata untuk seluruh populasi:
stata
g att = .
egen g = group(groupvars)
levels g, local(gr)
foreach j of local gr {
psmatch2 treatvar varlist if g==`j', out(outvar)
replace att = r(att) if g==`j'
}
sum att
Ringkasan
Psmatch2 adalah alat yang berguna untuk menyesuaikan perbedaan yang teramati sebelum perlakuan antara kelompok yang diobati dan kelompok yang tidak diobati menggunakan metode matching skor kecondongan. Ini dapat digunakan dalam berbagai metode pencocokan, seperti pencocokan satu-ke-satu, pencocokan tetangga k-terdekat, pencocokan radius, pencocokan kernel, pencocokan regresi linear lokal, pencocokan spline, dan pencocokan Mahalanobis. Penting untuk memahami cara penggunaan bobot sampel dalam konteks pencocokan dan memastikan untuk mengikuti panduan pembaruan psmatch2 untuk memastikan perangkat lunak tetap mutakhir.
Pertanyaan yang Sering Diajukan (FAQ)
- Apakah psmatch2 bekerja dengan variabel faktor?
Ya, psmatch2 dapat bekerja dengan variabel faktor. Variabel faktor dapat dimasukkan dalam indepvars dan mahalanobis(varlist) (jika menggunakan pencocokan Mahalanobis).
- Apakah psmatch2 menghitung standar kesalahan perkiraan efek perlakuan?
Ya, psmatch2 menghitung standar kesalahan perkiraan efek perlakuan dan dapat melakukan bootstrapping untuk mendapatkan perkiraan standar kesalahan yang akurat.
- Apakah psmatch2 dapat digunakan untuk lebih dari satu variabel hasil?
Ya, psmatch2 dapat digunakan untuk lebih dari satu variabel hasil. Dalam kasus ini, efek perlakuan akan dikembalikan untuk setiap variabel hasil.
- Bagaimana cara mencocokkan dalam sel-sel yang tepat (exact cells) dan menghitung efek rata-rata untuk seluruh populasi?
Anda dapat menggunakan kode yang ditunjukkan dalam bagian “Pencocokan dalam Strata” di atas untuk mencocokkan dalam sel-sel yang tepat dan menghitung efek rata-rata untuk seluruh populasi.
- Apakah psmatch2 dapat mengakomodasi bobot sampel?
Penggunaan bobot sampel dalam konteks pencocokan belum sepenuhnya dipahami, dan psmatch2 belum secara khusus mengakomodasi bobot sampel. Oleh karena itu, disarankan untuk mengabaikan bobot sampel saat menggunakan psmatch2.
