Sebuah perusahaan ingin tahu bagaimana pengalaman kerja memengaruhi upah. Datanya dikumpulkan, garis regresi ditarik, dan hasilnya jelas: tiap tambahan satu tahun pengalaman menaikkan upah. Tetapi seorang analis curiga ada yang tersembunyi di balik satu garis itu. Ia memisahkan data menjadi dua: karyawan pria dan karyawan wanita. Ternyata bukan hanya posisi awal upah mereka berbeda — laju kenaikannya pun berbeda. Tiap tahun pengalaman menambah upah pria lebih banyak daripada upah wanita.
Satu garis menyembunyikan cerita ini; ia memaksa kedua kelompok berbagi kemiringan yang sama. Untuk menangkap bahwa dua kelompok bisa punya garis berbeda — beda titik berangkat, bahkan beda kecuraman — kita butuh dua alat: variabel dummy untuk menandai kelompok, dan interaction term untuk membiarkan kemiringannya berbeda. Artikel ini membangun keduanya dari nol.
Intuisi: dari satu garis ke dua garis
Regresi linear sederhana menarik satu garis lewat awan titik. Itu cukup kalau seluruh data berbagi pola yang sama.
Masalahnya, satu garis memaksa setiap kelompok berbagi dua hal: titik berangkat (intersep) dan laju perubahan (kemiringan). Padahal di dunia nyata sering tidak begitu. Dua pertanyaan terpisah muncul:
- Apakah titik berangkatnya berbeda? Pada pengalaman yang sama, apakah satu kelompok rata-rata berupah lebih tinggi? Ini soal beda intersep — dijawab oleh variabel dummy.
- Apakah laju kenaikannya berbeda? Apakah tiap tahun pengalaman menambah upah lebih cepat di satu kelompok? Ini soal beda kemiringan — dijawab oleh interaction term.
Dummy menggeser garis ke atas atau ke bawah. Interaksi memutar kemiringannya. Gabungan keduanya membiarkan tiap kelompok punya garis sendiri yang benar-benar bebas.
Variabel Dummy: menandai kelompok dengan 0 dan 1
Regresi hanya menerima angka, sedangkan “pria/wanita” atau “SMA/S1/S2” adalah kategori. Variabel dummy menjembataninya: sebuah variabel yang hanya bernilai 0 atau 1, menandai apakah suatu pengamatan termasuk kategori tertentu.
$$D = \begin{cases} 1 & \text{kalau wanita} \\ 0 & \text{kalau pria} \end{cases}$$Masukkan dummy ini ke regresi bersama variabel pengalaman $x$:
$$\hat{y} = b_0 + b_1 x + b_2 D$$Tiap lambang dijelaskan polos:
- $\hat{y}$ (dibaca “y-topi”) = upah yang diprediksi model.
- $x$ = variabel bebas berupa angka, di sini pengalaman kerja (tahun).
- $D$ = variabel dummy, bernilai 0 atau 1, penanda kelompok.
- $b_0$ = intersep, yaitu prediksi $\hat{y}$ saat $x = 0$ dan $D = 0$ (kelompok basis).
- $b_1$ = kemiringan terhadap $x$ — berapa upah naik per tahun pengalaman.
- $b_2$ = selisih intersep antara kelompok $D=1$ dan kelompok $D=0$.
Kenapa $b_2$ adalah selisih intersep? Tinggal masukkan nilai $D$. Untuk pria ($D=0$): $\hat{y} = b_0 + b_1 x$. Untuk wanita ($D=1$): $\hat{y} = b_0 + b_1 x + b_2 = (b_0 + b_2) + b_1 x$. Dua garis ini kemiringannya sama ($b_1$), tetapi intersepnya beda sebesar $b_2$ — yaitu dua garis sejajar yang satu di atas yang lain. Kalau $b_2 = -1$ (juta rupiah), wanita berupah rata-rata Rp 1 juta lebih rendah pada tingkat pengalaman yang sama.
Kategori lebih dari dua: aturan k−1
Untuk variabel dengan $k$ kategori, buat $k - 1$ dummy — satu kategori menjadi basis (acuan) yang tidak diberi dummy. Misalnya tiga wilayah:
| Wilayah | $D_\text{Sumatera}$ | $D_\text{Lainnya}$ |
|---|---|---|
| Jawa (basis) | 0 | 0 |
| Sumatera | 1 | 0 |
| Lainnya | 0 | 1 |
Jawa dikenali dari kombinasi “kedua dummy nol”. Tiap koefisien dibaca relatif terhadap basis: $b_\text{Sumatera}$ = selisih rata-rata $\hat{y}$ antara Sumatera dan Jawa, dengan variabel lain dikontrol.
Dummy trap: jangan masukkan semua k dummy
Godaan pemula: membuat dummy untuk setiap kategori (termasuk basis) lalu memasukkan semuanya plus intersep. Ini menyebabkan dummy trap — multikolinearitas sempurna. Sebabnya: jumlah seluruh dummy selalu sama dengan 1 untuk tiap baris (tiap pengamatan pasti masuk persis satu kategori), dan angka 1 itu sudah diwakili intersep. Akibatnya kolom-kolom itu saling bergantung sempurna dan OLS gagal menghitung koefisien tunggal.
Aturannya tetap: $k$ kategori → $k-1$ dummy, satu kategori jadi basis. Perangkat lunak modern menanganinya otomatis — factor() di R, i.var di Stata, C(...) di statsmodels — tetapi kalau Anda membuat dummy manual, ingat aturan $k-1$. Rincian masalah ini ada di Multikolinearitas.
Interaction Term: membiarkan kemiringan berbeda
Dummy saja hanya menggeser garis naik-turun; dua garis tetap sejajar. Tetapi bagaimana kalau laju kenaikan upah per tahun pengalaman juga berbeda antar kelompok? Untuk itu kita kalikan $x$ dengan $D$, menghasilkan interaction term:
$$\hat{y} = b_0 + b_1 x + b_2 D + b_3 (x \cdot D)$$Lambang baru:
- $x \cdot D$ = hasil kali pengalaman dan dummy. Untuk pria ($D=0$) nilainya selalu 0; untuk wanita ($D=1$) nilainya sama dengan $x$.
- $b_3$ = koefisien interaksi, yaitu selisih kemiringan antar kelompok.
Cara paling jernih memahami interaksi adalah memecah persamaan satu itu menjadi dua garis dengan memasukkan nilai $D$:
$$\underbrace{D = 0:\ \hat{y} = b_0 + b_1 x}_{\text{garis kelompok basis}} \qquad \underbrace{D = 1:\ \hat{y} = (b_0 + b_2) + (b_1 + b_3)\, x}_{\text{garis kelompok lain}}$$Bandingkan keduanya berdampingan:
| Intersep | Kemiringan | |
|---|---|---|
| Pria ($D=0$) | $b_0$ | $b_1$ |
| Wanita ($D=1$) | $b_0 + b_2$ | $b_1 + b_3$ |
| Selisih | $b_2$ | $b_3$ |
Jadi: $b_2$ menggeser intersep, $b_3$ memutar kemiringan. Kalau $b_3 = 0$, dua garis kembali sejajar (kemiringan sama) — sama dengan model dummy biasa. Semakin jauh $b_3$ dari nol, semakin tajam beda kecuraman dua garis.
Geser sendiri $b_2$ dan $b_3$ di bawah ini, dan amati: $b_2$ menaik-turunkan garis wanita; $b_3$ memutar kemiringannya; $b_3 = 0$ membuat keduanya kembali sejajar.
Contoh Hitung dari Nol
Mari kerjakan kasus pembuka sampai tuntas dengan data kecil. Sepuluh karyawan, lima pria dan lima wanita, masing-masing dicatat pengalaman kerjanya ($x$, tahun) dan upahnya ($y$, juta rupiah).
Langkah 1 — data mentah.
| $i$ | $x$ (pengalaman) | $D$ (wanita) | $y$ (upah, juta) |
|---|---|---|---|
| 1 | 2 | 0 | 5,6 |
| 2 | 4 | 0 | 5,8 |
| 3 | 6 | 0 | 8,0 |
| 4 | 8 | 0 | 8,2 |
| 5 | 10 | 0 | 10,4 |
| 6 | 2 | 1 | 4,1 |
| 7 | 4 | 1 | 4,2 |
| 8 | 6 | 1 | 5,6 |
| 9 | 8 | 1 | 5,8 |
| 10 | 10 | 1 | 7,3 |
Trik kuncinya: model interaksi penuh setara dengan menjalankan dua regresi terpisah, satu per kelompok. (Itu sebabnya interaksi disebut “membiarkan tiap kelompok punya garis sendiri”.) Jadi kita hitung garis tiap kelompok dengan rumus slope-intersep biasa, lalu rakit koefisiennya.
Langkah 2 — garis kelompok pria ($D=0$). Data pria: $x = 2,4,6,8,10$; $y = 5{,}6;\ 5{,}8;\ 8{,}0;\ 8{,}2;\ 10{,}4$. Rata-rata $\bar{x} = 6$ dan $\bar{y} = 7{,}6$. Kolom bantu:
| $x_i - \bar{x}$ | $y_i - \bar{y}$ | hasil kali | $(x_i-\bar{x})^2$ |
|---|---|---|---|
| −4 | −2,00 | 8,00 | 16 |
| −2 | −1,80 | 3,60 | 4 |
| 0 | 0,40 | 0,00 | 0 |
| 2 | 0,60 | 1,20 | 4 |
| 4 | 2,80 | 11,20 | 16 |
| Σ | 24,00 | 40 |
Slope dan intersep pria:
$$b_1 = \frac{\sum(x_i-\bar{x})(y_i-\bar{y})}{\sum(x_i-\bar{x})^2} = \frac{24}{40} = 0{,}6 \qquad b_0 = \bar{y} - b_1\bar{x} = 7{,}6 - 0{,}6 \times 6 = 4{,}0$$Garis pria: $\hat{y} = 4{,}0 + 0{,}6\,x$.
Langkah 3 — garis kelompok wanita ($D=1$). Data wanita: $x = 2,4,6,8,10$; $y = 4{,}1;\ 4{,}2;\ 5{,}6;\ 5{,}8;\ 7{,}3$. Rata-rata $\bar{x} = 6$ dan $\bar{y} = 5{,}4$. Kolom bantu:
| $x_i - \bar{x}$ | $y_i - \bar{y}$ | hasil kali | $(x_i-\bar{x})^2$ |
|---|---|---|---|
| −4 | −1,30 | 5,20 | 16 |
| −2 | −1,20 | 2,40 | 4 |
| 0 | 0,20 | 0,00 | 0 |
| 2 | 0,40 | 0,80 | 4 |
| 4 | 1,90 | 7,60 | 16 |
| Σ | 16,00 | 40 |
Slope dan intersep wanita:
$$b_1^{(w)} = \frac{16}{40} = 0{,}4 \qquad b_0^{(w)} = 5{,}4 - 0{,}4 \times 6 = 3{,}0$$Garis wanita: $\hat{y} = 3{,}0 + 0{,}4\,x$.
Langkah 4 — rakit jadi satu model interaksi. Sekarang terjemahkan dua garis itu ke koefisien $b_0, b_1, b_2, b_3$ memakai tabel selisih di atas:
- $b_0 = $ intersep basis (pria) $= 4{,}0$
- $b_1 = $ kemiringan basis (pria) $= 0{,}6$
- $b_2 = $ selisih intersep $= b_0^{(w)} - b_0 = 3{,}0 - 4{,}0 = -1{,}0$
- $b_3 = $ selisih kemiringan $= b_1^{(w)} - b_1 = 0{,}4 - 0{,}6 = -0{,}2$
Model interaksi lengkap:
$$\hat{y} = 4{,}0 + 0{,}6\,x - 1{,}0\,D - 0{,}2\,(x \cdot D)$$Menjalankan OLS langsung pada kesepuluh baris data (dengan statsmodels) menghasilkan persis koefisien yang sama — $b_0=4{,}0$, $b_1=0{,}6$, $b_2=-1{,}0$, $b_3=-0{,}2$, dengan $R^2 = 0{,}95$ — bukti bahwa “interaksi penuh” memang sama dengan “dua regresi terpisah”.
Interpretasi Koefisien
Untuk model $\hat{y} = 4{,}0 + 0{,}6\,x - 1{,}0\,D - 0{,}2\,(x \cdot D)$ (upah dalam juta rupiah, $x$ = pengalaman, $D$ = wanita), tiap koefisien punya makna terpisah:
- $b_0 = 4{,}0$ — intersep kelompok basis (pria). Pria tanpa pengalaman ($x=0$) diprediksi berupah Rp 4 juta. Ini bukan prediksi rata-rata semua orang; hanya pria.
- $b_1 = 0{,}6$ — kemiringan kelompok basis (pria). Tiap tahun pengalaman menambah upah pria Rp 0,6 juta. Saat ada interaksi, $b_1$ adalah efek $x$ hanya untuk basis, bukan efek keseluruhan.
- $b_2 = -1{,}0$ — selisih intersep. Pada pengalaman 0 tahun, wanita berupah Rp 1 juta lebih rendah daripada pria.
- $b_3 = -0{,}2$ — selisih kemiringan. Tiap tahun pengalaman menambah upah wanita Rp 0,2 juta lebih sedikit daripada pria (0,6 vs 0,4 juta per tahun). Tanda negatif berarti kesenjangan melebar seiring pengalaman.
Sekarang gunakan model untuk memprediksi. Berapa upah seorang wanita dengan pengalaman 5 tahun? Masukkan $x=5$, $D=1$:
$$\hat{y} = 4{,}0 + 0{,}6(5) - 1{,}0(1) - 0{,}2(5 \cdot 1) = 4{,}0 + 3{,}0 - 1{,}0 - 1{,}0 = 5{,}0 \text{ juta}$$Bandingkan dengan pria berpengalaman sama ($x=5$, $D=0$): $\hat{y} = 4{,}0 + 0{,}6(5) = 7{,}0$ juta. Selisihnya Rp 2 juta. Selisih ini bukan konstanta $b_2$ saja; ia bergantung pengalaman, karena garisnya tidak sejajar:
$$\text{selisih wanita} - \text{pria} = b_2 + b_3 \cdot x = -1{,}0 + (-0{,}2)(5) = -2{,}0 \text{ juta}$$Pada 0 tahun selisihnya hanya −1 juta; pada 10 tahun melebar jadi −3 juta. Itulah yang tak bisa ditangkap model dummy biasa (yang memaksa selisih tetap −1 juta di semua tingkat pengalaman).
Aturan Penting: selalu sertakan main effect
Saat memakai interaksi $x \cdot D$, Anda wajib memasukkan juga $x$ dan $D$ secara terpisah (disebut main effect, efek utama). Jangan pernah memasukkan $x \cdot D$ sendirian tanpa pasangannya. Kalau $D$ dibuang, model memaksa kedua garis berbagi intersep yang sama (hanya boleh beda kemiringan) — sebuah batasan yang jarang dikehendaki dan membuat tafsir $b_3$ rusak. Hampir semua perangkat lunak modern memasukkan main effect otomatis kalau Anda menulis x * D (lihat sintaks di bawah).
Cek Pemahaman
1. Dari model $\hat{y} = 4{,}0 + 0{,}6\,x - 1{,}0\,D - 0{,}2\,(x \cdot D)$, tuliskan kemiringan dan intersep untuk masing-masing kelompok ($D=0$ dan $D=1$), lalu prediksi upah seorang pria dengan pengalaman 8 tahun.
Lihat jawaban
Kelompok $D=0$ (pria): intersep $= b_0 = 4{,}0$; kemiringan $= b_1 = 0{,}6$. Kelompok $D=1$ (wanita): intersep $= b_0 + b_2 = 4{,}0 - 1{,}0 = 3{,}0$; kemiringan $= b_1 + b_3 = 0{,}6 - 0{,}2 = 0{,}4$.
Prediksi pria, $x=8$, $D=0$: $\hat{y} = 4{,}0 + 0{,}6(8) = 4{,}0 + 4{,}8 = 8{,}8$ juta.
2. (Soal transfer.) Sebuah model dari data lain memberi $\hat{Y} = 3000 + 500\,x - 800\,D - 150\,(x \cdot D)$, dengan $\hat{Y}$ = upah (ribu rupiah), $x$ = pengalaman (tahun), $D=1$ wanita / $D=0$ pria. (a) Berapa tambahan upah per tahun pengalaman untuk wanita? (b) Berapa prediksi upah wanita berpengalaman 10 tahun? (c) Pada pengalaman berapa selisih upah wanita−pria mencapai −2.300 ribu?
Lihat jawaban
(a) Kemiringan wanita $= b_1 + b_3 = 500 + (-150) = 350$ ribu per tahun (pria 500, jadi wanita Rp 150 ribu lebih sedikit tiap tahun).
(b) Wanita, $x=10$, $D=1$: $\hat{Y} = 3000 + 500(10) - 800(1) - 150(10 \cdot 1) = 3000 + 5000 - 800 - 1500 = 5700$ ribu.
(c) Selisih wanita−pria $= b_2 + b_3 x = -800 - 150x$. Setel $= -2300$: $-150x = -1500 \Rightarrow x = 10$ tahun. (Cek: pada 0 tahun selisih hanya −800; melebar −150 ribu tiap tahun.)
Kesalahan Umum
Memasukkan semua $k$ dummy plus intersep (dummy trap). Multikolinearitas sempurna, OLS gagal. Sisakan satu kategori sebagai basis: $k$ kategori → $k-1$ dummy.
Memasukkan interaksi tanpa main effect. Menulis $x \cdot D$ tanpa $x$ dan $D$ sendirian membuat model salah spesifikasi dan tafsir $b_3$ tidak sahih. Selalu sertakan keduanya.
Menafsirkan $b_1$ sebagai “efek rata-rata”. Saat ada interaksi, $b_1$ adalah efek $x$ hanya pada kelompok basis ($D=0$), bukan efek keseluruhan. Efek $x$ untuk kelompok lain adalah $b_1 + b_3$.
Menafsirkan $b_2$ sebagai selisih upah di semua tingkat $x$. Begitu ada interaksi, selisih antar kelompok bukan konstan $b_2$, melainkan $b_2 + b_3 x$ — bergantung nilai $x$. $b_2$ hanya selisih saat $x = 0$.
Lupa centering pada interaksi dua variabel kontinu. Untuk $x \cdot z$ (dua variabel kontinu, bukan dummy), memusatkan dulu ($x - \bar{x}$, $z - \bar{z}$) membuat main effect tertafsir pada nilai rata-rata yang bermakna dan menurunkan multikolinearitas non-esensial.
Terlalu banyak kategori dengan data sedikit. Tiap dummy memakan satu derajat bebas; tiap interaksi menambah lagi. Dua puluh kategori dengan $n=100$ boros derajat bebas dan menghasilkan estimasi tidak stabil.
Cara Mengeceknya di Perangkat Lunak
Tiga perangkat lunak ini menangani dummy dan interaksi otomatis — Anda cukup menulis perkalian, sisanya diurus (termasuk main effect dan aturan $k-1$):
# R — factor() membuat dummy & menghindari trap; tanda * = main + interaksi
m <- lm(upah ~ pengalaman * gender, data = dat)
# 'pengalaman * gender' = pengalaman + gender + pengalaman:gender
summary(m)
* Stata — ## menambahkan main effect + interaksi sekaligus
reg upah c.pengalaman##i.gender
# Python (statsmodels) — C() menandai variabel kategorik, * = interaksi penuh
import statsmodels.formula.api as smf
m = smf.ols('upah ~ pengalaman * C(gender)', data=df).fit()
print(m.summary())
Rumus di Excel
Excel tidak punya fungsi interaksi bawaan, tetapi modelnya bisa dibangun manual: buat kolom dummy $D$ (0/1) dan kolom hasil kali $x \cdot D$, lalu regresikan dengan LINEST.
=IF(B2="Wanita"; 1; 0) → kolom dummy D
=A2*C2 → kolom interaksi (pengalaman × D)
=LINEST(Y; A2:C11; TRUE; TRUE) → koefisien b₁, b₂, b₃ + intersep b₀ sekaligus
⬇ Unduh dummy-interaction.xlsx
Berkas pendamping memuat data kesepuluh karyawan di atas, kolom dummy dan kolom interaksi yang dibangun dengan formula hidup, serta lembar yang memisahkan model menjadi dua garis (pria dan wanita) agar koefisien $b_2$ dan $b_3$ terlihat sebagai selisih intersep dan selisih kemiringan.
Dipakai di Dunia Nyata
- Ekonomi tenaga kerja. Kesenjangan upah gender, imbalan pendidikan, perbedaan antarwilayah — semua memakai dummy. Interaksi mengungkap apakah imbalan pendidikan atau pengalaman berbeda antar kelompok, bukan sekadar rata-ratanya beda.
- Evaluasi kebijakan. Difference-in-Differences pada intinya adalah interaksi antara dummy “kelompok perlakuan” dan dummy “periode setelah kebijakan” — koefisien interaksinya justru efek kebijakan yang dicari. Untuk perlakuan yang menyebar di banyak waktu, gunakan estimator modern seperti Callaway–Sant’Anna yang menghindari bias estimator interaksi dua-arah klasik.
- Keuangan & riset pasar. Dummy menandai kelompok perlakuan dalam uji A/B; interaksi menguji apakah efek promosi atau perubahan harga berbeda antar segmen pelanggan. Dalam studi peristiwa pasar modal, dummy menandai jendela peristiwa.
Lanjutan
- Sebelumnya: Variabel dummy dalam regresi — dasar pengkodean 0/1 dan aturan $k-1$.
- Perlu menyegarkan regresi banyak variabel? Balik ke Regresi linear berganda.
- Berikutnya: Functional Forms — bentuk hubungan non-linear (log, kuadratik) yang melengkapi interaksi; dan Logit, Probit, Tobit saat variabel terikatnya sendiri berupa kategori.
Reference
- Wooldridge, J. M. (2019). Introductory Econometrics: A Modern Approach (7th ed.), Ch. 7.
- Aiken, L. S., & West, S. G. (1991). Multiple Regression: Testing and Interpreting Interactions.
- Brambor, T., Clark, W. R., & Golder, M. (2006). Understanding interaction models: Improving empirical analyses. Political Analysis, 14(1), 63–82.