a gépi tanulással sok adatra van szükség, ezért néha érdemes kombinálni a tényleges adatokat a szimulált adatokkal, hogy megtalálják a megfelelő mintákat az adatokban vagy a modellépítéshez.

a központi határ azt mondja, hogy minél nagyobb az adatkészlet mérete, annál jobb, mivel a populáció átlaga megközelíti a minta átlagát, amikor a minta mérete valóban nagy lesz. A mintaadatkészlet replikált példányainak előállításával, megbecsülhetjük a minta átlagát a különböző populációk között annak biztosítása érdekében, hogy az átlagérték stabil legyen. Az átlagérték előrejelzésében megbecsülhetjük a varianciát (bizonytalanságot) is.

egy adott mintaadatból származó adatok szimulálásához képesnek kell lennünk azonosítani a mintaadatokban lévő mintákat, és bizonyos ismeretekkel kell rendelkezniük a jellemzőkről és azok elosztásáról. Például, ha van egy kis mintám a férfi magasságokból, és tudom, hogy a magasságok normális eloszlást követnek, akkor létrehozhatok egy férfi magasság adatkészletet a következők felhasználásával:

mu = mean(male_heights)sd = sd(male_heights)N = 1000simulated_data = rnorm(N, mu,sd)

ez a cikk azt tárgyalja, hogy a Monte-Carlo (MC) szimuláció hogyan használható a minta adatkészlet hozzávetőleges replikált példányainak előállításához. Ezután az adatkészletek mindegyik blokkját kiképzik. Ezután a modell teljes teljesítményét úgy számítják ki, hogy a tényleges és szimulált adatokat tartalmazó adatblokkokban együttes átlagot hajtanak végre.

Bevezetés: a hitel állapotának előrejelzése fontos probléma a kockázatértékelésben. A banknak vagy pénzügyi szervezetnek képesnek kell lennie arra, hogy megbecsülje a kockázatot, mielőtt hitelt nyújtana az ügyfélnek. Az Adattudomány és a prediktív elemzés fontos szerepet játszik az építési modellekben, amelyek felhasználhatók a hitel nemteljesítésének valószínűségének előrejelzésére. Ebben a projektben a loan_timing szolgáltatást kapjuk.csv adatkészlet, amely 50000 adatpontot tartalmaz. Minden adatpont egy kölcsön, és két jellemzője a következők:

  1. az “origináció óta eltelt napok” fejléccel ellátott oszlop az origináció és az adatgyűjtés dátuma között eltelt napok számát jelzi.
  2. az adatok összegyűjtése előtt felszámított hitelek esetében a “napok a keletkezéstől a felszámításig” fejléccel ellátott oszlop jelzi a keletkezéstől a felszámításig eltelt napok számát. Az összes többi hitel esetében ez az oszlop üres.

a szakkifejezések meghatározása

  1. származás: ez arra az időpontra vonatkozik, amikor a hitelfelvevő kölcsönt kap a hitelezőtől.
  2. Charge-off (hitel alapértelmezett) állapot: A hitelfelvevő ezután rendszeres visszafizetéseket hajt végre, amíg a hitelfelvevő a kölcsön futamidejének vége előtt abbahagyja a kifizetéseket, jellemzően pénzügyi nehézségek miatt. Ezt az eseményt charge-off-nak hívják, majd azt mondják, hogy a kölcsön felszámolásra került vagy alapértelmezett állapotban van.
  3. jelenlegi vagy aktív állapot: a hitelfelvevő a hitel teljes futamideje alatt folytatja a visszafizetéseket. Ezen a ponton az adósság teljes mértékben visszafizetésre került.
  4. hitel futamideje: az az időszak, amely alatt a kölcsönszerződés hatályban van, és amely előtt vagy végén a kölcsönt vagy vissza kell fizetni, vagy egy másik futamidőre újra kell tárgyalni. Ebben a példában egy 3 éves futamidejű vagy futamidejű kölcsönt veszünk figyelembe.

projekt célja: ennek a projektnek az a célja, hogy az Adattudomány technikáit használja fel annak becslésére, hogy ezeknek a kölcsönöknek milyen hányada van (50 000 ügyfélrekord a kölcsönben_időzítés.csv adatkészlet) a 3 éves hitel futamideje alatt felszámolásra kerül.

ennek a cikknek az adatkészlete és R-kódja letölthető erről az adattárról: https://github.com/bot13956/Monte_Carlo_Simulation_Loan_Status.

importálja a szükséges könyvtárakat

library(readr)
library(tidyverse)
library(broom)
library(caret)

importálja az adatkészletet és készítse elő az adatokat az elemzéshez

df<-read_csv("loan_timing.csv",na="NA")names(df)=c("origination","chargeoff")# partition data set into two: default (charged off ) and currentindex<-which(!(df$chargeoff=="NA"))default<-df%>%slice(index)current<-df%>%slice(-index)

feltáró Adatelemzés

a) tényleges adatok

# Plot of days to charge-off vs. days since origination for defaulted loans using actual datadefault%>%ggplot(aes(origination,chargeoff))+geom_point()+xlab('days since origination')+ ylab('days to charge-off')+ggtitle("days to charge-off vs. days since origination")+theme(plot.title = element_text(color="black", size=12, hjust=0.5, face="bold"),axis.title.x = element_text(color="black", size=12, face="bold"),axis.title.y = element_text(color="black", size=12, face="bold"),legend.title = element_blank())

B) szimulált adatok

# Monte Carlo Simulation of Defaulted Loansset.seed(2)N <- 3*365 # loan duration in daysdf_MC<-data.frame(u=round(runif(15500,0,N)),v=round(runif(15500,0,N)))df_MC<-df_MC%>%filter(v<=u)df_MC<-df_MC%>%filter(u<=730 & v<=730) #select loans within first 2 yearsdf_MC%>%ggplot(aes(u,v))+geom_point()+xlab('days since origination')+ylab('days to charge-off')+ggtitle("MC simulation of days to charge-off vs. days since origination")+theme(plot.title = element_text(color="black", size=12, hjust=0.5, face="bold"),axis.title.x = element_text(color="black", size=12, face="bold"),axis.title.y = element_text(color="black", size=12, face="bold"),legend.title = element_blank())

tényleges és MC szimuláció nap charge-off vs nap kezdete óta.

mivel véletlenszerűség társul a hitel terheléséhez, azt látjuk, hogy az MC szimuláció jó közelítést nyújt a nem teljesítő hitelek eloszlásához.

előrejelzések: Mivel bebizonyítottuk, hogy az első 2 év (azaz 0-730 nap) kezdete óta eltelt napok közötti kapcsolat MC szimulációval közelíthető meg, megjósolhatjuk a hitelek azon hányadát, amelyet az összes 3 éves futamidejük befejezéséig felszámítanak az MC szimuláció használatával.

az adatkészletünkben szereplő felszámított hitelek száma összesen 3305. Ez azt jelenti, hogy jelenleg 46 695 hitel van aktív. Ezeknek az aktív hiteleknek egy bizonyos hányada a 3 éves időszak alatt nem teljesít. A nemteljesítő hitelek teljes hányadának becsléséhez szimuláltuk a nemteljesítő hiteleket a hitel teljes időtartamára (azaz 0-tól 1095 napig), majd megfelelő méretezéssel kiszámítottuk a hitelek azon hányadát, amelyek a 3 éves futamidő után, azaz 1095 nap után kerülnek felszámításra.

# Predicting fraction of these loans will have charged off by the time all of their 3-year term is finished.set.seed(2)B<-1000fraction<-replicate(B, {df2<-data.frame(u=round(runif(50000,0,N)),v=round(runif(50000,0,N)))df2<-df2%>%filter(v<=u)b2<-(df2%>%filter(u<=730 & v<=730))total<-(nrow(df2)/nrow(b2))*nrow(default)100.0*(total/50000.0)})
mean(fraction)# Histogram of total fraction of charged off loansfdf<-data.frame(fraction=fraction)fdf%>%ggplot(aes(fraction))+geom_histogram(color="white",fill="skyblue")+xlab('fraction of charged off loans after 3-year term')+ylab('count')+ggtitle("Histogram of total fraction of charged off loans")+theme(
plot.title = element_text(color="black", size=12, hjust=0.5, face="bold"),
axis.title.x = element_text(color="black", size=12, face="bold"),
axis.title.y = element_text(color="black", size=12, face="bold"),
legend.title = element_blank()
)# Calculate Confidence Interval of Percentage of Defaulted Loans after 3-year termmean<-mean(fraction)sd<-sd(fraction)confidence_interval<-c(mean-2*sd, mean+2*sd)confidence_interval

N = 1000 véletlenszerű vizsgálat létrehozásával a következő eloszlást kaptuk a nem teljesített hitelek 3 éves futamidejének töredékére:

6. ábra: Hisztogram a felszámított hitelek töredékére 3 éves futamidő után, N = 1000 minta felhasználásával.

számításaink alapján a 95%-os konfidencia intervallum a 3 éves hitelidőszak után felszámított hitelek töredékére ennek megfelelően 14,8% +/- 0,2%. Tehát ha 50 000 hitelt adtak ki 3 éves hitel futamidővel, akkor ezeknek a kölcsönöknek körülbelül 15% – a nem fog működni.

következtetések: az MC szimuláción alapuló egyszerű modellt mutattunk be a 3 éves hitelidőszak végén késedelembe eső hitelek töredékének előrejelzésére. A Monte Carlo szimuláció fontos módszer, amelyet fel lehet használni az előíró elemzésben az olyan esetekben alkalmazandó intézkedések előírására, amikor az adatkészlet nagyon sztochasztikus jellegű.

ennek a cikknek az adatkészlete és R-kódja letölthető erről az adattárról: https://github.com/bot13956/Monte_Carlo_Simulation_Loan_Status.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.

lg