1 puan yazan hanco1104 4 시간 전 | Henüz yorum yok. | WhatsApp'ta paylaş

Orijinal: han-co.com · Kod ve not defterleri (Korece·Japonca): GitHub

Kredi kartı limitini artırırsanız, o kişinin temerrüde düşme olasılığı artar mı, azalır mı? Sağduyuya göre artar gibi görünür. Çünkü daha fazla borç alabilir. Ama veriyi açıp baktığınızda tam tersi çıkar. Bu yazı, bu paradoksu debiasing ile çözüp üç açık veri kümesiyle doğrularken, sonunda beklenmedik bir sonuca ulaşan bir kayıttır.

Part 0'da seçim yanlılığı hikâyesini anlatmıştık. Bu yazı ise o seçim yanlılığının nedensel çıkarımla doğrudan karşı karşıya geldiği pratik bir örnek. Nedensel çıkarımın kendisini temel yazı dizisinde ayrıca derinlemesine ele alıyoruz; burada ise bunun pratikte nasıl çalıştığını bir adım önden gösteriyoruz. Kod ve verilerin tamamı yalnızca açık kaynaklardan kullanıldı.

1. Sezgiyle tam ters düşen veri

Önce Tayvan kredi kartı verisiyle başlayalım. Bu, 2005 yılında Tayvan’daki 30 bin kart müşterisi için her birinin limiti, fatura tutarı (bakiye) ve bir sonraki ay temerrüde düşüp düşmediğini içeren açık bir veri kümesi (UCI açık veri). Limit, bakiye ve temerrüdü aynı anda içeren nadir açık veri kümelerinden biri olduğu için iyi bir başlangıç noktası. Burada limit aralıklarına göre gerçek temerrüt oranını çizelim.

[IMG] Limit aralıklarına göre temerrüt oranı. Limit yükseldikçe temerrüt oranı düşüyor

En düşük %10’luk limit grubunda temerrüt oranı %35,9, en yüksek %10’luk grupta ise %11,9. Limit arttıkça temerrüt oranı istikrarlı biçimde düşüyor (korelasyon katsayısı −0.15).

Limitin neredeyse 20 kat daha yüksek verildiği grup, temerrüdü yalnızca üçte bir düzeyinde üretiyor. Bu, limiti rahatça artırabileceğimiz anlamına mı geliyor? Elbette hayır. Burada bir tuzak var.

2. Suçlu: seçim yanlılığı

Limit rastgele verilmez. Mevcut model ya da kurallara göre, baştan kredi niteliği daha iyi olan kişilere daha yüksek limit atanır. Bu yüzden "limit yüksek" demek aynı zamanda "zaten iyi geri ödeyecek kişi" sinyalidir. Limit ile temerrüt arasındaki negatif (−) ilişki, limitin etkisi değil; limitin arkasına gizlenmiş kredi kalitesinin yarattığı bir yanılsamadır. Bu, Part 0’da gördüğümüz seçim yanlılığının en açık çalıştığı örneklerden biridir.

Veriyi olduğu gibi eğitirseniz model "yüksek limit = güvenli" diye öğrenir. Bu modelle "limiti artırırsak?" diye simülasyon yaptığınızda, temerrüdün azalacağını söyler. Bu sonucu politika kararına doğrudan taşımak tehlikelidir.

3. Çözüm: limiti "artık"a çevirmek

Temel fikir basit. Kredi niteliği aynı olup yalnızca limitleri farklı kişileri karşılaştırırsanız, limitin saf etkisi görünür. Mükemmel eşleme mümkün olmadığı için bunun yerine şöyle yapıyoruz.

  1. Kredi niteliği özellikleri (X) ile her kişinin "beklenen limit"ini tahmin ediyoruz (mevcut limit atama yönteminin taklidi).
  2. Gerçek limitten beklenen limiti çıkardığımız değer limit artığıdır (rL). Bu, kredi niteliğiyle açıklanamayan; politika ya da tesadüfün yarattığı limit değişimidir.
  3. Bakiye ve temerrüdü de aynı şekilde artık hâline getiriyoruz.
  4. Limit artığından bakiye artığına, oradan da temerrüde giden zinciri kuruyoruz (limit→bakiye→temerrüt yolu).
  5. Temerrüt 0 ve 1 olduğu için farkı logit uzayında düzeltiyor, ilk tahmin edilen temerrüt olasılığına bu düzeltmeyi ekleyerek nihai değeri oluşturuyoruz.

Burada iki uyarı var. Birincisi, veri sızıntısını önlemek için artıklar mutlaka cross-fitting ile üretilmelidir. Kişiyi kendisine bakarak tahmin ederseniz artık yapay biçimde küçülür. İkincisi, limit ataması ne kadar tutarlıysa artığı büyük olan kişi o kadar az bulunur. Bu nadir "doğal deney" örneklerine (artığı büyük kişiler) daha fazla ağırlık veriyoruz.

Bu, nedensel çıkarımdaki Double Machine Learning (DML) ile aynı yapıdır. DML kısaca şöyle özetlenir: Tedaviyi (burada limit) ve sonucu (temerrüt) ayrı ayrı makine öğrenmesiyle karıştırıcı değişkenlerden (kredi niteliği) tahmin edip çıkarırsınız; ardından kalan artıklar arasındaki ilişkiden etkiyi tahmin edersiniz. Makine öğrenmesinin karıştırıcıyı esnek biçimde soğurması ama model yanlılığının etki tahminine sızmaması için cross-fitting ile ayrıştırılması kritik noktadır. Sonuçta yapılan şey, limit adlı tedaviden kredi niteliği adlı karıştırıcıyı ayıklamaktır.

Başlamadan önce bir sınıra daha işaret edelim. Kontrol ettiğimiz kredi niteliği özellikleri, gerçek limit atama kriterlerinin (gelir, dış kredi skoru vb.) yalnızca vekil değişkenleridir. Bu yüzden debiasing yanlılığı "azaltır", tamamen ortadan kaldırmaz. Kontrol değişkenleri zayıf veri kümelerinde, temizledikten sonra kalan negatif (−) ilişkiye temizlenememiş yanlılık karışmış olabilir.

4. Doğrulama 1, Tayvan kredi kartı: yanlılık kayboldu ama etki de neredeyse kayboldu

Debiasing uygulandığında paradoks çözüldü. Limit ile temerrüt arasındaki görünen −0.15 korelasyonun yaklaşık %70’i seçim yanlılığıydı; bunu çıkardıktan sonra kalan doğrudan etki küçük bir negatifti (−0.05). Bu, hipotezin ("limit↑→temerrüt↑") ters yönüdür.

Peki hipotezi nerede test edeceğiz? Karşı-olgusal (counterfactual) olarak, herkesin limitini 0.5 kat ile 2 kat arasında değiştirip tahmini temerrüt oranını çizdiğimiz grafikte.

[IMG] Karşı-olgusal. Limit artırıldığında tahmini temerrüt oranı

Kırmızı (naive), limit↑→temerrüt↓ paradoksunu aynen üretir. Bakiye zinciri (mavi) neredeyse dümdüzleşir. Kullanım oranı ve doğrudan (direct) zincirleri (mor, yeşil) zayıf bir negatif ilişkiyi korur.

Daha yakından bakınca şunları görüyoruz.

  • Limit→bakiye pozitif (+), ama geçiş oranı %5,7 ile zayıf. Yani limiti 1 artırdığınızda bakiye yalnızca 0.057 artıyor. Tamamı çekilen taksitli kredi olsaydı bu değer %100’e yakın olurdu; buna kıyasla revolving limit neredeyse kullanılmadığı için yüke pek dönüşmüyor (sticky).
  • Gerçek yük sinyali bakiye değil, kullanım oranıydı (bakiye/limit). Ve limiti artırdığınızda kullanım oranı tersine belirgin biçimde düşüyor (−0.39, yani nefes alanı oluşuyor).
  • Yalnızca bakiyeyi ayırıp doğrusal biçimde temiz tahmin ettiğinizde bakiye→temerrüt anlamlı bir pozitif (+) veriyor (p=0.001), yani hipotez doğrulanıyor. Ama büyüklüğü son derece küçük.

Buradan yöntem açısından da bir ders çıkıyor. Sinyalin zayıf olduğu artık aşamasında esnek bir GBM kullanırsanız aşırı öğrenme oluyor. Train AUC yükselirken test AUC temel modelden bile daha düşük kaldı; train-test farkı 0.047 ile temel modelin 0.008’ine göre altı kat büyüdü. Buna karşılık yalnızca artık kullanan doğrusal ikinci aşamada fark 0.009 ile neredeyse yok ve gerçek etki temiz biçimde geri kazanıldı. Zayıf nedensel sinyaller için doğrusal ya da düzenlileştirilmiş modeller daha uygun olabilir.

5. Bir tuzak daha: gözlem penceresi fazla kısa

Bu veride temerrüt "önümüzdeki 1 ay" gecikmesi olarak tanımlanıyor. Pratikteki zarar modeli ise genelde 12 ay sonrasına bakar. Kısa pencerede analizi ciddi etkileyen bir yanlılık daha var: erteleme (postponement). Limit boşluğu olan kişiler bu alanı kullanıp bir ay daha dayanır; böylece temerrüt gözlem penceresinin dışına itilir. Temerrüt azalmamıştır, yalnızca ertelenmiştir; ama sistem bunu "güvenli" diye kaydeder.

Bu, debiasing’in (karıştırıcıyı ayıklamanın) yakalayamadığı, ayrı bir yanlılık türüdür (sağkalım, sansürleme). Bunu gözlem penceresini 1 aydan 5 aya uzatarak kontrol ettik.

[IMG] Gözlem penceresi uzatıldığında debiasing uygulanmış limit etkisi

Pencere uzasa da negatif (−) ilişki pozitife (+) dönmedi (1 ay −0.06’dan 5 ay −0.13’e). Ancak bu deneyde pencere uzadıkça kredi niteliği kontrolü inceliyor ve karışıyor; ayrıca 5 ay, 12 ayın çok altında. Yani UCI (1 ay) ile 12 aylık problemi doğrulamak mümkün değil.

Bu yüzden gerçek uzun vadeli veri gerekiyordu.

6. Doğrulama 2, Lending Club: uzun vade ve 'kullandırılmış' kredi

Lending Club, ABD’de bir P2P kredi platformu. 2007 ile 2013 arasında kullandırılmış ve vadesi bitmiş 230 bin krediyi kullanıyoruz. Vadesi tamamlandığı için bunların tam ödendi mi yoksa charge-off mu olduğu kesin olarak biliniyor. Aynı debiasing’i burada çalıştırınca belirleyici bir ayrım ortaya çıktı.

[IMG] Lending Club. Çekilmiş kredi ve revolving limit

  • loan_amnt (çekilmiş kredi, yeşil): Debiasing sonrasında da kredi↑→temerrüt↑ ilişkisi temiz biçimde doğrulanıyor (p<0.0001). Birden çok risk sınıfında tutarlı şekilde artıyor; hatta yanlılığın temizlenmesi etkiyi daha da güçlendirdi. Hipotez doğrulandı.
  • total_rev_hi_lim (kullanılmamış revolving limit, mor): Uzun vadede bile etki neredeyse 0. UCI’daki limit ile aynı sonuç.

Farkın özü gözlem penceresi değil, "çekilmiş kredi mi yoksa kullanılmamış limit mi" sorusuydu. Taksitli kredi tamamen çekildiği için yükün %100’üne dönüşür; ama revolving limit kullanılmadan önce yük değildir, sadece headroom’dur. İkisini bağlayan köprü geçiş oranıdır (limit→bakiye); UCI’da bu oran yalnızca %5,7 olduğu için limit etkisi zayıf kalmıştı.

7. Doğrulama 3, Home Credit kartı: zarar tanımı işareti tersine çeviriyor

Home Credit, Kaggle yarışması üzerinden açılmış bir veri kümesi; kredi kartı aylık paneli ile başvuru kredilerini (taksitli kredi) birlikte içeriyor. Önce kart paneliyle, yani aynı revolving üründe gerçek limit, bakiye ve gecikmeyi onlarca ay boyunca izleyen veriyle işi kesinleştirmek istedik. Ama sonuç yine ters döndü. Bu kez bir uyarıydı.

Fiilen kullanılan yaklaşık 16 bin aktif karta baktığımızda, kullanım oranı yükseldikçe temerrüdün düştüğü, yani UCI’ın tam tersi bir yön gördük. Neden?

[IMG] UCI ve Home Credit. Kullanım oranından temerrüde giden işaret tersine dönüyor

Soldaki UCI’da kullanım oranı arttıkça temerrüt oranı yükseliyor (gerçek yük). Sağdaki Home Credit’te ise en düşük kullanım oranı diliminde (bakiye neredeyse 0) temerrüt yaklaşık %14’e yığılmış; kalan dilimlerde oran %0.1 civarında.

Nedeni açıktı. Home Credit’teki "temerrüt (SK_DPD≥90)" kredi yükünü değil, küçük bakiyenin bırakılıp gecikmeye düşen atıl hesapları yakalıyordu. Kartı gerçekten kullanan kişilerde temerrüt fiilen 0. Yani sonuç değişkeni (outcome) "kredi zararı" değil de "ihmal"i ölçüyorsa, debiasing ne kadar iyi olursa olsun işaret topyekûn tersine dönebilir.

8. Doğrulama 4, Home Credit ana kredi: sonunda paradoks tersine dönüyor

Şimdiye kadar debiasing’i uyguladık ama ham veride negatif (−) görünen paradoksun debiasing sonrasında pozitife (+) döndüğü bir veri kümesi çıkmamıştı. O koşulları sağlayan veri hemen yan taraftaydı: aynı Home Credit’in başvuru kredileri (kart değil ana kredi, temerrüt oranı %8, 300 bin kayıt). Bu, tamamı çekilen taksitli kredi ve temerrüt de gerçek kredi zararı. Üstelik bu kez dış kredi skoru (EXT_SOURCE) ve gelir birlikte kontrol edildi.

[IMG] Home Credit ana kredi. Debiasing paradoksu tersine çeviriyor

Solda (raw), kredi büyüdükçe temerrüdün düştüğü bir paradoks var (dört değişkenin tümü negatif). Sağda (debiasing), kredi niteliği temizlenince işaret pozitife (+) dönüyor.

Değişken raw korelasyon debiasing katsayısı Sonuç
Kredi tutarı −0.030 +0.018 Tersine dönüyor
Aylık taksit tutarı −0.013 +0.059 (p≈10⁻²⁰) Tersine dönüyor (en güçlü)
Gelire oranla kredi −0.008 +0.046 Tersine dönüyor
Satın alınan ürünün fiyatı −0.040 −0.010 Tersine dönmüyor

Tablodaki katsayılar standartlaştırılmış artıklar üzerindeki logit katsayıları olduğu için mutlak büyüklükleri küçük. Aylık taksit tutarı için +0.059, 1 standart sapmalık artışta temerrüt odds’unun yaklaşık %6 yükselmesi demek. 300 bin kayıt olduğu için p-değeri aşırı küçük; bu "etki çok büyük" demek değil, "işaretin pozitif (+) olduğu kesin" demek. Bu yazının iddiası büyüklükte değil, yöndedir: negatiften pozitife dönmesi.

İlginç olan, yalnızca satın alınan ürünün fiyatının (AMT_GOODS_PRICE) tersine dönmemesi. Geri ödenmesi gereken yük, kredi tutarı ve taksit tutarıdır; ürünün kendi fiyatı değil. Bu da teoriyle tam uyumlu.

Peki neden burada tersine dönüyor da UCI ya da Lending Club revolving limitinde dönmüyor? İki koşulun aynı anda sağlanması gerekiyor. Birincisi, bunun çekilmiş kredi olması ve gerçek etkinin pozitif (+) olması. İkincisi, seçim yanlılığının güçlü olması; yani daha büyük kredilerin daha iyi müşterilere gitmesi yüzünden ham verinin negatif (−) görünmesi. Ana kredi her iki koşulu da sağlıyor. Bu yüzden ham veri seçim yanlılığı altında negatif görünüyor; debiasing yapınca gerçek yük etkisi olan pozitif ilişki ortaya çıkıyor.

9. Özet: paradoks ne zaman tersine döner

Kredi türü raw limit-temerrüt debiasing sonrası Örnek
Kullanılmamış revolving limit Negatif (paradoks) Neredeyse 0 UCI, LC, HC kartı
Çekilmiş kredi, zayıf seçim Pozitif (paradoks yok) Pozitif LC kredi tutarı
Çekilmiş kredi, güçlü seçim Negatif (paradoks) Pozitif (tersine dönüş) HC ana kredi

Üç veri kümesini birlikte düşündüğümüzde geriye iki sonuç kalıyor.

  • "Limit↑→temerrüt↑" evrensel bir yasa değil. Kullanılmamış limit, kullanılmadığı sürece yük değildir; bu yüzden etkisi neredeyse 0’dır. Kullanım oranı ve bakiye işaretleri ise portföy yapısına ve zarar tanımına bağlıdır.
  • Ama koşullar uygunsa paradoks gerçekten tersine döner. Debiasing sahte negatif (−) ilişkiyi temizleyip gerçek pozitif (+) etkiyi geri getirir. Ancak bu, yalnızca böyle davranabilecek kredi türlerinde, yani çekilmiş gerçek yükte geçerlidir.

10. Peki pratikte ne yapılmalı

Bu sonucu pratiğe taşırken önce iki noktayı vurgulamak istiyorum.

İlki, sınırlar. Debiasing’in kontrol ettiği kredi niteliği özellikleri, gerçek limit atama kriterlerinin yalnızca vekil değişkenleri olduğu için kalan etkiyi "saf nedensellik" diye kesinlemek doğru olmaz. Özellikle gelir veya dış skor gibi değişkenler yoksa ve gerçek kredi niteliğini yeniden kurmak zorsa bu daha da belirgin. Ayrıca bu yazı temerrüt olasılığını (PD) ele alıyor; oysa pratikte zarar oranı çoğu zaman kayıp tutarı üzerinden değerlendirilir. Kayıp tutarı limit ile mekanik olarak bağlantılıdır (limit↑→exposure↑→kayıp tutarı↑), dolayısıyla aynı veride bile işaret pozitif (+) görünebilir. Sonucu belirleyen şey, outcome olarak neyi seçtiğinizdir.

Bu yüzden yöntemi ve sonucu ayırmak gerekir.

  1. Yöntem (debiasing) geçerlidir ve taşınabilir. Gerçekten pozitif (+) bir etki olduğunda (Lending Club’da kullandırılmış kredi) yöntem bunu temiz biçimde geri kazandı. Başka verilerde negatif (−) çıkması, yöntemin başarısızlığı değil; "o kredi türü zaten temerrüdü artırmıyor" gerçeğinin doğru yansımasıdır.
  2. Yönle ilgili sonuç taşınabilir değildir. Açık veriye bakarak "her portföyde limit↑→temerrüt↑" diye kesin konuşulamaz.
  3. Pratik veride mutlaka doğrulanması gereken iki şey vardır. Birincisi geçiş oranı (dBalance/dLimit): limit artışı gerçek çekilmiş yüke ne kadar dönüşüyor? İkincisi zarar tanımı: 12 aylık zarar, gerçekten kredi kaybını mı ölçüyor, yoksa ihmal ya da küçük gecikmeleri mi yakalıyor?

Limit etkisinin işaretini bu iki unsur belirler. Debiasing yalnızca başlangıç noktasıdır; doğru cevap her kurumun kendi portföyündedir.


Ek. Veri ve yeniden üretim

  • UCI "Default of Credit Card Clients" (Tayvan, 30 bin kayıt, 1 aylık gecikme)
  • Lending Club 2007–2013 vadesi tamamlanmış krediler (230 bin kayıt, charge-off)
  • Home Credit credit_card_balance kart paneli ve application_train ana kredi (300 bin kayıt, temerrüt %8)
  • Yöntem: K-fold cross-fitting residualization, isotonic calibration, artık ağırlıklandırma, doğrusal ikinci aşama (DML). Python (pandas, scikit-learn, lightgbm, statsmodels).
  • Kod ve not defterleri (Korece·Japonca): github.com/HangilKim11/blog-research

Bu yazıdaki tüm sayılar ve grafikler açık veriyle yeniden üretilebilir. Yazının vardığı sonuçlar açık veriye ilişkindir; pratik veride işaretin ne olduğunu yukarıdaki iki noktaya bakarak doğrudan doğrulamak gerekir.


Bu yazı ilk olarak han-co.com’da yayımlandı ve Korece ile Japonca birlikte paylaşıldı. Orijinal metin ve e-posta aboneliği → https://han-co.com/ko/blog/credit-limit-debiasing

Henüz yorum yok.

Henüz yorum yok.