Nhân quả 1 — Vì sao cần suy luận nhân quả

13 thg 7, 2026 2 lượt xem
#bi
#causal-inference
#causality
#counterfactual
#confounding

Vì sao ra quyết định cần suy luận nhân quả?

Mọi quyết định kinh doanh đều là một câu hỏi nhân quả trá hình: "Nếu ta làm X thì Y sẽ thay đổi thế nào?" Ngân hàng tung chương trình miễn phí chuyển khoản — có thực sự làm tăng số giao dịch không, tăng bao nhiêu? Gọi điện chăm sóc nhóm khách sắp rời bỏ — có giữ chân được không, hay chỉ tốn tiền tổng đài? Nới hạn mức thẻ tín dụng — làm khách chi tiêu nhiều hơn hay chỉ dịch chuyển chi tiêu vốn có?

Những câu hỏi này KHÔNG trả lời được bằng phân tích tương quan thông thường. Dashboard cho thấy "khách tham gia chương trình miễn phí giao dịch nhiều gấp đôi khách không tham gia" — nhưng con số đó gần như vô dụng cho quyết định, vì nhóm tự nguyện tham gia vốn đã là nhóm khách tích cực. Ta không biết bao nhiêu phần chênh lệch là do chương trình gây ra và bao nhiêu là do khác biệt sẵn có giữa hai nhóm.

Suy luận nhân quả (causal inference) là bộ công cụ để trả lời đúng câu hỏi "làm X thì Y thay đổi bao nhiêu", tách phần do can thiệp gây ra khỏi phần do trùng hợp / khác biệt nền. Đây là nền tảng của mọi quyết định dựa trên dữ liệu có trách nhiệm: đầu tư ngân sách, đổi chính sách tín dụng, thay đổi sản phẩm.

Series này đã được đặt nền ở tương quan & hồi quy, A/B testingcác cạm bẫy thống kê. Bài này đào sâu và hệ thống hoá khung tư duy, rồi mở lộ trình 8 bài.


Tương quan ≠ nhân quả — bốn cơ chế lừa dối

Câu khẩu hiệu "correlation is not causation" ai cũng thuộc, nhưng ít người biết vì sao tương quan có thể xuất hiện mà không có nhân quả. Có bốn cơ chế chính.

1. Biến gây nhiễu (confounder)

Một biến thứ ba C tác động lên CẢ can thiệp T lẫn kết quả Y, tạo ra tương quan T–Y giả tạo. Ví dụ: khách dùng mobile banking nhiều (T) có tỷ lệ vỡ nợ thấp (Y). Confounder là độ tuổi / thu nhập / trình độ số: người trẻ, thu nhập ổn định vừa hay dùng app vừa trả nợ tốt. App không "gây ra" trả nợ tốt.

Đây là kẻ thù số một của suy luận nhân quả. Toàn bộ bài 3–7 xoay quanh việc khử confounder.

2. Tương quan giả (spurious correlation)

Hai biến biến thiên cùng nhau hoàn toàn do trùng hợp hoặc do cùng bị kéo bởi một xu hướng thời gian. Số máy ATM lắp mới mỗi năm và doanh số bảo hiểm nhân thọ có thể tương quan 0.9 chỉ vì cả hai đều tăng theo tăng trưởng kinh tế. Không có chút nhân quả nào giữa chúng.

3. Nhân quả ngược (reverse causality)

Ta tưởng T→Y nhưng thực ra Y→T. Ví dụ: quan sát thấy khách có số dư cao (Y) thường được ngân hàng gọi tư vấn đầu tư (T), kết luận "gọi tư vấn làm tăng số dư". Thực tế ngược lại: nhân viên ưu tiên gọi khách vốn đã giàu. Chiều nhân quả bị đảo.

4. Thiên lệch chọn mẫu (selection bias)

Cách dữ liệu được chọn vào phân tích tạo ra liên hệ giả. Kinh điển là survivorship bias: phân tích chỉ trên khoản vay đã tất toán bỏ qua những khoản đã bị xoá nợ. Hoặc self-selection: khách tự nguyện tham gia chương trình khác hệ thống với khách không tham gia — chính là bài toán mở đầu ở trên.

Bốn cơ chế này không loại trừ nhau. Một phân tích thực tế thường dính vài cái cùng lúc. Kỹ năng cốt lõi là hỏi: "Ngoài giả thuyết T gây ra Y, còn cách giải thích nào khác cho tương quan tôi đang thấy?"


Khung khái niệm: potential outcomes

Để nói chuyện nhân quả một cách chính xác, ta cần từ vựng của mô hình potential outcomes (kết quả tiềm năng), do Donald Rubin chuẩn hoá.

  • Treatment / can thiệp (T): hành động ta muốn đánh giá. Thường nhị phân: T=1 (được can thiệp), T=0 (không). Ví dụ: được nhận ưu đãi miễn phí giao dịch hay không.
  • Outcome / kết quả (Y): thứ ta đo. Ví dụ: số giao dịch trong 90 ngày sau.
  • Potential outcomes: với MỖI khách có hai kết quả tiềm năng — Y(1) nếu được can thiệp và Y(0) nếu không. Với một khách cụ thể, hiệu ứng nhân quả cá nhân là Y(1) − Y(0).

Counterfactual và vấn đề cơ bản

Vấn đề: với mỗi khách ta chỉ quan sát được một trong hai. Khách được nhận ưu đãi → ta thấy Y(1), còn Y(0) — điều gì sẽ xảy ra NẾU chính khách đó không được nhận ưu đãi — là counterfactual (kết quả phản thực), không bao giờ quan sát được. Nửa còn lại vĩnh viễn thiếu.

Đây gọi là "vấn đề cơ bản của suy luận nhân quả" (fundamental problem of causal inference): hiệu ứng nhân quả là hiệu của hai đại lượng mà ta chỉ đo được một. Mọi phương pháp trong series thực chất là các cách ước lượng counterfactual còn thiếu — đi tìm một nhóm "giống hệt nhưng không được can thiệp" để đại diện cho Y(0).

Treatment effect: ATE và ATT

Vì không đo được hiệu ứng cá nhân, ta ước lượng hiệu ứng trung bình:

Đại lượngTênÝ nghĩa
ATEAverage Treatment EffectE[Y(1) − Y(0)] trên toàn bộ dân số — trung bình nếu áp can thiệp cho tất cả
ATTAverage Treatment effect on the TreatedE[Y(1) − Y(0) | T=1] — chỉ trên nhóm thực sự được can thiệp

Phân biệt quan trọng: đánh giá "chương trình đã chạy hiệu quả thế nào trên đúng nhóm khách đã tham gia" là ATT; còn "nếu mở rộng cho toàn bộ khách hàng thì tác động trung bình là bao nhiêu" là ATE. Hai con số có thể rất khác nhau khi nhóm tham gia không đại diện.


Confounder, mediator, collider — đừng nhầm

Ba loại biến thứ ba, nhìn qua giống nhau nhưng cách xử lý ngược nhau. Nhầm lẫn ở đây là nguồn gốc của rất nhiều phân tích sai.

  • Confounder (C→T, C→Y): nguyên nhân chung. BẮT BUỘC kiểm soát (đưa vào mô hình, phân tầng, matching). Không kiểm soát → tương quan T–Y thiên lệch.
  • Mediator (T→M→Y): nằm trên đường nhân quả từ T tới Y — là cơ chế T tác động lên Y. Nếu ta muốn tổng tác động của ưu đãi lên giao dịch thì KHÔNG được kiểm soát mediator (kiểm soát nó sẽ "chặn" chính hiệu ứng ta muốn đo).
  • Collider (T→K←Y): biến bị cả T và Y cùng gây ra. Kiểm soát/lọc theo collider TẠO RA tương quan giả giữa T và Y (ví dụ chỉ phân tích trên khách "đã được duyệt vay"). Đây chính là một dạng selection bias.

Quy tắc "cứ đưa hết mọi biến vào hồi quy cho chắc" là SAI: đưa mediator hay collider vào làm hỏng ước lượng. Bài 3 sẽ dùng DAG (đồ thị nhân quả có hướng) để quyết định chính xác biến nào cần kiểm soát.


Hai con đường xác định nhân quả

Con đường 1 — Thí nghiệm ngẫu nhiên (chuẩn vàng)

Trong RCT / A/B test, ta ngẫu nhiên hoá ai vào nhóm T=1 và ai vào T=0. Ngẫu nhiên hoá đảm bảo hai nhóm giống nhau về mọi mặt (cả biến ta biết lẫn không biết) TRỪ can thiệp. Khi đó nhóm đối chứng là counterfactual hợp lệ cho nhóm can thiệp, và chênh lệch trung bình Y̅(T=1) − Y̅(T=0) chính là ước lượng không thiên lệch của ATE. Confounder bị khử tự động. Đây là chuẩn vàng, và là chủ đề bài 2.

Con đường 2 — Nghiên cứu quan sát (observational)

Rất nhiều tình huống không thể thí nghiệm: không thể ngẫu nhiên bắt một nửa khách vỡ nợ, không thể ngẫu nhiên đổi chính sách lãi suất cho từng người, hoặc chương trình đã chạy xong trước khi ai nghĩ tới đo lường. Khi đó ta chỉ có dữ liệu quan sát — nhóm T tự chọn, đầy confounder.

Suy luận nhân quả từ dữ liệu quan sát là tái tạo điều kiện của thí nghiệm bằng phương pháp thống kê: matching, propensity score, difference-in-differences, biến công cụ... — chủ đề bài 3–7. Chúng đòi hỏi giả định mạnh (và không kiểm chứng được hoàn toàn), nên kết luận luôn yếu hơn RCT.


Cảnh báo bằng SQL: so sánh ngây thơ hai nhóm

Ví dụ minh hoạ cách một so sánh trực tiếp dễ sai vì confounding. Ta so trung bình giá trị giao dịch giữa hai nhóm khách chia theo currency của tài khoản. Giả sử ai đó định lấy chênh lệch này làm "tác động của việc dùng tài khoản ngoại tệ".

-- ▶ Chạy được
WITH tx_per_acc AS (
  SELECT a.currency,
         c.city,
         a.customer_id,
         AVG(t.amount) AS avg_tx
  FROM transactions t
  JOIN accounts   a ON t.account_id = a.id
  JOIN customers  c ON a.customer_id = c.id
  GROUP BY a.currency, c.city, a.customer_id
)
SELECT currency,
       COUNT(*)                              AS so_khach,
       ROUND(AVG(avg_tx)::numeric, 2)        AS tb_gia_tri_gd,
       ROUND(STDDEV(avg_tx)::numeric, 2)     AS do_lech
FROM tx_per_acc
GROUP BY currency
ORDER BY tb_gia_tri_gd DESC;

Giả sử kết quả cho thấy nhóm tài khoản USD có trung bình giao dịch cao hơn nhóm VND. Đây MỚI CHỈ là tương quan, chưa phải nhân quả. Loại tiền không "gây ra" giao dịch to; confounder là chân dung khách: người mở tài khoản ngoại tệ thường có thu nhập cao, giao dịch quốc tế, số dư lớn (biến city cũng có thể liên quan — khách ở các thành phố lớn khác hẳn). Kết luận "hãy khuyến khích mọi khách mở tài khoản USD để tăng giá trị giao dịch" là bẫy cổ điển. Để nói được nhân quả, ta cần so hai nhóm khách tương đồng (matching, bài 4) hoặc một thiết kế thí nghiệm.


Khi nào bạn thực sự cần causal inference?

Không phải phân tích nào cũng cần. Dùng bảng nhanh sau:

Mục tiêuCâu hỏiCần causal?
Mô tả / báo cáo"Tháng này bao nhiêu giao dịch?"Không — dashboard là đủ
Dự báo (prediction)"Khách này có khả năng rời bỏ không?"Không — mô hình phân loại là đủ
Ra quyết định can thiệp"Gọi chăm sóc có GIẢM rời bỏ không, giảm bao nhiêu?"Có — bắt buộc
Đánh giá chính sách"Đổi chính sách phí đã tác động thế nào?"

Điểm mấu chốt: dự báo (predict) khác can thiệp (intervene). Một mô hình dự báo tốt trả lời "ai sẽ rời bỏ"; nó KHÔNG trả lời "nếu ta gọi thì bao nhiêu người ở lại". Nhầm hai việc này khiến ngân hàng đổ ngân sách chăm sóc vào nhóm dự báo rời bỏ cao — trong khi nhiều người trong nhóm đó dù có gọi hay không cũng ở lại (hoặc dù gọi vẫn đi). Bài 7 (uplift modeling) giải chính xác bài toán "gọi ai để tạo khác biệt".


Lộ trình series

BàiSlugNội dung
1causal-01-overviewTổng quan (bài này)
2causal-02-experiments-rctThí nghiệm ngẫu nhiên / RCT — chuẩn vàng
3causal-03-confounding-dagConfounding & đồ thị nhân quả (DAG)
4causal-04-matching-propensityMatching & propensity score
5causal-05-didDifference-in-Differences
6causal-06-iv-rddBiến công cụ (IV) & hồi quy gián đoạn (RDD)
7causal-07-upliftUplift modeling — nhắm can thiệp
8causal-08-bankingỨng dụng tổng hợp trong ngân hàng

Use case thực tế

Bối cảnh: NCB chạy chương trình miễn phí chuyển khoản cho một nhóm khách hàng trong Q2, và muốn biết chương trình có thực sự làm tăng số giao dịch hay không, để quyết định có nhân rộng toàn hệ thống (chi phí ~8 tỷ/năm).

Cách làm SAI (naive): Team BI lấy nhóm 50.000 khách đã đăng ký chương trình, so với 200.000 khách không đăng ký:

  • Nhóm tham gia: trung bình 42 giao dịch/tháng.
  • Nhóm không tham gia: trung bình 18 giao dịch/tháng.
  • Kết luận vội: "chương trình tăng 24 giao dịch/khách → nhân rộng ngay".

Vì sao sai: khách tự nguyện đăng ký chương trình miễn phí chuyển khoản vốn đã là nhóm giao dịch nhiều (chính vì hay chuyển khoản nên họ mới quan tâm tới việc miễn phí). Đây là self-selection bias cộng confounding: chênh lệch 24 giao dịch phần lớn có SẴN trước khi chương trình chạy. Counterfactual còn thiếu — "nhóm tham gia sẽ giao dịch bao nhiêu NẾU không có chương trình" — chắc chắn cao hơn 18 rất nhiều.

Cách làm ĐÚNG (khung nhân quả):

  1. Nếu còn kịp: thiết kế RCT — chọn ngẫu nhiên nửa khách đủ điều kiện được nhận ưu đãi (T=1), nửa còn lại không (T=0). Ngẫu nhiên hoá khử self-selection. Chênh lệch trung bình chính là ATE (bài 2).
  2. Nếu chương trình đã chạy xong: dùng dữ liệu quan sát — matching / propensity score ghép mỗi khách tham gia với một khách không tham gia có hồ sơ tương đồng (tuổi, thu nhập, số dư, lịch sử giao dịch TRƯỚC chương trình), rồi so trên các cặp đã ghép (bài 4). Hoặc difference-in-differences so mức tăng giao dịch trước–sau giữa hai nhóm (bài 5).

Kết quả điển hình: sau khi khử confounder, hiệu ứng thật thường nhỏ hơn nhiều con số ngây thơ — ví dụ ATT thực chỉ +5 giao dịch/khách thay vì +24. Con số này mới là căn cứ đúng để tính ROI và quyết định nhân rộng. Chênh lệch giữa 24 và 5 chính là khoản mà team suýt "trả tiền cho hiệu ứng không có thật".


Ghi nhớ

  • Quyết định là câu hỏi nhân quả: "nếu làm X thì Y thay đổi bao nhiêu" — không trả lời được bằng tương quan hay dashboard.
  • Tương quan ≠ nhân quả vì bốn cơ chế: confounder, tương quan giả, nhân quả ngược, thiên lệch chọn mẫu.
  • Potential outcomes: mỗi đối tượng có Y(1) và Y(0), nhưng chỉ quan sát được một → counterfactual thiếu là vấn đề cơ bản của suy luận nhân quả.
  • ATE (toàn dân số) khác ATT (chỉ nhóm được can thiệp) — nói rõ đang ước lượng cái nào.
  • Confounder phải kiểm soát; mediator không (nếu muốn total effect); collider kiểm soát sẽ tạo thiên lệch. Đưa hết biến vào hồi quy là sai.
  • Hai con đường: RCT/A-B (chuẩn vàng, khử confounder tự động) và quan sát (cần giả định + phương pháp bài 3–7).
  • Predict ≠ intervene: mô hình dự báo giỏi vẫn không nói được tác động của can thiệp.
  • Banking: luôn nghi ngờ so sánh nhóm tự chọn (khách tham gia chương trình vốn đã tích cực) — hiệu ứng thật thường nhỏ hơn nhiều con số ngây thơ.

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