Transition matrix for Probability of Default (PD) Model #1

A likelihood of a default over a particular time horizon.

Sasiwut Chaiyadecha
3 min readJan 19, 2022

ไหน ๆ ก็เรื่อง IFRS 9 กันมาอย่างยาวนานแล้ว คงไม่เขียนถึง Model ประเภทนี้ได้ เพราะแน่ใจว่าต้องเคยกันผ่านตาอยู่บ่อย ๆ นั่นคือ Transition matrix ไม่ว่าจะเป็นของ Moody’s หรือ S&P ก็มี Matrix ของ Probability of Default ให้เห็นกันอยู่บ่อย ๆ

เนื้อหาของ Blog ตอนนี้เลยเป็นเรื่องราวการพัฒนา Transition matrix เพื่อพัฒนาต่อไปเป็น PD Model ทั้ง Unbias และ Lifetime สำหรับ IFRS 9 รวมไปถึง Assumption ต่าง ๆ ที่ใช้ในการพัฒนาให้ได้ Transition matrix ออกมา

the matrix transition matrix pd model probability of default ifrs9 แบบจำลองความเสี่ยง credit risk มาตรฐานบัญชีใหม่ tfrs9 matrix multiplication python pandas dataframe

จริง ๆ เนื้อหาที่เกี่ยวกับ Transition matrix ที่เคยเขียนไว้ก่อนหน้านี้คือ Forward-looking model ที่พัฒนาต่อมาจาก Transition matrix ที่เป็น Unbias เนื้อหาทั้งสองตอนนั้นอาจไม่ได้ใช้ Data จากชุดที่กำลังจะเขียนใน Blog ตอนนี้ แต่วิธีการสามารถนำไปใช้ได้เหมือนกัน

Transition matrix

Transition matrix รูปแบบการแสดงผลแบบนึงที่อาศัยตาราง เพื่อบอก Probability ของการเปลี่ยนแปลงในช่วงเวลาหนึ่ง (Transition probability) ซึ่งการเปลี่ยนแปลงที่ว่าอาจเป็นการย้าย Stage ของลูกหนี้ ที่จากเดิมเคยเป็นลูกหนี้ชั้นดี แต่เมื่อเวลาผ่านไปลูกหนี้อาจมีการค้างชำระหนี้ หรือผิดนัดชำระหนี้ เป็นต้น รูปแบบของ Transition matrix ที่คุ้นเคยส่วนใหญ่ เช่น ตราสารหนี้ที่ออกมาเป็น Rating ต่าง ๆ

แต่เนื้อหาของ Blog ตอนนี้เป็นการนำ Transition matrix มาใช้เพื่อการพัฒนาแบบจำลอง PD Model ที่ใช้ใน IFRS 9

Unbias model

การใช้ Concept ของ Transition matrix เพื่อพัฒนาแบบจำลอง PD เริ่มจากต้องมี Historical data เพื่อใช้ในการพัฒนาแบบจำลอง จากนั้นต้องมีการกำหนด Criteria สำหรับกลุ่มลูกหนี้ที่เกิดการ Default เช่นค้างชำระมากกว่า 90 วัน เป็นต้น

the matrix transition matrix pd model probability of default ifrs9 แบบจำลองความเสี่ยง credit risk มาตรฐานบัญชีใหม่ tfrs9 matrix multiplication python pandas dataframe loan default prediction model

เมื่อแบ่งกลุ่มลูกหนี้ได้ออกเป็น 2 กลุ่มคือ Performing loan และ Default loan (Non-performing loan) แล้ว จากตัวอย่างเห็นได้ว่า ลูกหนี้ในกลุ่ม Performing loan ยังสามารถแบ่งออกได้ตามระดับความเสี่ยงอีก เช่น กลุ่มไม่ค้างชำระหนี้ กลุ่มค้างชำระหนี้มาแล้ว 1 งวด เป็นต้น

the matrix transition matrix pd model probability of default ifrs9 แบบจำลองความเสี่ยง credit risk มาตรฐานบัญชีใหม่ tfrs9 matrix multiplication python pandas dataframe loan default prediction model

เมื่อได้ลูกหนี้เป็นกลุ่มต่าง ๆ แล้ว สามารถทำการ Observe ได้ตาม Performance window ที่กำหนด เช่น กำหนด Performance window ที่ 12 เดือน หมายความให้ทำการ Observe ลูกหนี้จากช่วงเวลาใด ๆ ไปข้างหน้าอีก 12 เดือน เพื่อดูว่า ณ เดือนที่ 12 ลูกหนี้จะย้าย Stage หรือเปลี่ยน Status เป็นอย่างไร ทั้งหมดนี้เพื่อหาโอกาส หรือความน่าจะเป็นที่เกิดขึ้นในข้อมูล ในความเป็นจริงข้อมูลอาจไม่ได้เหมือนตัวอย่าง 100% เพราะเมื่อเลื่อนจุด Observation ไปเรื่อย ๆ โอกาสที่จะ Observe จากคนที่ Nearly default แล้วกลับไปเป็น Still good ก็เกิดขึ้นได้เช่นกัน

the matrix transition matrix pd model probability of default ifrs9 แบบจำลองความเสี่ยง credit risk มาตรฐานบัญชีใหม่ tfrs9 matrix multiplication python pandas dataframe loan default prediction model

จากนั้นให้นับคนเพื่อสร้างเป็น Transition matrix ขึ้นมา การสร้างสามารถได้ด้วยวิธี Crosstab กันระหว่าง 2 Columns เพื่อนับคนว่าจาก Observation point ไปจนถึง A given window มีการเปลี่ยนแปลงเป็นอย่างไรบ้าง ตัวอย่างเช่นที่ Aging = 0 เมื่อเวลาผ่านไป 12 เดือน (Aging12) มีคนที่ Status ยังเป็น 0 ทั้งหมดกี่คน เป็นต้น ดังนั้นจึงสามารถมองวิธีการนับนี้ได้เหมือน Concept group by ด้วย Key คือ Aging และ Aging12

the matrix transition matrix pd model probability of default ifrs9 แบบจำลองความเสี่ยง credit risk มาตรฐานบัญชีใหม่ tfrs9 matrix multiplication python pandas dataframe loan default prediction model

เมื่อรวมจำนวนทั้งหมดในช่วง Historical data แล้วหารด้วยจำนวน Observation (N) ตั้งต้นทั้งหมด (ณ จุดที่ Observed) ค่าที่ออกมาคือ Average ของ Probability ของการเปลี่ยน Stage ทั้งหมดและ Matrix เฉลี่ยนี้คือ Unbias PD Model ข้อสังเกตคือ %รวมของแต่ละ Row ต้องมีค่าไม่เกิน 100%

the matrix transition matrix pd model probability of default ifrs9 แบบจำลองความเสี่ยง credit risk มาตรฐานบัญชีใหม่ tfrs9 matrix multiplication python pandas dataframe loan default prediction model

สำหรับวิธีการอ่าน Transition matrix ให้อ่านจาก “ซ้ายไปขวา” เช่นที่ Aging 0 เมื่อเวลาผ่านไป 12 เดือน จะมีคนที่ยังอยู่ Aging 0 ทั้งหมด 80.41% หรือที่ Aging 2 เมื่อเวลาผ่านไป 12 เดือน จะมีคนตกไปอยู่ Aging 3 ทั้งหมด 19.53% เป็นต้น

Unbias lifetime PD Model

เมื่อได้เป็น Base matrix มาแล้ว Matrix นี้ถือเป็นค่าเฉลี่ยจากข้อมูลทั้งหมดใน Historical period ต่อมาเป็นการสร้าง Unbias lifetime PD Model จาก Transition matrix สามารถทำได้ด้วยจากใช้ Matrix multiplication (Markov chains matrix multiplication) หรือการคูณ Matrix

the matrix transition matrix pd model probability of default ifrs9 แบบจำลองความเสี่ยง credit risk มาตรฐานบัญชีใหม่ tfrs9 matrix multiplication python pandas dataframe loan default prediction model

จากรูปคือขั้นตอนการคูณ Matrix โดยเริ่มจาก Base matrix ให้ถือว่าเป็น PD ของปีที่ 1 เมื่อทำการ “คูณด้วยตัวของมันเอง” ผลที่ได้ออกมาคือ Cumulative PD ของปีที่ 2 ต่อมาเมื่อต้องการหา Cumulative PD ของปีที่ 3 ให้นำ Cumulative PD ของปีที่ 2 คูณกับ Base PD หรือคือ Matrix ของปีที่ 1 เมื่อ Repeat process นี้ไปเรื่อย ๆ สิ่งที่ได้ออกมาคือ Cumulative PD หรือ Lifetime term structure ตามจำนวนครั้งที่คูณ

ในทางปฏิบัติแล้ว Matrix multiplication เป็นขั้นตอนที่ค่อนข้างง่าย สามารถจบได้ด้วยสูตร =MMULT(matrix1, matrix2) ที่อยู่ใน Excel แต่สำหรับรายละเอียดเกี่ยวกับ Markov chains ว่าทำไมการคูณ Matrix ถึงให้เป็นค่า Cumulative PD ออกมา สามารถดูรายละเอียดเพิ่มเติมได้จาก Link ด้านล่าง

Conclusion

ทั้งหมดนี้เป็น Overview concept สำหรับการสร้าง Transition matrix แพลนตอนแรกคือ อยากทำ Code ให้จบตั้งแต่ตอนนี้เลย แต่เขียนจบแล้วปรากฎว่าเนื้อหาค่อนข้างยาวไป เลยขอยกการ Apply ใช้กับข้อมูลจริงไปไว้ที่ตอนหน้า เพื่อพัฒนา PD Model ด้วยภาษา Python

--

--