Seorang peneliti memegang data 200 perusahaan yang tercatat di Bursa Efek Indonesia, diikuti selama sepuluh tahun: dua ribu baris perusahaan-tahun. Ia jalankan regresi panel, koefisiennya keluar besar, bintang signifikansinya tiga, dan ia hampir saja menuliskannya ke draf. Tetapi ada satu pertanyaan yang menentukan apakah angka “signifikan” itu nyata atau ilusi.
Pertanyaannya begini. Perusahaan yang sama tahun ini dan tahun depan bukan dua hal yang lepas satu sama lain. Gaya manajemennya menempel, budaya kerjanya menempel, strategi dan kualitas tata kelolanya menempel. Maka kalau model meleset memprediksi perusahaan itu tahun ini, ia cenderung meleset ke arah yang sama tahun depan. Meleset yang searah dan berulang inilah yang membuat komputer mengira datanya memuat lebih banyak informasi bebas daripada yang sebenarnya ada — sehingga galat baku yang dilaporkan terlalu kecil, dan bintang signifikansinya menipu.
Materi ini menambal kebocoran itu. Untuk data panel, mengelompokkan galat per unit (disebut clustering, mengelompokkan) bukan opsi tambahan, melainkan praktik baku. Kita bahas kenapa galat baku biasa terlalu kecil, cara menghitung galat baku terklaster dari nol, dan kapan memakai versi satu-arah, dua-arah, atau Driscoll-Kraay.
Intuisi: Informasi yang Tidak Sebanyak Kelihatannya
Bayangkan Anda ingin menaksir tinggi rata-rata orang dewasa di sebuah kota. Anda boleh mengukur 200 orang berbeda yang dipilih acak — itu 200 keping informasi bebas. Atau Anda mengukur 20 orang, tetapi masing-masing Anda ukur 10 kali. Hasilnya tetap 200 angka, tetapi sepuluh pengukuran pada orang yang sama nyaris kembar; mereka tidak menambah banyak informasi baru. Secara efektif Anda hanya punya sekitar 20 keping informasi, bukan 200.
Data panel persis seperti skenario kedua. Dua ribu baris perusahaan-tahun bukan dua ribu keping informasi bebas, karena sepuluh pengamatan pada satu perusahaan saling mirip — digerakkan oleh karakter perusahaan yang sama. Galat baku biasa menghitung seolah-olah semua dua ribu baris itu bebas, jadi ia membagi ketidakpastian dengan akar dari angka yang terlalu besar. Akibatnya galat baku menyusut terlalu jauh.
Mengelompokkan galat per unit memperbaiki ini. Ia berkata: “perlakukan tiap perusahaan, bukan tiap baris, sebagai satu keping informasi yang bebas.” Galat baku membesar, mencerminkan ketidakpastian yang sesungguhnya.
Dua Sumber Korelasi Galat di Panel
Data panel mengikuti unit yang sama sepanjang waktu, dan itu membuka dua arah galat bisa saling berkorelasi:
| Sumber korelasi | Contoh konkret | Penjahit yang tepat |
|---|---|---|
| Dalam unit (korelasi serial) | Galat perusahaan A tahun ini berkorelasi dengan galat tahun lalu (manajemen, budaya yang menempel) | Klaster pada unit |
| Dalam waktu (saling-bergantung lintas unit) | Kejutan makro tahun X (krisis, kenaikan suku bunga) menggeser semua perusahaan serentak | Klaster pada waktu, atau dua-arah |
Bertrand, Duflo, dan Mullainathan (2004) menunjukkan dengan tegas: mengabaikan korelasi serial dalam panel — terutama pada studi beda-dalam-beda (difference-in-differences) — bisa membuat galat baku jauh terlalu kecil dan menolak hipotesis nol yang benar jauh lebih sering dari semestinya. Paper inilah yang mengubah klaster dari “boleh” menjadi “wajib” dalam riset terapan modern.
Apa Itu Galat, dan Kenapa Tandanya Searah
Sebelum ke rumus, kunci dari segalanya adalah galat (atau residual, sisa). Untuk satu pengamatan pada unit $i$ di waktu $t$:
$$e_{it} = y_{it} - \hat{y}_{it}$$Bacalah polos: galat = nilai aktual − nilai prediksi model. Kalau perusahaan A tahun ke-2 sebenarnya mencatat $y = 21{,}5$ padahal garis model memprediksi $\hat{y} = 17{,}8$, maka galatnya $e = 21{,}5 - 17{,}8 = +3{,}7$ (model meremehkan; titik di atas garis). Galat positif berarti model menebak terlalu rendah, galat negatif berarti terlalu tinggi.
Inti persoalan panel: galat satu unit cenderung bertanda sama sepanjang waktu. Kalau perusahaan B punya karakter yang membuat model selalu menebaknya terlalu tinggi, maka galat B tahun 1, 2, 3, dan seterusnya cenderung sama-sama negatif. Tanda yang searah dan berulang itulah definisi konkret dari “galat dalam unit berkorelasi” — dan justru itu yang dibutakan oleh galat baku biasa.
Satu-Arah: Klaster pada Unit
Pilihan paling lazim untuk panel: kelompokkan galat per unit (perusahaan, individu, provinsi). Ini membiarkan galat berkorelasi bebas lintas waktu di dalam unit yang sama, tanpa memaksakan bentuk korelasi tertentu.
Rumus galat baku terklaster memakai bentuk sandwich (roti lapis): dua lapis “roti” yang sama mengapit satu lapis “isi” di tengah. Untuk klaster pada unit:
$$\widehat{\mathrm{Var}}(\hat{\beta}) = \underbrace{(X'X)^{-1}}_{\text{roti}} \; \underbrace{\Big[\, c \sum_{g=1}^{G} X_g' e_g \, e_g' X_g \,\Big]}_{\text{isi}} \; \underbrace{(X'X)^{-1}}_{\text{roti}}$$Penjelasan tiap lambang:
- $\hat{\beta}$ = koefisien yang ditaksir (kemiringan yang kita pedulikan); $\widehat{\mathrm{Var}}(\hat{\beta})$ = taksiran ragamnya — akar kuadratnya adalah galat baku.
- $G$ = banyak klaster (banyak unit). Kalau ada 200 perusahaan, $G = 200$.
- $\sum_{g=1}^{G}$ artinya “jumlahkan untuk semua klaster, dari yang ke-1 sampai ke-$G$”. Perhatikan: penjumlahan per klaster, bukan per baris — di sinilah panel diperlakukan beda.
- $X_g$ = potongan data untuk klaster $g$ saja; $e_g$ = galat-galat pada klaster $g$ saja.
- $X_g' e_g$ = skor klaster: satu angka rangkuman per klaster, hasil mengalikan tiap nilai $x$ dengan galatnya lalu menjumlahkannya di dalam klaster itu. Inilah jantung rumusnya (kita hitung tangan di bawah).
- $c$ = faktor koreksi sampel-kecil (dijelaskan tepat di bawah).
- $(X'X)^{-1}$ = lapis roti yang sama dengan yang dipakai galat baku biasa.
Kenapa ini membesarkan galat baku? Karena skor $X_g' e_g$ dihitung dengan menjumlahkan dulu di dalam klaster. Saat galat satu unit bertanda searah, sumbangannya tidak saling membatalkan; ia menumpuk menjadi skor yang besar, lalu dikuadratkan ($X_g' e_g \, e_g' X_g$). Galat baku biasa, sebaliknya, mengkuadratkan tiap galat sendiri-sendiri sehingga melewatkan penumpukan ini — itu sebabnya ia terlalu kecil.
Faktor koreksi yang dipakai perangkat lunak (Stata, statsmodels) adalah:
dengan $N$ = total baris dan $K$ = banyak parameter (termasuk konstanta). Faktor ini sedikit memperbesar hasil untuk mengoreksi bias saat klaster tak terlalu banyak; pengaruhnya mengecil saat $G$ besar.
Contoh Hitung dari Nol
Mari hitung galat baku terklaster pada panel mungil, langkah demi langkah, supaya jelas dari mana angkanya datang. Empat perusahaan (A, B, C, D), tiga tahun, jadi $N = 12$ baris dan $G = 4$ klaster. Variabel bebas $x$ (misalnya rasio leverage) dan variabel terikat $y$ (misalnya imbal hasil), keduanya dibulatkan agar enak dihitung tangan.
Langkah 1 — data mentah. Kisi nilai $x$ dan $y$ per perusahaan-tahun:
| Unit | $x$ ($t_1$) | $x$ ($t_2$) | $x$ ($t_3$) | $y$ ($t_1$) | $y$ ($t_2$) | $y$ ($t_3$) |
|---|---|---|---|---|---|---|
| A | 1 | 2 | 3 | 19,5 | 20,5 | 23,0 |
| B | 3 | 4 | 5 | 8,5 | 9,5 | 12,0 |
| C | 5 | 6 | 7 | 26,5 | 27,5 | 30,0 |
| D | 7 | 8 | 9 | 19,5 | 20,5 | 23,0 |
Rata-rata $\bar{x} = 5{,}0$ dan $\bar{y} = 20{,}0$. Dengan menjalankan kuadrat terkecil biasa atas seluruh 12 baris (perinciannya sama seperti di regresi linear sederhana), garisnya:
$$\hat{y} = 15{,}0 + 1{,}0\,x$$Langkah 2 — galat tiap baris. Kurangkan prediksi dari nilai aktual, $e = y - \hat{y}$. Yang penting: perhatikan tandanya per perusahaan.
| Unit | $e$ ($t_1$) | $e$ ($t_2$) | $e$ ($t_3$) | Pola tanda |
|---|---|---|---|---|
| A | +3,5 | +3,5 | +5,0 | semua positif |
| B | −9,5 | −9,5 | −8,0 | semua negatif |
| C | +6,5 | +6,5 | +8,0 | semua positif |
| D | −2,5 | −2,5 | −1,0 | semua negatif |
Inilah jejak korelasi dalam unit: galat tiap perusahaan bertanda sama sepanjang tiga tahun. Perusahaan B konsisten ditebak terlalu tinggi, perusahaan C konsisten ditebak terlalu rendah. Galat baku biasa buta terhadap pola ini.
Langkah 3 — galat baku biasa (pembanding). Pertama ragam galat, $\hat{\sigma}^2 = \mathrm{SSE}/(N-K)$. Jumlah kuadrat semua galat $\mathrm{SSE} = 456{,}0$, dengan $N-K = 12 - 2 = 10$, jadi $\hat{\sigma}^2 = 45{,}6$. Lapis $(X'X)^{-1}$ untuk kemiringan bernilai $1/S_{xx} = 1/68{,}0$ (di sini $S_{xx} = \sum(x_i - \bar{x})^2 = 68{,}0$). Maka:
$$\mathrm{SE}_{\text{biasa}}(\hat{\beta}_1) = \sqrt{\frac{\hat{\sigma}^2}{S_{xx}}} = \sqrt{\frac{45{,}6}{68{,}0}} = \sqrt{0{,}6706} = 0{,}8189$$Langkah 4 — skor per klaster. Untuk tiap perusahaan, kalikan tiap $(x_i - \bar{x})$ dengan galatnya, lalu jumlahkan di dalam perusahaan itu (ini bagian kemiringan dari $X_g' e_g$):
| Unit | rincian $\sum (x_i-\bar{x})\,e_i$ | skor klaster |
|---|---|---|
| A | $(1{-}5)(3{,}5) + (2{-}5)(3{,}5) + (3{-}5)(5{,}0)$ | $-34{,}5$ |
| B | $(3{-}5)(-9{,}5) + (4{-}5)(-9{,}5) + (5{-}5)(-8{,}0)$ | $+28{,}5$ |
| C | $(5{-}5)(6{,}5) + (6{-}5)(6{,}5) + (7{-}5)(8{,}0)$ | $+22{,}5$ |
| D | $(7{-}5)(-2{,}5) + (8{-}5)(-2{,}5) + (9{-}5)(-1{,}0)$ | $-16{,}5$ |
Karena galat searah di dalam tiap perusahaan, sumbangannya menumpuk menjadi skor bernilai besar — tidak saling membatalkan. Itulah yang akan membesarkan galat baku.
Langkah 5 — rakit sandwich. Kuadratkan tiap skor, jumlahkan, kalikan faktor koreksi, lalu apit dengan lapis roti $1/S_{xx}$ di kedua sisi. Faktor koreksinya:
$$c = \frac{G}{G-1}\cdot\frac{N-1}{N-K} = \frac{4}{3}\cdot\frac{11}{10} = 1{,}4667$$Hasil akhirnya (dirakit penuh dengan kedua lapis roti) memberi:
$$\mathrm{SE}_{\text{klaster}}(\hat{\beta}_1) = 0{,}9392$$Langkah 6 — bandingkan.
| Galat baku kemiringan | Nilai | Rasio terhadap biasa |
|---|---|---|
| Biasa (anggap 12 baris bebas) | 0,8189 | 1,00 |
| Terklaster pada unit (anggap 4 unit bebas) | 0,9392 | 1,15 |
Galat baku terklaster 15% lebih besar. Pada panel mungil ini efeknya sedang; pada panel sungguhan dengan korelasi serial kuat, rasionya bisa dua sampai lima kali lipat — dan di situlah “signifikan” bisa berubah menjadi “tidak signifikan”.
Verifikasi statsmodels mengembalikan galat baku biasa 0,8189 dan terklaster 0,9392 — persis sama dengan hitung tangan di atas.
Saat Efeknya Dramatis
Untuk melihat betapa besar taruhannya, ambil panel yang lebih realistis: enam perusahaan diikuti lima tahun ($N = 30$, $G = 6$), dengan karakter perusahaan yang menempel kuat — galat tiap perusahaan jelas searah sepanjang lima tahun. Koefisien kemiringan keluar $\hat{\beta}_1 = 1{,}89$. Galat bakunya:
| Galat baku | Nilai | Statistik-$t$ | Nilai-$p$ | Putusan |
|---|---|---|---|---|
| Biasa | 0,5136 | 3,67 | 0,001 | “signifikan kuat” |
| Terklaster pada unit | 0,9581 | 1,97 | 0,049 | “nyaris tidak signifikan” |
Galat baku hampir dua kali lipat (rasio 1,87). Statistik-$t$ jatuh dari 3,67 menjadi 1,97; nilai-$p$ melompat dari 0,001 ke 0,049. Hasil yang tadinya tampak meyakinkan menyusut menjadi marginal — semata-mata karena kita berhenti berpura-pura bahwa 30 baris itu 30 keping informasi bebas, padahal sebenarnya hanya enam perusahaan. Inilah alasan klaster wajib, bukan opsional. (Kedua angka diverifikasi statsmodels.)
Bereksperimen Sendiri
Geser pengatur korelasi serial dalam perusahaan dan kekuatan kejutan waktu bersama, lalu amati bagaimana ketiga jenis galat baku — biasa, terklaster pada unit, dan dua-arah — bergerak relatif satu sama lain.
Yang patut dicoba:
- Naikkan korelasi serial dalam perusahaan, lihat galat baku terklaster-unit membesar jauh di atas galat baku biasa.
- Tambahkan kejutan waktu bersama, lihat klaster dua-arah menangkap koreksi yang berbeda dari klaster-unit saja.
- Setel kedua korelasi ke nol: ketiga galat baku nyaris sama — saat itu klaster memang tak perlu.
Dua-Arah: Klaster pada Unit dan Waktu
Kadang korelasi muncul di dua arah sekaligus: galat berkorelasi dalam perusahaan (lintas waktu) dan dalam tahun (lintas perusahaan, misalnya satu kejutan makro yang menggeser semua perusahaan di tahun itu). Cameron, Gelbach, dan Miller (2011) merumuskan klaster dua-arah, yang menggabungkan tiga sandwich:
$$\widehat{\mathrm{Var}}_{\text{dua-arah}} = \widehat{\mathrm{Var}}_{\text{unit}} + \widehat{\mathrm{Var}}_{\text{waktu}} - \widehat{\mathrm{Var}}_{\text{unit}\,\cap\,\text{waktu}}$$Suku terakhir mengurangi sumbangan irisan (sel unit-tahun tunggal) agar tidak dihitung dua kali. Konsekuensi penting yang sering disalahpahami: klaster dua-arah tidak selalu menghasilkan galat baku lebih besar daripada satu-arah. Karena ada suku yang dikurangkan, hasilnya bisa naik atau turun tergantung struktur korelasi data — bahkan, dengan sedikit klaster, ragam dua-arah kadang bisa tidak terdefinisi dengan baik (tidak positif). Yang ditangkapnya adalah struktur korelasi yang berbeda (within-waktu), bukan sekadar “lebih konservatif”. Gunakan dua-arah ketika ada alasan kuat menduga kejutan waktu bersama, lazimnya pada panel keuangan yang terkena siklus pasar tahunan.
Driscoll-Kraay: Saling-Bergantung Lintas Unit yang Kuat
Kalau korelasi lintas unit kuat (banyak unit bereaksi terhadap kejutan bersama) dan banyaknya periode waktu cukup besar, galat baku Driscoll-Kraay (1998) memberi koreksi yang tahan terhadap heteroskedastisitas (ragam galat tak seragam), autokorelasi (galat berkorelasi antar-waktu), dan saling-bergantung lintas unit sekaligus. Ia cocok untuk panel makro — negara atau provinsi diikuti banyak tahun — di mana satu guncangan global menggeser semua unit. Syaratnya: dimensi waktu harus panjang; pada panel dengan sedikit periode, Driscoll-Kraay tidak andal.
Ringkasan Pilihan
| Situasi panel | Galat baku yang dipakai |
|---|---|
| Standar (perusahaan/individu, banyak unit) | Klaster pada unit |
| Ada kejutan waktu bersama yang kuat | Klaster dua-arah (unit + waktu) |
| Saling-bergantung lintas unit kuat, $T$ besar | Driscoll-Kraay |
| Sedikit klaster ($G < 30$–50) | Wild cluster bootstrap |
| Panel dinamis ($Y$ tertinggal di ruas kanan) | Galat baku khusus GMM, lihat Panel Dinamis (GMM) |
Cek Pemahaman
1. Sebuah panel berisi 50 perusahaan diikuti 8 tahun (total 400 baris). Peneliti menjalankan efek tetap lalu melaporkan galat baku biasa karena “datanya sudah banyak, 400 baris”. Apa yang keliru, dan apa akibatnya pada nilai-$p$?
Lihat jawaban
Yang keliru: 400 baris bukan 400 keping informasi bebas. Delapan pengamatan pada satu perusahaan saling berkorelasi karena karakter perusahaan yang menempel (galatnya cenderung searah sepanjang tahun), jadi informasi efektifnya jauh lebih dekat ke 50 unit. Galat baku biasa menghitung seolah semua 400 baris bebas, sehingga ia terlalu kecil. Akibatnya statistik-$t$ terlalu besar dan nilai-$p$ terlalu kecil — peneliti berisiko menyatakan koefisien signifikan padahal sebenarnya tidak. Perbaikannya: klaster pada perusahaan (50 klaster sudah cukup banyak untuk valid).
2. (Soal transfer.) Pada contoh hitung empat-perusahaan di atas, andaikan galat perusahaan B berubah menjadi $-9{,}5$, $+9{,}5$, $-8{,}0$ (tanda berganti-ganti, bukan lagi searah). Tanpa menghitung penuh, jelaskan apa yang akan terjadi pada skor klaster perusahaan B dan, lewat itu, pada galat baku terklaster.
Lihat jawaban
Skor klaster B adalah $\sum (x_i - \bar{x})\,e_i$ di dalam B. Dengan galat searah, sumbangannya menumpuk menjadi angka besar. Begitu tandanya berganti-ganti, sumbangan positif dan negatif saling membatalkan, sehingga skor klaster B mengecil (mendekati nol). Karena rumus sandwich mengkuadratkan skor tiap klaster, skor yang mengecil membuat lapis “isi” mengecil — jadi galat baku terklaster menyusut, mendekati galat baku biasa. Inilah inti gagasannya: klaster hanya membesarkan galat baku sejauh galat di dalam unit benar-benar berkorelasi (searah). Tanpa korelasi, klaster dan biasa nyaris sama.
Cara di Perangkat Lunak
# R — fixest (rekomendasi, cepat)
library(fixest)
feols(y ~ x | firm + tahun, data = pdata, cluster = ~ firm) # satu-arah (unit)
feols(y ~ x | firm + tahun, data = pdata, cluster = ~ firm + tahun) # dua-arah
# plm + Driscoll-Kraay:
library(plm); coeftest(fe, vcov = vcovSCC)
* Stata
xtset firm tahun
xtreg y x, fe vce(cluster firm) // satu-arah
reghdfe y x, absorb(firm tahun) vce(cluster firm tahun) // dua-arah
xtscc y x, fe // Driscoll-Kraay
# Python (linearmodels)
from linearmodels.panel import PanelOLS
PanelOLS.from_formula('y ~ x + EntityEffects + TimeEffects', data=df).fit(
cov_type='clustered', cluster_entity=True, cluster_time=True)
Rumus di Excel
Galat baku terklaster pada panel adalah perhitungan matriks (sandwich), bukan satu fungsi tunggal — Excel tidak punya =CLUSTERSE(...). Berkas pendamping menampilkan rangkaiannya sebagai formula hidup: kolom galat $e = y - \hat{y}$, skor per klaster $\sum(x_i-\bar{x})\,e_i$, lalu rakitan sandwich-nya, sehingga Anda bisa menelusuri tiap angka pada contoh empat-perusahaan persis seperti hitung tangan di atas. Untuk analisis sungguhan, tetap pakai R/Stata/Python; Excel di sini murni alat pemahaman.
⬇ Unduh clustered-se-panel.xlsx
Kesalahan Umum
Memakai galat baku biasa pada panel. Hampir selalu terlalu kecil karena korelasi serial dalam unit. Klaster pada unit adalah batas minimum, bukan opsi tambahan.
Lupa korelasi serial pada beda-dalam-beda. Pelajaran Bertrand-Duflo-Mullainathan: studi beda-dalam-beda tanpa klaster sering menolak hipotesis nol jauh terlalu sering. Selalu klaster pada unit yang dikenai perlakuan.
Mengira klaster dua-arah selalu lebih besar dari satu-arah. Tidak. Rumus dua-arah mengandung suku yang dikurangkan, jadi hasilnya bisa naik atau turun; dengan sedikit klaster bahkan bisa tak terdefinisi. Pilih arah klaster dari struktur korelasi yang masuk akal, bukan dari “mana yang paling besar”.
Mengira efek tetap menggantikan klaster. Efek tetap menghapus bias dari heterogenitas tak teramati antar-unit; klaster memperbaiki galat baku. Dua hal yang berbeda, dan sering dibutuhkan bersamaan dalam satu model.
Klaster di tingkat terlalu halus. Klaster per perusahaan-tahun (yang unik untuk tiap baris) sama saja dengan tidak mengelompokkan apa pun — tiap klaster hanya berisi satu baris, jadi tidak ada korelasi dalam-klaster yang ditangkap. Klaster di tingkat unit.
Klaster dengan terlalu sedikit klaster. Galat baku terklaster sahih secara asimtotik saat $G$ besar (pegangan: di atas 30–50). Dengan $G < 30$, ia bisa meremehkan ketidakpastian; pakai wild cluster bootstrap.
Dipakai di Dunia Nyata
Riset keuangan perusahaan (BEI). Panel perusahaan-tahun atas saham Indonesia hampir selalu diklaster dua-arah, perusahaan + tahun, untuk menangkap sekaligus karakter perusahaan yang menempel dan kejutan pasar tahunan (krisis 2008, pandemi 2020, siklus suku bunga BI). Tanpa ini, galat baku pada studi tata kelola atau struktur modal akan menyesatkan.
Evaluasi kebijakan daerah. Panel provinsi atau kabupaten lintas tahun — dampak Dana Desa, transfer fiskal, kebijakan upah minimum — diklaster pada daerah; bila dependensi spasial kuat dan periodenya panjang, peneliti beralih ke Driscoll-Kraay.
Studi beda-dalam-beda. Hampir setiap aplikasi beda-dalam-beda modern mengelompokkan galat pada unit yang dikenai perlakuan, mengikuti pelajaran Bertrand-Duflo-Mullainathan. Ini telah menjadi syarat lolos di jurnal terkemuka.
Lanjutan
- Berikutnya: Panel Dinamis (Arellano-Bond GMM) — saat $Y$ masa lalu masuk sebagai variabel bebas, galat baku butuh perlakuan GMM tersendiri.
- Pendamping: Clustered Standard Errors — gagasan klaster pada data lintas-seksi (bukan panel), tempat semuanya bermula.
- Fondasi: Data Panel: efek tetap vs efek acak dan Robust Standard Errors.
- Akar konsep korelasi serial: Autokorelasi.
Reference
- Bertrand, M., Duflo, E. & Mullainathan, S. (2004), “How Much Should We Trust Differences-in-Differences Estimates?”, Quarterly Journal of Economics.
- Cameron, A. C., Gelbach, J. B. & Miller, D. L. (2011), “Robust Inference with Multiway Clustering”, Journal of Business & Economic Statistics.
- Driscoll, J. C. & Kraay, A. C. (1998), “Consistent Covariance Matrix Estimation with Spatially Dependent Panel Data”, Review of Economics and Statistics.
- Abadie, A., Athey, S., Imbens, G. & Wooldridge, J. (2023), “When Should You Adjust Standard Errors for Clustering?”, Quarterly Journal of Economics.