Nhân quả 6 — Biến công cụ & Hồi quy gián đoạn

13 thg 7, 2026 2 lượt xem
#bi
#causal-inference
#quasi-experiment
#rdd
#instrumental-variables

Vấn đề vẫn còn: confounder ẩn

bài matching & propensity ta đã thấy giới hạn sinh tử: những phương pháp đó chỉ cân bằng được confounder đã đo. Nếu tồn tại một confounder ẩn (unobserved confounder) — biến vừa tác động việc ai nhận treatment vừa tác động outcome, mà ta không có trong dữ liệu — thì propensity score đẹp đến đâu cũng vô nghĩa. Ví dụ ngân hàng kinh điển: "ý thức kỷ luật tài chính" của khách vừa khiến họ đăng ký một gói tiết kiệm (treatment), vừa khiến họ ít vỡ nợ (outcome). Ta không đo được nó → mọi so sánh đều lẫn tác động của nó.

RCT giải được vì randomization cân bằng cả biến ẩn. Nhưng RCT thường không khả thi: chương trình đã chạy, chính sách áp cho tất cả, hoặc đạo đức/pháp lý không cho phép. Câu hỏi của bài này: có cách nào ước lượng nhân quả từ dữ liệu quan sát mà vẫn vững trước confounder ẩn không?

Có — bằng hai thiết kế bán thực nghiệm (quasi-experiment). Ý tưởng chung: tìm trong thực tế một nguồn biến thiên của treatment gần như ngẫu nhiên, không dính vào confounder ẩn. Hai công cụ mạnh nhất là Instrumental Variables (IV — biến công cụ)Regression Discontinuity Design (RDD — hồi quy gián đoạn).


Instrumental Variables (IV — biến công cụ)

Trực giác cốt lõi

Khi treatment $T$ nội sinh (endogenous) — tức bị confounder ẩn tác động — ta không thể tin phần biến thiên nào của $T$ là "sạch". Ý tưởng của IV là: tìm một biến thứ ba $Z$ (gọi là instrument / biến công cụ) đẩy $T$ thay đổi, nhưng bản thân $Z$ lại ngoại sinh (không dính confounder ẩn, không tác động $Y$ theo đường nào khác ngoài qua $T$). Khi đó ta chỉ dùng phần biến thiên của $T$ "do $Z$ gây ra" — phần này ngoại sinh — để ước lượng tác động $T \to Y$. Phần biến thiên còn lại của $T$ (dính confounder) bị vứt đi.

Nói cách khác: $Z$ hoạt động như một cú "randomize gián tiếp". Nếu $Z$ gần như ngẫu nhiên và chỉ ảnh hưởng $Y$ qua $T$, thì so sánh outcome giữa các mức $Z$ khác nhau cho ta một tín hiệu nhân quả sạch — miễn quy đổi lại theo mức độ $Z$ đẩy được $T$.

Sơ đồ trên là "bức tranh IV" chuẩn: $U$ làm bẩn cả $T$ và $Y$ (đường đứt nét), nhưng $Z$ chỉ chạm $Y$ qua $T$ — không có mũi tên trực tiếp $Z \to Y$, và không có mũi tên $U \to Z$.

Ba điều kiện của một instrument hợp lệ

Một biến $Z$ chỉ là instrument hợp lệ khi thoả cả ba điều kiện sau. Đây là phần khó nhất của IV.

Điều kiệnNội dungKiểm chứng được?
Relevance (liên quan)$Z$ tác động $T$ đủ mạnh — có tương quan thật giữa $Z$ và $T$ — test được từ dữ liệu (xem F-stat)
Exclusion restriction (loại trừ)$Z$ tác động $Y$ CHỈ qua $T$, không đường nào khácKhông — phải lập luận nghiệp vụ
Independence (độc lập)$Z$ độc lập với confounder ẩn ($Z$ như được gán ngẫu nhiên)Không đầy đủ — phải lập luận

Điểm chí tử: exclusion restriction và independence KHÔNG kiểm chứng được từ dữ liệu. Bạn không thể chạy một test để chứng minh "$Z$ không có đường tác động khác tới $Y$". Nó phải được biện luận bằng hiểu biết cơ chế thực tế — và đây là chỗ mọi phân tích IV bị phản biện. Một instrument sai (vi phạm exclusion) có thể cho kết quả sai lệch tệ hơn cả không dùng IV.

Ước lượng: 2SLS (Two-Stage Least Squares)

Cách thực thi phổ biến nhất là 2SLS — bình phương tối thiểu hai giai đoạn. Trực giác hai bước:

  1. Stage 1 (giai đoạn 1): hồi quy $T$ theo $Z$ (và các biến kiểm soát) → thu $\hat{T}$, tức "phần của $T$ được $Z$ giải thích". $\hat{T}$ là phần ngoại sinh của treatment — đã lọc sạch biến thiên dính confounder. $$\hat{T} = \gamma_0 + \gamma_1 Z + \dots$$
  2. Stage 2 (giai đoạn 2): hồi quy $Y$ theo $\hat{T}$ (dùng giá trị dự đoán, không dùng $T$ gốc). Hệ số của $\hat{T}$ chính là ước lượng tác động nhân quả $T \to Y$. $$Y = \beta_0 + \beta_1 \hat{T} + \dots$$

Vì $\hat{T}$ chỉ chứa biến thiên đến từ $Z$ (ngoại sinh), $\beta_1$ không còn bị confounder ẩn làm bẩn. Trong trường hợp đơn giản nhất (một $Z$, một $T$, không biến kiểm soát), ước lượng IV rút gọn thành tỷ số Wald:

$$\hat{\beta}_{IV} = \frac{\text{Cov}(Y, Z)}{\text{Cov}(T, Z)} = \frac{\text{ảnh hưởng của } Z \text{ lên } Y}{\text{ảnh hưởng của } Z \text{ lên } T}$$

Trực giác của công thức Wald: "$Z$ đẩy $Y$ đi bao nhiêu" chia cho "$Z$ đẩy $T$ đi bao nhiêu" = "mỗi đơn vị $T$ đẩy $Y$ đi bao nhiêu". Mẫu số nhỏ (Z đẩy T yếu) → ước lượng bùng nổ và bất ổn — đây chính là vấn đề weak instrument bên dưới.

LATE — chỉ đúng cho nhóm compliers

Một sự thật hay bị bỏ qua: IV không ước lượng ATE (tác động trung bình toàn quần thể). Nó ước lượng LATE — Local Average Treatment Effect (tác động trung bình cục bộ), chỉ cho nhóm compliers: những cá thể thay đổi hành vi treatment theo $Z$. Phân loại kinh điển theo phản ứng với $Z$:

  • Compliers: nhận treatment nếu và chỉ nếu $Z$ đẩy họ nhận. IV nói về đúng nhóm này.
  • Always-takers: luôn nhận treatment bất kể $Z$.
  • Never-takers: không bao giờ nhận, bất kể $Z$.
  • Defiers: làm ngược $Z$ (thường giả định không tồn tại — monotonicity).

Hệ quả thực tế: nếu instrument là một "khuyến khích tham gia", LATE chỉ cho biết tác động lên những người bị khuyến khích làm thay đổi quyết định — có thể khác hẳn nhóm always-takers. Khi báo cáo, phải nói rõ "đây là tác động trên nhóm compliers", đừng phóng chiếu thành toàn bộ khách.

Chọn instrument ở đâu

Instrument tốt thường đến từ một trong ba nguồn thực tế:

  • Khoảng cách / địa lý: ví dụ kinh điển "khoảng cách tới chi nhánh gần nhất" đẩy khả năng khách mở tài khoản, nhưng (biện luận) không tác động trực tiếp hành vi tài chính khác.
  • Khuyến khích ngẫu nhiên (randomized encouragement): ngân hàng gửi lời mời/ưu đãi tham gia một chương trình cho một nhóm ngẫu nhiên. Lời mời là $Z$ (được randomize), việc thực sự tham gia là $T$. Đây là thiết kế IV mạnh nhất vì independence được đảm bảo bằng thiết kế.
  • Thay đổi quy định / chính sách (policy change): một quy định mới áp cho một nhóm theo tiêu chí ngoại sinh (thời điểm, vùng) tạo biến thiên treatment độc lập với đặc điểm cá nhân.

Weak instrument — cảnh báo quan trọng

Nếu $Z$ đẩy $T$ yếu (relevance thấp), 2SLS trở nên thiên lệch nặng và phương sai khổng lồ — có thể tệ hơn OLS gốc. Đây là weak instrument problem. Chẩn đoán bằng F-statistic của stage 1: quy tắc ngón tay cái là F > 10 thì instrument đủ mạnh; F thấp là báo động đỏ. Cùng với đó, exclusion restriction phải được biện luận thuyết phục — một chút vi phạm exclusion sẽ bị khuếch đại khi instrument yếu. Nguyên tắc: thà không dùng IV còn hơn dùng một weak/invalid instrument.


Regression Discontinuity Design (RDD — hồi quy gián đoạn)

Trực giác cốt lõi

RDD khai thác một tình huống cực kỳ phổ biến trong ngân hàng: khi treatment được quyết định bởi một NGƯỠNG (cutoff) trên một biến liên tục gọi là running variable (biến chạy). Ví dụ: điểm tín dụng $\ge 600$ thì được duyệt vay (treatment), $< 600$ thì bị từ chối (control).

Ý tưởng thiên tài: hãy nhìn hai khách ngay trên (điểm 601) và ngay dưới (điểm 599) ngưỡng. Về bản chất họ gần như giống hệt nhau — chênh 2 điểm tín dụng là gần như ngẫu nhiên, do sai số đo lường, may rủi trong hồ sơ. Vậy mà một người được duyệt, một người không. Đây chính là một "thí nghiệm ngẫu nhiên tự nhiên" ngay tại ngưỡng: quanh cutoff, việc được treatment gần như ngẫu nhiên → so outcome của hai bên ngưỡng cho ta tác động nhân quả tại ngưỡng, kể cả khi có confounder ẩn (vì confounder cũng liên tục qua ngưỡng, không nhảy).

Về mặt hình học: ta khớp một đường hồi quy $Y$ theo running variable ở mỗi bên ngưỡng, rồi đo bước nhảy (jump) của $Y$ ngay tại cutoff. Độ cao của bước nhảy chính là ước lượng tác động.

Sharp vs Fuzzy RDD

LoạiĐặc điểmƯớc lượng
Sharp RDDVượt ngưỡng ⇒ chắc chắn nhận treatment (xác suất nhảy từ 0 lên 1)Bước nhảy của $Y$ tại cutoff = tác động trực tiếp
Fuzzy RDDVượt ngưỡng chỉ tăng xác suất nhận treatment (không phải 0→1)Kết hợp IV: chia bước nhảy $Y$ cho bước nhảy xác suất treatment

Sharp đúng khi luật cứng: điểm $\ge 600$ luôn được duyệt tự động. Fuzzy đúng khi ngưỡng chỉ là một yếu tố — vượt ngưỡng làm tăng khả năng được duyệt nhưng cán bộ tín dụng vẫn có quyền quyết (override). Fuzzy RDD thực chất dùng "vượt ngưỡng" làm instrument cho treatment thật → nối lại với IV ở trên, ước lượng LATE tại ngưỡng.

Giả định phải kiểm tra

RDD chỉ đúng nếu quanh ngưỡng thực sự "ngẫu nhiên". Hai giả định then chốt:

  1. Không thao túng (no manipulation) quanh ngưỡng. Nếu cá thể tự đẩy mình qua ngưỡng một cách có chủ đích (ví dụ khách biết cutoff 600 và "chạy" hồ sơ để đúng 601), thì quanh ngưỡng không còn ngẫu nhiên — người ở 601 khác hệ thống với người ở 599. Kiểm tra bằng McCrary test / density test: vẽ mật độ running variable quanh cutoff; nếu có dồn cục (bunching) đột ngột ngay trên ngưỡng → dấu hiệu thao túng → RDD không dùng được.
  2. Các biến khác liên tục qua ngưỡng. Mọi đặc điểm nền (tuổi, thu nhập, số dư...) phải liên tục tại cutoff — chỉ có treatment được phép nhảy. Kiểm tra bằng cách chạy RDD với từng biến nền làm "outcome giả": nếu chúng cũng nhảy tại cutoff → có gì đó ngoài treatment thay đổi tại ngưỡng, ước lượng bị nhiễm.

Bandwidth và dạng hàm

Hai lựa chọn kỹ thuật quyết định chất lượng ước lượng:

  • Bandwidth (băng thông $h$): chỉ dùng dữ liệu trong khoảng $[\text{cutoff} - h, \text{cutoff} + h]$. Băng thông hẹp → so sánh sạch hơn (các điểm càng giống nhau) nhưng ít dữ liệu → phương sai lớn. Băng thông rộng → nhiều dữ liệu nhưng dễ nhiễm bias do dạng hàm. Đây là đánh đổi bias–variance kinh điển; thực hành dùng bandwidth tối ưu (Imbens–Kalyanaraman) và kiểm tra độ nhạy với nhiều bandwidth.
  • Dạng hàm (functional form): khớp tuyến tính hay đa thức bậc cao cho $Y$ theo running variable ở mỗi bên. Đa thức bậc quá cao dễ tạo bước nhảy giả. Thực hành hiện đại ưa local linear regression (hồi quy tuyến tính cục bộ) trong bandwidth hẹp thay vì đa thức toàn cục bậc cao.

Vì sao RDD rất hợp ngân hàng

Ngân hàng ra rất nhiều quyết định theo cutoff cứng, tạo ra vô số cơ hội RDD tự nhiên:

  • Điểm tín dụng $\ge$ ngưỡng → duyệt / từ chối vay (xem scorecard & credit scoring).
  • Hạn mức thẻ theo bậc thu nhập.
  • Điều kiện ưu đãi (miễn phí, lãi suất tốt) khi số dư $\ge$ mốc.
  • Phân khúc khách hàng ưu tiên theo ngưỡng tài sản.

Mỗi ngưỡng này là một "thí nghiệm sẵn có" — chỉ cần dữ liệu quanh cutoff là ước lượng được tác động nhân quả của chính quyết định đó, không cần chạy thử nghiệm mới.


IV vs RDD vs Matching: chọn cái nào

Tiêu chíMatching/PropensityIVRDD
Xử lý confounder ẩn?Không (nếu instrument hợp lệ) (quanh ngưỡng)
Cần gìĐã đo hết confounderMột instrument $Z$ hợp lệTreatment quyết bởi cutoff
Ước lượngATE / ATTLATE (compliers)Tác động tại ngưỡng
Điểm yếuConfounder ẩnExclusion không test được; weak instrumentChỉ đúng tại cutoff; cần dữ liệu quanh ngưỡng

Quy tắc chọn: có cutoff cứng → nghĩ RDD trước (mạnh, dễ biện luận nhất). Không có cutoff nhưng có một nguồn biến thiên ngoại sinh (khuyến khích ngẫu nhiên, thay đổi quy định) → IV. Chỉ khi tin đã đo hết confounder → matching/propensity.


Use case thực tế

Bối cảnh. NCB muốn biết: việc được DUYỆT khoản vay có làm khách hàng thay đổi hành vi vỡ nợ so với nếu bị từ chối không? Câu hỏi khó vì self-selection và confounder ẩn: khách được duyệt vốn đã có hồ sơ tốt hơn (số dư, thu nhập, ý thức tài chính — biến ẩn) → so thẳng "tỷ lệ vỡ nợ của người được duyệt vs bị từ chối" hoàn toàn lẫn lộn.

Áp dụng RDD. Quy định NCB (minh hoạ): điểm tín dụng $\ge 600$ → tự động duyệt; $< 600$ → chuyển thẩm định thủ công (đa số bị từ chối). Đây là một sharp/fuzzy RDD với running variable = điểm tín dụng, cutoff = 600.

Các bước:

  1. Chọn bandwidth: chỉ lấy khách có điểm trong $[560, 640]$ (minh hoạ) — quanh ngưỡng, gần như tương đương.
  2. McCrary test: vẽ mật độ điểm tín dụng. Nếu thấy dồn cục bất thường ngay tại 600–605 → nghi thao túng (khách/nhân viên "chạy" điểm) → dừng lại. Giả sử mật độ mượt → qua.
  3. Kiểm tra biến nền: xác nhận thu nhập, tuổi, số dư liên tục tại 600 (không nhảy).
  4. Khớp local linear mỗi bên ngưỡng cho outcome = tỷ lệ vỡ nợ 12 tháng, đo bước nhảy tại 600.
  5. Kết quả (minh hoạ): so thẳng cho "người được duyệt vỡ nợ thấp hơn 15 điểm %" — nhưng RDD tại ngưỡng chỉ còn bước nhảy +4 điểm % (được duyệt làm tăng nhẹ tỷ lệ vỡ nợ so với không được duyệt, vì gánh nợ mới), CI 95% [+1, +7]. Phần lớn "chênh 15%" ban đầu là do khách bên trên ngưỡng vốn tốt hơn — confounding, không phải tác động của việc được duyệt.
  6. Diễn giải đúng phạm vi: con số chỉ đúng cho khách quanh điểm 600 (marginal borrowers), không phóng chiếu cho khách điểm 750 hay 450.

Biến thể IV. Với một chương trình khuyến khích tham gia gói tài chính, NCB gửi lời mời ưu đãi cho một nhóm ngẫu nhiên. Lời mời = instrument $Z$ (randomize → independence đảm bảo), tham gia thật = $T$. 2SLS: stage 1 hồi quy "tham gia" theo "được mời"; stage 2 hồi quy outcome theo phần tham gia dự đoán. Cho LATE trên nhóm compliers (người tham gia vì được mời). Kiểm tra F-stat stage 1 > 10 để chắc lời mời đẩy tham gia đủ mạnh.

Minh hoạ SQL — so sánh quanh một ngưỡng. Sandbox không có bảng điểm tín dụng/khoản vay. Để minh hoạ cơ chế "so nhóm ngay trên vs ngay dưới một ngưỡng trên biến chạy", ta lấy balance làm running variable giả lập và mốc 10 triệu làm cutoff, so trung bình giá trị giao dịch của nhóm ngay dướingay trên mốc (trong một dải hẹp quanh mốc — mô phỏng bandwidth):

-- ▶ Chạy được
WITH acc AS (
  SELECT
    a.id AS account_id,
    a.balance,
    CASE WHEN a.balance >= 10000000 THEN 'tren_nguong' ELSE 'duoi_nguong' END AS side
  FROM accounts a
  WHERE a.balance BETWEEN 8000000 AND 12000000   -- dải hẹp quanh cutoff = bandwidth minh hoạ
)
SELECT
  ac.side,
  COUNT(DISTINCT ac.account_id)          AS n_accounts,
  COUNT(t.id)                            AS n_txn,
  ROUND(AVG(t.amount)::numeric, 2)       AS avg_amount,
  ROUND(AVG(ac.balance)::numeric, 2)     AS avg_balance
FROM acc ac
LEFT JOIN transactions t ON t.account_id = ac.account_id
GROUP BY ac.side
ORDER BY ac.side;

Hai dòng kết quả (duoi_nguong vs tren_nguong) chỉ chênh nhau chút ít về avg_balance (vì đều nằm trong dải hẹp 8–12 triệu) nhưng nằm hai bên mốc 10 triệu. Chênh avg_amount giữa hai bên là tinh thần của bước nhảy RDD tại cutoff. ::numeric đảm bảo ROUND chạy đúng trên PostgreSQL. (Nhắc lại: đây chỉ là minh hoạ cú pháp so sánh quanh ngưỡng — balance/mốc 10 triệu là giả lập, không phải một quyết định tín dụng thật; RDD thật cần local linear + kiểm tra McCrary + kiểm tra biến nền như đã nêu.)


Ghi nhớ

  • IV và RDD là hai thiết kế bán thực nghiệm (quasi-experiment) vẫn vững trước confounder ẩn — khác hẳn matching/propensity vốn chỉ chỉnh confounder đã đo.
  • IV (biến công cụ): khi $T$ nội sinh, tìm biến $Z$ đẩy $T$ nhưng chỉ chạm $Y$ qua $T$; dùng phần biến thiên ngoại sinh của $T$ (do $Z$) để ước lượng nhân quả.
  • Ba điều kiện instrument: relevance ($Z\to T$ mạnh — test được, F > 10), exclusion restriction ($Z$ không tác động $Y$ trực tiếp — không test được, phải biện luận), independence ($Z$ như ngẫu nhiên).
  • 2SLS: stage 1 dự đoán $\hat T$ từ $Z$; stage 2 hồi quy $Y$ theo $\hat T$. Trường hợp đơn giản = tỷ số Wald $\text{Cov}(Y,Z)/\text{Cov}(T,Z)$.
  • IV cho LATE — chỉ đúng cho nhóm compliers (người đổi hành vi theo $Z$), không phải ATE toàn quần thể. Cảnh báo weak instrument (F thấp → thiên lệch nặng).
  • RDD (hồi quy gián đoạn): khi treatment quyết bởi ngưỡng trên running variable; so cá thể ngay trên vs ngay dưới cutoff (gần như ngẫu nhiên) → tác động tại ngưỡng.
  • Sharp (vượt ngưỡng ⇒ chắc chắn treatment) vs fuzzy (chỉ tăng xác suất → kết hợp IV). Giả định: không thao túng quanh ngưỡng (McCrary/density test) và biến nền liên tục tại cutoff. Chú ý bandwidth (đánh đổi bias–variance) và dạng hàm (ưu tiên local linear).
  • Rất hợp ngân hàng: vô số quyết định theo cutoff (điểm tín dụng, hạn mức, điều kiện ưu đãi) → RDD sẵn có để đo tác động của việc được duyệt lên hành vi/vỡ nợ. Kết quả chỉ đúng cho nhóm quanh ngưỡng (marginal), đừng phóng chiếu ra toàn bộ khách.

Bài viết liên quan

Phân biệt ước lượng điểm và ước lượng khoảng, cách xây khoảng tin cậy (CI) bằng margin of error z*·SE / t*·SE, đánh đổi mức 90/95/99%, và cách DIỄN GIẢI ĐÚNG khoảng tin cậy (95% CI không phải xác suất tham số nằm trong khoảng). Có CI cho trung bình và cho tỷ lệ, ảnh hưởng của cỡ mẫu, cùng ví dụ ngân hàng về tỷ lệ nợ xấu và số dư trung bình.

13 thg 7, 2026 4

Kimball dimensional modeling: bảng fact/dimension, star vs snowflake, grain, và Slowly Changing Dimension.

13 thg 7, 2026 3

Khối OLAP, các thao tác drill-down/roll-up/slice & dice/pivot, OLAP vs OLTP và ROLAP/MOLAP/HOLAP.

13 thg 7, 2026 3

Từ nguồn dữ liệu qua ETL/ELT vào Data Warehouse, Data Mart đến dashboard; staging, ODS, batch vs streaming.

13 thg 7, 2026 3