1 คะแนน โดย hanco1104 4 시간 전 | ยังไม่มีความคิดเห็น | แชร์ทาง WhatsApp

ต้นฉบับ: han-co.com · โค้ด·โน้ตบุ๊ก (ภาษาเกาหลี·ภาษาญี่ปุ่น): GitHub

ถ้าเพิ่มวงเงินบัตรเครดิตให้ใครสักคน ความน่าจะเป็นที่คนนั้นจะผิดนัดชำระหนี้จะเพิ่มขึ้นหรือลดลง? ตามสามัญสำนึกก็น่าจะเพิ่มขึ้น เพราะสามารถกู้ได้มากขึ้น แต่พอเปิดดูข้อมูลกลับเป็นตรงกันข้ามทั้งหมด บทความนี้คือบันทึกการคลี่คลายความย้อนแย้งนั้นด้วยการทำ debiasing ตรวจสอบด้วยข้อมูลสาธารณะ 3 ชุด และไปถึงข้อสรุปที่คาดไม่ถึงในตอนท้าย

ใน Part 0 เคยพูดถึงเรื่อง selection bias ไปแล้ว บทความนี้คือกรณีใช้งานจริงที่ selection bias ปะทะกับ causal inference แบบตรง ๆ ตัว causal inference เองจะอธิบายเชิงลึกแยกต่างหากในซีรีส์พื้นฐาน แต่ที่นี่จะพาไปดูก่อนหนึ่งก้าวว่ามันทำงานอย่างไรในงานจริง โค้ดและข้อมูลทั้งหมดที่ใช้เป็นข้อมูลเปิดสาธารณะล้วน ๆ

1. ข้อมูลที่สวนทางกับสัญชาตญาณโดยสิ้นเชิง

เริ่มจากข้อมูลบัตรเครดิตของไต้หวันก่อน เป็นข้อมูลสาธารณะของลูกค้าบัตร 30,000 คนในปี 2005 ของไต้หวัน ที่มีทั้งวงเงิน ยอดเรียกเก็บเงิน (ยอดคงค้าง) และสถานะว่าผิดนัดในเดือนถัดไปหรือไม่ (เผยแพร่ผ่าน UCI) เป็นข้อมูลสาธารณะที่หาได้ยากซึ่งมีทั้งวงเงิน ยอดคงค้าง และการผิดนัดครบในชุดเดียว จึงเหมาะเป็นจุดเริ่มต้น จากนั้นลองวาดอัตราหนี้เสียจริงตามช่วงวงเงิน

[IMG] อัตราหนี้เสียตามช่วงวงเงิน วงเงินยิ่งสูง อัตราหนี้เสียยิ่งต่ำ

อัตราหนี้เสียของกลุ่มล่างสุด 10% ตามวงเงินอยู่ที่ 35.9% ส่วนกลุ่มบนสุด 10% อยู่ที่ 11.9% วงเงินยิ่งสูง อัตราหนี้เสียยิ่งลดลงอย่างต่อเนื่อง (ค่าสหสัมพันธ์ −0.15)

กลุ่มที่ได้วงเงินสูงกว่าเกือบ 20 เท่ากลับมีหนี้เสียเพียงประมาณหนึ่งในสาม งั้นแปลว่าสามารถเพิ่มวงเงินได้แบบไม่ต้องกังวลหรือ? แน่นอนว่าไม่ใช่ ตรงนี้มีหลุมพรางอยู่

2. ผู้ร้ายคือตัว selection bias

วงเงินไม่ได้ถูกให้แบบสุ่ม แต่ถูกกำหนดตามโมเดลหรือกฎเดิม ๆ โดยให้วงเงินสูงกับคนที่มีเครดิตดีตั้งแต่แรก ดังนั้น “วงเงินสูง” จึงเป็นสัญญาณของ “คนที่เดิมทีก็จ่ายคืนได้ดี” ความสัมพันธ์เชิงลบระหว่างวงเงินกับการผิดนัดไม่ใช่ผลของวงเงิน แต่เป็นภาพลวงที่เกิดจากความน่าเชื่อถือทางเครดิตที่ซ่อนอยู่เบื้องหลังวงเงิน นี่คือตัวอย่างที่ selection bias จาก Part 0 ทำงานอย่างโจ่งแจ้งที่สุด

ถ้านำข้อมูลดิบไปเทรนตรง ๆ โมเดลจะเรียนรู้ว่า “วงเงินสูง = ปลอดภัย” ถ้าใช้โมเดลนี้จำลองคำถามว่า “ถ้าเพิ่มวงเงินล่ะ?” มันจะตอบว่าหนี้เสียลดลง การนำผลแบบนี้ไปใช้ตัดสินใจเชิงนโยบายจึงอันตราย

3. ทางแก้: เปลี่ยนวงเงินให้เป็น “ส่วนตกค้าง”

ไอเดียหลักเรียบง่ายมาก ถ้าเปรียบเทียบคนที่มีเครดิตเท่ากันแต่ต่างกันแค่วงเงิน ก็จะเห็นผลล้วน ๆ ของวงเงิน การ matching แบบสมบูรณ์ทำไม่ได้ จึงใช้วิธีนี้แทน

  1. ใช้ฟีเจอร์ด้านเครดิต (X) ทำนาย “วงเงินที่คาดว่าจะได้รับ” ของแต่ละคน (เลียนแบบวิธีการให้วงเงินเดิม)
  2. ค่าที่ได้จากวงเงินจริงลบด้วยวงเงินที่คาดการณ์ คือ residual ของวงเงิน (rL) ซึ่งเป็นส่วนของความแปรปรวนในวงเงินที่อธิบายด้วยเครดิตไม่ได้ และเกิดจากนโยบายหรือความบังเอิญ
  3. เปลี่ยนยอดคงค้างและการผิดนัดให้เป็น residual ด้วยวิธีเดียวกัน
  4. สร้างสายโซ่จาก residual ของวงเงินไปยัง residual ของยอดคงค้าง แล้วต่อไปยังการผิดนัด (เส้นทาง วงเงิน→ยอดคงค้าง→ผิดนัด)
  5. การผิดนัดมีค่าเป็น 0 กับ 1 จึงปรับความต่างใน logit space แล้วนำค่าปรับนั้นไปบวกกับความน่าจะเป็นผิดนัดที่ทำนายไว้ตอนแรกเพื่อได้ค่าท้ายสุด

มีข้อควรระวัง 2 อย่าง อย่างแรก เพื่อป้องกัน data leakage ต้องสร้าง residual ด้วย cross-fitting เท่านั้น ถ้าให้โมเดลเห็นข้อมูลของตัวเอง residual จะเล็กลงแบบปลอม ๆ อย่างที่สอง ยิ่งการให้วงเงินมีความสม่ำเสมอสูง คนที่มี residual วงเงินมากจะยิ่งหาได้ยาก จึงต้องให้น้ำหนักเพิ่มกับตัวอย่าง “natural experiment” ที่หายากเหล่านี้ (คนที่ residual สูง)

โครงสร้างนี้เหมือนกับ Double Machine Learning (DML) ใน causal inference โดยสรุป DML คือ ทำนาย treatment (ในที่นี้คือวงเงิน) และ outcome (การผิดนัด) จากตัวแปรก่อกวน (เครดิต) ด้วย machine learning แล้วหักออก จากนั้นใช้ความสัมพันธ์ของ residual ที่เหลือเพื่อประมาณผลกระทบ แก่นสำคัญคือให้ machine learning ดูดซับ confounding ได้อย่างยืดหยุ่น แต่แยกด้วย cross-fitting เพื่อไม่ให้อคติของโมเดลไหลเข้าไปในการประมาณผล สุดท้ายแล้วก็คือการดึงเอา confounder อย่างความน่าเชื่อถือทางเครดิตออกจาก treatment ที่ชื่อว่าวงเงิน

ก่อนเริ่ม ต้องชี้ข้อจำกัดหนึ่งไว้ก่อน ฟีเจอร์ด้านเครดิตที่ใช้ควบคุมเป็นเพียง proxy ของเกณฑ์ให้วงเงินจริง ๆ (เช่น รายได้ คะแนนเครดิตภายนอก ฯลฯ) ดังนั้น debiasing จึงเป็นการ “ลด” อคติ ไม่ใช่ “ลบออกหมด” ยิ่งข้อมูลมีตัวแปรควบคุมด้านคุณภาพเครดิตที่อ่อนแอเท่าไร สัญญาณเชิงลบที่ยังเหลือหลังการกำจัดอคติก็อาจยังปะปนด้วยอคติที่กำจัดไม่หมด

4. การตรวจสอบครั้งที่ 1: บัตรเครดิตไต้หวัน — อคติหายไป แต่ผลกระทบก็แทบหายไปด้วย

เมื่อใช้ debiasing ความย้อนแย้งก็คลี่คลาย จากค่าสหสัมพันธ์เชิงปรากฏระหว่างวงเงินกับการผิดนัดที่ −0.15 ประมาณ 70% เป็นผลของ selection bias และผลโดยตรงที่เหลือหลังลบอคติออกมีค่าเป็นลบเล็กน้อย (−0.05) ซึ่งยังสวนทางกับสมมติฐาน (“วงเงิน↑→ผิดนัด↑”)

แล้วจะตรวจสอบสมมติฐานตรงไหน? ใช้การวาดอัตราหนี้เสียที่คาดการณ์ภายใต้สถานการณ์ counterfactual โดยเปลี่ยนวงเงินของทุกคนจาก 0.5 เท่าไปถึง 2 เท่า

[IMG] Counterfactual อัตราหนี้เสียที่คาดการณ์เมื่อเพิ่มวงเงิน

เส้นสีแดง (naive) ยังแสดงความย้อนแย้งเดิมว่า วงเงิน↑→ผิดนัด↓ ส่วนสายโซ่ยอดคงค้าง (สีน้ำเงิน) แทบแบนราบ ขณะที่สาย usage ratio และสายตรง (สีม่วง, สีเขียว) ยังรักษาค่าเชิงลบอ่อน ๆ ไว้

เมื่อวิเคราะห์ละเอียด จะพบประเด็นต่อไปนี้

  • วงเงิน→ยอดคงค้าง เป็นบวก (+) แต่มีอัตราการส่งผ่านเพียง 5.7% ซึ่งอ่อนมาก หมายความว่าเพิ่มวงเงิน 1 หน่วย ยอดคงค้างเพิ่มเพียง 0.057 หน่วย ถ้าเป็นสินเชื่อผ่อนชำระที่เบิกเต็มจำนวน ค่านี้จะใกล้ 100% แต่สำหรับวงเงินหมุนเวียนกลับแทบไม่ถูกใช้ จึงไม่ค่อยแปลงเป็นภาระจริง (sticky)
  • สัญญาณภาระที่แท้จริงไม่ใช่ยอดคงค้าง แต่เป็น usage ratio (ยอดคงค้าง/วงเงิน) และเมื่อเพิ่มวงเงิน usage ratio กลับลดลงมาก (−0.39, มี headroom มากขึ้น)
  • ถ้าแยกยอดคงค้างออกมาแล้วประมาณแบบเชิงเส้นอย่างสะอาด จะเห็นว่า ยอดคงค้าง→ผิดนัด เป็นบวกอย่างมีนัยสำคัญ (p=0.001) จึงสนับสนุนสมมติฐาน แต่ขนาดผลเล็กมาก

ตรงนี้มีบทเรียนเชิงระเบียบวิธีหนึ่งอย่าง ถ้าใช้ GBM ที่ยืดหยุ่นในขั้น residual ซึ่งสัญญาณอ่อน มันจะ overfit แม้ train AUC จะสูงขึ้น แต่ test AUC กลับต่ำกว่าโมเดลพื้นฐาน และช่องว่างระหว่าง train กับ test อยู่ที่ 0.047 มากกว่าของโมเดลพื้นฐานที่ 0.008 ถึงหกเท่า ในทางกลับกัน second stage แบบเชิงเส้นที่ใช้ residual อย่างเดียวมีช่องว่างเพียง 0.009 แทบไม่มีเลย และกู้คืนผลจริงได้สะอาดกว่า สัญญาณเชิงเหตุที่อ่อนอาจเหมาะกับโมเดลเชิงเส้นหรือโมเดลที่มี regularization มากกว่า

5. หลุมพรางอีกอย่าง: ช่วงเวลาสังเกตสั้นเกินไป

การผิดนัดในข้อมูลชุดนี้คือการค้างชำระ “เดือนถัดไป 1 เดือน” แต่โมเดลหนี้เสียในงานจริงมักดูไปข้างหน้า 12 เดือน ในช่วงเวลาสั้นมีอคติอีกแบบที่มีผลมากต่อการวิเคราะห์ นั่นคือ postponement คนที่ยังมีวงเงินเหลืออาจประคองตัวอยู่ได้อีกหนึ่งเดือนด้วย headroom นั้น ทำให้การผิดนัดถูกเลื่อนออกไปนอกหน้าต่างสังเกต ไม่ใช่ว่าหนี้เสียลดลง แต่แค่ถูกเลื่อนเวลา และถูกบันทึกว่า “ปลอดภัย”

อันนี้เป็นอคติคนละชนิด (survival, censoring) ที่ debiasing แบบกำจัด confounding จับไม่ได้ จึงลองขยายหน้าต่างสังเกตจาก 1 เดือนเป็น 5 เดือนเพื่อตรวจสอบ

[IMG] ผลของวงเงินหลัง debiasing เมื่อขยายหน้าต่างสังเกต

แม้ขยายหน้าต่าง ค่าเชิงลบ (−) ก็ไม่ได้พลิกเป็นบวก (+) (จาก −0.06 ที่ 1 เดือน เป็น −0.13 ที่ 5 เดือน) อย่างไรก็ตาม การทดลองนี้ยิ่งขยายหน้าต่าง ตัวแปรควบคุมเครดิตยิ่งบางลงจนเกิด confounding และ 5 เดือนก็ยังห่างไกลจาก 12 เดือนมาก สรุปคือ UCI (1 เดือน) ใช้ตรวจสอบปัญหา 12 เดือนไม่ได้

ดังนั้นจึงต้องการข้อมูลระยะยาวจริง

6. การตรวจสอบครั้งที่ 2: Lending Club — ระยะยาว และเป็นสินเชื่อที่ “เบิกไปแล้ว”

Lending Club คือแพลตฟอร์มกู้ยืมแบบ P2P ของสหรัฐฯ ใช้ข้อมูลเงินกู้ 230,000 รายการที่ปล่อยระหว่างปี 2007 ถึง 2013 และครบกำหนดไปแล้ว เมื่อครบกำหนดแล้วจึงรู้ผลลัพธ์สุดท้ายว่าปิดจบสมบูรณ์หรือถูก charge-off เมื่อนำ debiasing แบบเดียวกันมารัน ก็เห็นเส้นแบ่งสำคัญชัดเจน

[IMG] Lending Club สินเชื่อที่เบิกไปแล้วและวงเงินหมุนเวียน

  • loan_amnt (สินเชื่อที่เบิกไปแล้ว, สีเขียว): แม้หลัง debiasing ก็ยังเห็นชัดว่า สินเชื่อ↑→ผิดนัด↑ (p<0.0001) เพิ่มขึ้นสม่ำเสมอในหลายระดับความเสี่ยง และการลบอคติกลับยิ่งทำให้ผลเด่นชัดขึ้น สมมติฐานเป็นจริง
  • total_rev_hi_lim (วงเงินหมุนเวียนที่ยังไม่ได้ใช้, สีม่วง): แม้ในระยะยาว ผลกระทบก็แทบเป็น 0 เหมือนกับวงเงินใน UCI

แก่นของความต่างไม่ใช่หน้าต่างสังเกต แต่คือ “เป็นสินเชื่อที่เบิกไปแล้วหรือเป็นวงเงินที่ยังไม่ได้ใช้” สินเชื่อผ่อนชำระถูกเบิกเต็มจำนวนจึงกลายเป็นภาระ 100% แต่สำหรับวงเงินหมุนเวียน หากยังไม่ดึงมาใช้ก็ยังไม่ใช่ภาระ (headroom) สะพานที่เชื่อมสองสิ่งนี้คืออัตราการส่งผ่าน (วงเงิน→ยอดคงค้าง) และใน UCI ค่านี้มีเพียง 5.7% จึงทำให้ผลของวงเงินอ่อนมาก

7. การตรวจสอบครั้งที่ 3: บัตร Home Credit — นิยามหนี้เสียเปลี่ยน เครื่องหมายก็กลับด้าน

Home Credit เป็นข้อมูลที่เปิดผ่านการแข่งขัน Kaggle มีทั้งข้อมูล panel รายเดือนของบัตรเครดิต และข้อมูลสินเชื่อที่ยื่นขอ (ผ่อนชำระ) ก่อนอื่นลองใช้ข้อมูล panel ของบัตร หรือก็คือข้อมูลที่ติดตามวงเงินจริง ยอดคงค้าง และการค้างชำระของผลิตภัณฑ์หมุนเวียนเดียวกันนานหลายสิบเดือน เพื่อปิดประเด็นนี้ให้ชัด แต่ผลกลับพลิกอีกครั้ง คราวนี้เป็นสัญญาณเตือน

เมื่อดูบัตรที่ active จริงประมาณ 16,000 ใบ กลับพบว่า usage ratio ยิ่งสูง อัตราผิดนัดยิ่งต่ำ ซึ่งเป็นทิศทางตรงข้ามกับ UCI อย่างสิ้นเชิง ทำไมถึงเป็นแบบนั้น?

[IMG] UCI กับ Home Credit เครื่องหมายของเส้นทางจาก usage ratio ไปสู่การผิดนัดกลับด้าน

ฝั่งซ้าย UCI ยิ่ง usage ratio สูง อัตราหนี้เสียยิ่งเพิ่มขึ้น (ภาระจริง) ส่วนฝั่งขวา Home Credit หนี้เสียเกือบ 14% กระจุกอยู่เฉพาะกลุ่ม usage ratio ต่ำสุด (ยอดคงค้างแทบเป็น 0) ขณะที่กลุ่มอื่นอยู่ราว 0.1% เท่านั้น

สาเหตุชัดเจนมาก “การผิดนัด (SK_DPD≥90)” ของ Home Credit ไม่ได้จับภาระเครดิต แต่จับบัญชี dormant ที่ปล่อยยอดค้างเล็กน้อยไว้จนค้างชำระ สำหรับคนที่ใช้บัตรจริง การผิดนัดแทบเป็น 0 กล่าวคือ ถ้านิยาม outcome ของ “หนี้เสีย” ไม่ได้จับ credit loss แต่ไปจับ “การปล่อยทิ้งไว้” แทน ต่อให้ทำ debiasing ดีแค่ไหน เครื่องหมายก็กลับด้านทั้งชุด

8. การตรวจสอบครั้งที่ 4: สินเชื่อหลักของ Home Credit — ในที่สุดความย้อนแย้งก็กลับด้าน

จนถึงตอนนี้ แม้จะพยายามทำ debiasing แล้ว แต่ยังไม่มีข้อมูลชุดใดที่ความย้อนแย้งเดิมซึ่งเป็นลบ (−) ในข้อมูลดิบ จะพลิกเป็นบวก (+) หลัง debiasing อย่างไรก็ตาม ข้อมูลที่มีเงื่อนไขนั้นก็อยู่ข้าง ๆ กัน นั่นคือสินเชื่อที่ยื่นขอของ Home Credit ชุดเดียวกัน (ไม่ใช่บัตร แต่เป็นสินเชื่อหลัก อัตราหนี้เสีย 8%, 300,000 รายการ) มันเป็นสินเชื่อผ่อนชำระที่เบิกเต็มจำนวน และการผิดนัดก็เป็น credit loss จริง คราวนี้ยังควบคุมทั้งคะแนนเครดิตภายนอก (EXT_SOURCE) และรายได้ร่วมด้วย

[IMG] สินเชื่อหลักของ Home Credit debiasing พลิกความย้อนแย้งกลับด้าน

ด้านซ้าย (raw) คือความย้อนแย้งที่ว่าสินเชื่อยิ่งมาก การผิดนัดยิ่งต่ำ (ทั้ง 4 ตัวแปรเป็นลบ) ด้านขวา (หลัง debiasing) เมื่อตัดผลของเครดิตออก ก็พลิกเป็นบวก (+)

ตัวแปร raw correlation ค่าสัมประสิทธิ์หลัง debiasing ข้อสรุป
จำนวนเงินกู้ −0.030 +0.018 พลิกกลับ
ค่างวดรายเดือน −0.013 +0.059 (p≈10⁻²⁰) พลิกกลับ (ชัดที่สุด)
เงินกู้เทียบรายได้ −0.008 +0.046 พลิกกลับ
ราคาสินค้าที่ซื้อ −0.040 −0.010 ไม่พลิก

ค่าสัมประสิทธิ์ในตารางเป็นค่า logit coefficient ของ residual ที่ถูก standardize แล้ว จึงมีขนาดไม่ใหญ่ในตัวเอง ค่า +0.059 ของค่างวดรายเดือนหมายถึงเมื่อเพิ่มขึ้น 1 ส่วนเบี่ยงเบนมาตรฐาน odds ของการผิดนัดจะเพิ่มขึ้นราว 6% เนื่องจากมีข้อมูล 300,000 รายการ ค่า p จึงเล็กมากผิดปกติ แต่ความหมายไม่ใช่ “ผลใหญ่” หากคือ “มั่นใจได้ว่าเครื่องหมายเป็นบวก (+)” ข้ออ้างหลักของบทความนี้ไม่ได้อยู่ที่ขนาดผล แต่อยู่ที่ทิศทาง (จากลบพลิกเป็นบวก)

ที่น่าสนใจคือมีเพียงราคาสินค้าที่ซื้อ (AMT_GOODS_PRICE) เท่านั้นที่ไม่พลิก ซึ่งก็ตรงกับทฤษฎีอย่างแม่นยำ เพราะภาระที่ต้องชำระคือวงเงินกู้และค่างวด ไม่ใช่ราคาสินค้าโดยตรง

แล้วทำไมกรณีนี้ถึงพลิก แต่ UCI หรือวงเงินหมุนเวียนของ Lending Club ไม่พลิก? ต้องมีสองเงื่อนไขพร้อมกัน หนึ่ง ต้องเป็นสินเชื่อที่เบิกไปแล้ว (ภาระจริงที่ใช้เต็ม) จึงมีผลแท้จริงเป็นบวก (+) สอง ต้องมี selection bias แรงมาก (ยิ่งกู้เยอะยิ่งเป็นลูกค้าคุณภาพดี) จนข้อมูลดิบออกมาเป็นลบ (−) สินเชื่อหลักตรงตามทั้งสองเงื่อนไข จึงทำให้ข้อมูลดิบถูก selection bias บดบังจนเป็นลบ แต่เมื่อ debiasing แล้ว ผลภาระจริงที่เป็นบวกจึงโผล่ออกมา

9. สรุปภาพรวม: ความย้อนแย้งพลิกเมื่อไร

ประเภทของเครดิต raw วงเงิน-หนี้เสีย หลัง debiasing ตัวอย่าง
วงเงินหมุนเวียนที่ยังไม่ได้ใช้ ลบ (ความย้อนแย้ง) เกือบ 0 UCI, LC, HC card
สินเชื่อที่เบิกไปแล้ว, selection อ่อน บวก (ไม่เกิดความย้อนแย้ง) บวก เงินกู้ของ LC
สินเชื่อที่เบิกไปแล้ว, selection แรง ลบ (ความย้อนแย้ง) บวก (พลิกกลับ) สินเชื่อหลักของ HC

เมื่อทะลุผ่านข้อมูลทั้งสามชุด จะเหลือข้อสรุปสองอย่าง

  • “วงเงิน↑→ผิดนัด↑” ไม่ใช่กฎสากล วงเงินที่ยังไม่ถูกใช้ ถ้าไม่ดึงมาใช้ก็ไม่ใช่ภาระ จึงแทบไม่มีผล และเครื่องหมายของ usage ratio กับยอดคงค้างก็ขึ้นกับพอร์ตและนิยามหนี้เสีย
  • อย่างไรก็ดี หากเงื่อนไขตรงกัน ความย้อนแย้งสามารถพลิกกลับได้จริง debiasing จะลบค่าเชิงลบปลอม ๆ ออกและกู้คืนค่าเชิงบวกจริง (+) แต่จะเกิดได้เฉพาะกับเครดิตประเภทที่เป็นภาระจริงหลังเบิกใช้แล้วเท่านั้น

10. แล้วในงานจริงล่ะ

เมื่อนำผลนี้ไปใช้ในงานจริง อยากเน้นสองเรื่องก่อน

อย่างแรกคือข้อจำกัด ฟีเจอร์เครดิตที่ debiasing ใช้ควบคุมเป็นเพียง proxy ของเกณฑ์ให้วงเงินจริง จึงไม่ควรสรุปว่าผลที่เหลือคือ “เหตุบริสุทธิ์” โดยเฉพาะในข้อมูลที่ไม่มีรายได้หรือคะแนนภายนอกจนยากจะสร้างเครดิตที่แท้จริงซ้ำขึ้นมา อีกทั้งบทความนี้พูดถึงความน่าจะเป็นผิดนัด (PD) แต่ในงานจริง อัตราหนี้เสียมักคิดบนฐานจำนวนเงินขาดทุน ขณะที่จำนวนเงินขาดทุนเชื่อมกับวงเงินแบบเชิงกลโดยตรง (วงเงิน↑→exposure↑→จำนวนเงินขาดทุน↑) ดังนั้นแม้ใช้ข้อมูลชุดเดียวกัน เครื่องหมายก็อาจออกมาเป็นบวก (+) ได้ สิ่งที่เลือกเป็น outcome เปลี่ยนข้อสรุปได้

ดังนั้นต้องแยก “วิธี” ออกจาก “ข้อสรุป”

  1. วิธีการ (debiasing) ใช้ได้จริงและย้ายไปใช้ต่อได้ เมื่อมีผลบวก (+) ที่แท้จริงอยู่จริง (เช่น สินเชื่อที่เบิกไปแล้วของ Lending Club) วิธีนี้ก็กู้คืนผลนั้นได้อย่างสะอาด กรณีที่ข้อมูลอื่นออกมาเป็นลบ (−) ไม่ใช่ความล้มเหลวของวิธี แต่เป็นการสะท้อนอย่างถูกต้องว่า “เครดิตประเภทนั้นเดิมทีก็ไม่ได้เพิ่มการผิดนัด”
  2. ข้อสรุปเชิงทิศทางย้ายข้ามบริบทไม่ได้ จากข้อมูลสาธารณะไม่สามารถฟันธงว่า “ไม่ว่าพอร์ตไหน วงเงิน↑→ผิดนัด↑”
  3. มี 2 สิ่งที่ต้องเช็กให้ได้ในข้อมูลจริง อย่างแรกคืออัตราการส่งผ่าน (dBalance/dLimit) ว่าการเพิ่มวงเงินแปลงเป็นภาระที่ถูกเบิกใช้จริงมากแค่ไหน อย่างที่สองคือนิยามหนี้เสีย ว่าหนี้เสีย 12 เดือนจับ credit loss จริง หรือไปจับการปล่อยทิ้งไว้กับการค้างยอดเล็กน้อย

สองอย่างนี้เป็นตัวกำหนดเครื่องหมายของผลกระทบจากวงเงิน Debiasing เป็นเพียงจุดเริ่มต้น คำตอบจริงอยู่ที่พอร์ตของแต่ละคน


ภาคผนวก ข้อมูลและการทำซ้ำ

  • UCI "Default of Credit Card Clients" (ไต้หวัน, 30,000 รายการ, ค้างชำระ 1 เดือน)
  • Lending Club เงินกู้ครบกำหนดระหว่างปี 2007 ถึง 2013 (230,000 รายการ, charge-off)
  • Home Credit credit_card_balance panel บัตร และ application_train สินเชื่อหลัก (300,000 รายการ, หนี้เสีย 8%)
  • วิธีการ: การทำ residualization แบบ K-fold cross-fitting, isotonic calibration, residual weighting, second stage แบบเชิงเส้น (DML) Python (pandas, scikit-learn, lightgbm, statsmodels)
  • โค้ดและโน้ตบุ๊ก (ภาษาเกาหลี·ภาษาญี่ปุ่น): github.com/HangilKim11/blog-research

ตัวเลขและภาพทั้งหมดในบทความนี้สามารถทำซ้ำได้ด้วยข้อมูลสาธารณะทั้งหมด และข้อสรุปในเนื้อหาเป็นข้อสรุปสำหรับข้อมูลสาธารณะ ส่วนเครื่องหมายในข้อมูลจริงต้องตรวจสอบเองโดยตรงด้วยสองประเด็นข้างต้น


บทความนี้เผยแพร่ครั้งแรกบน han-co.com และลงพร้อมกันทั้งภาษาเกาหลีและภาษาญี่ปุ่น ต้นฉบับและสมัครรับข่าวสารทางอีเมล → https://han-co.com/ko/blog/credit-limit-debiasing

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น