Implementasi Matching – Part 6

Sebelum memulai kita akan membahas ada dua pendekatan robustness checks.

Pendekatan Repeated experiment cocok digunakan jika dataset yang dimiliki cukup besar. Jumlah pengulangan biasanya 1000 kali.

Pendekatan removing 1 confounders, ini akan menghasilkan confounders list baru, kemudian lakukan proses matching. Lakukan pengulangan berdasarkan jumlah confounders yang dimiliki.

Berikut implementasi untuk kedua pendekatan diatas.

Repeated Experiment

ate = {}
i = 0

#loop 
while i < 1000:
  #sampling
  sample = df.sample(1000)

  #isolation of treat, y and confounders
  treat = sample.catholic.values
  y = sample.score_standardized.values
  confounders = sample.drop(columns = ["catholic", 
                                       "score_standardized"]).values

  #matching model
  model = CausalModel(y, treat, confounders)
  model.est_via_matching(bias_adj = True)

  #store the results
  ate[i] = model.estimates['matching']['ate']

  print(i)
  i += 1

Kemudian kita visualisasi hasil diatas agar mudah dipahami. Dari hasilnya dapat disimpulkan anak yang pergi ke sekolah katolik lebih buruk -0.13 dari standardized test score.

ate = pd.Series(ate)
print(ate.hist())
print(ate.mean())

Removing 1 Confounders

Pertama kita buat confounder lists

#new confounder list
treat = df.catholic.values
y = df.score_standardized.values
confounders = df.drop(columns = ["catholic", 
                                 "score_standardized",
                                 "number_places_lived"]).values

Kemudian lakukan matching

#Matching model
model = CausalModel(y, treat, confounders)
model.est_via_matching(bias_adj = True)
print(model.estimates)

Silakan bereksperimen dengan membuat confounder list baru dan lakukan proses matching.

Sampai disini implementasi matching menggunakan Python sudah selesai, file colab dapat diakses di Matching.ipynb.

Latihan

Melakukan matching untuk mengukur tingkat kepuasan apakah remote workers memiliki tingkat kepuasan karir yang lebih tinggi.

Data yang digunakan adalah stackoverflow.csv.

Untuk solusi dapat diakses di Matching Challenge.ipynb.

Sampai disini tutorial Matching menggunakan Python sudah selesai. Matching merupakan konsep yang simple namun cukup sulit dijelaskan. Semoga bermanfaat.

Sharing is caring: