cu învățarea automată, aveți nevoie de o mulțime de date, deci uneori are sens să combinați datele reale cu datele simulate pentru a găsi modelele potrivite în date sau pentru construirea modelului.

limita Centrală spune că cu cât dimensiunea setului de date este mai mare, cu atât mai bine, deoarece media populației aproximează media eșantionului atunci când dimensiunea eșantionului devine foarte mare. Prin generarea de copii replicate ale setului de date eșantion, putem estima media eșantionului în diferite populații pentru a ne asigura că valoarea medie este stabilă. De asemenea, putem estima varianța (incertitudinea) în predicția valorii medii.

pentru a simula datele dintr-un anumit eșantion de date, trebuie să putem identifica tiparele din datele eșantionului și, de asemenea, să avem cunoștințe despre caracteristici și modul în care acestea sunt distribuite. De exemplu, dacă am un mic eșantion de înălțimi masculine și știu că înălțimile urmează o distribuție normală, aș putea genera un set de date de înălțimi masculine folosind următoarele:

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

acest articol va discuta despre modul în care simularea Monte-Carlo (Mc) poate fi utilizată pentru generarea de copii reproduse aproximative ale setului de date eșantion. Fiecare dintre aceste blocuri de seturi de date este apoi instruit. Apoi, performanța generală a modelului este apoi calculată prin efectuarea unei medii de ansamblu peste blocurile de date, inclusiv date reale și simulate.

Introducere: prezicerea statutului unui împrumut este o problemă importantă în evaluarea riscurilor. O bancă sau o organizație financiară trebuie să poată estima riscul implicat înainte de a acorda un împrumut unui client. Știința datelor și analizele predictive joacă un rol important în construirea modelelor care pot fi utilizate pentru prezicerea probabilității de neplată a împrumutului. În acest proiect, ne sunt prevăzute cu loan_timing.set de date csv care conține 50000 de puncte de date. Fiecare punct de date reprezintă un împrumut, iar două caracteristici sunt furnizate după cum urmează:

  1. coloana cu antetul” zile de la origine ” indică numărul de zile care au trecut între origine și data la care au fost colectate datele.
  2. pentru împrumuturile care au fost debitate înainte de colectarea datelor, coloana cu antetul „zile de la inițiere la debitare” indică numărul de zile care au trecut între inițiere și debitare. Pentru toate celelalte împrumuturi, această coloană este goală.

Definiția termenilor tehnici

  1. origine: aceasta se referă la data la care un debitor primește un împrumut de la un creditor.
  2. starea debitării (implicit împrumut) : Împrumutatul face apoi rambursări regulate, până când împrumutatul nu mai efectuează plăți, de obicei din cauza dificultăților financiare, înainte de sfârșitul termenului de împrumut. Acest eveniment se numește charge-off, iar împrumutul se spune că a fost debitat sau în stare implicită.
  3. Stare curentă sau activă: împrumutatul continuă să efectueze rambursări pe întreaga durată a împrumutului. În acest moment, datoria a fost rambursată integral.
  4. termen de împrumut: perioada în care un contract de împrumut este în vigoare și înainte sau la sfârșitul căruia împrumutul trebuie fie rambursat, fie renegociat pentru un alt termen. În acest exemplu, luăm în considerare un împrumut cu un termen sau o durată de 3 ani.

obiectivul proiectului: Scopul acestui proiect este de a utiliza tehnici de știință a datelor pentru a estima ce fracțiune din aceste împrumuturi (50.000 de înregistrări ale clienților în loan_timing.csv set de date) va fi debitat în timpul termenului de împrumut de 3 ani.

setul de date și Codul R pentru acest articol pot fi descărcate din acest depozit: https://github.com/bot13956/Monte_Carlo_Simulation_Loan_Status.

biblioteci de Import necesare

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

set de date de Import și să pregătească date pentru analiză

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)

analiza datelor Exploratorii

a) date reale

# 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) date simulate

# 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())

simularea actuală și MC a zilelor de încărcare vs. zile de la origine.

deoarece există o întâmplare asociată cu încărcarea unui împrumut, vedem că simularea MC oferă o aproximare bună pentru distribuirea împrumuturilor neplătite.

predicții: Deoarece am demonstrat că relația dintre zilele de încărcare și zilele de la inițiere în primii 2 ani (adică 0 până la 730 de zile) poate fi aproximată folosind o simulare MC, putem prezice fracțiunea împrumuturilor care vor fi debitate până la terminarea tuturor termenilor lor de 3 ani folosind simularea MC.

numărul total de credite debitate din setul nostru de date este de 3.305. Aceasta înseamnă că există 46.695 de împrumuturi care sunt active în prezent. Dintre aceste împrumuturi active, o anumită proporție va intra în incapacitate de plată în perioada de 3 ani. Pentru a estima fracția totală a creditelor neplătite, am simulat împrumuturile neplătite cu taxă și zile de la inițiere care acoperă întreaga durată a împrumutului (adică 0 până la 1095 de zile), apoi prin scalare adecvată, am calculat fracția creditelor care vor fi taxate după termenul de 3 ani, adică 1095 de zile.

# 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

prin crearea N = 1000 studii aleatorii, am obținut următoarea distribuție pentru fracțiunea de credite neplătite termen de 3 ani:

Figura 6: Histograma pentru fracțiune de credite taxat-off după termen de 3 ani, folosind N = 1000 probe.

pe baza calculelor noastre, intervalul de încredere de 95% pentru fracțiunea de împrumuturi care va fi taxat după durata împrumutului de 3 ani este în consecință 14.8% + / -0.2%. Deci, dacă 50.000 de împrumuturi au fost acordate cu un termen de împrumut de 3 ani, aproximativ 15% din aceste împrumuturi vor intra în incapacitate de plată.

concluzii: am prezentat un model simplu bazat pe simularea MC pentru estimarea fracțiunii de împrumuturi care vor intra în incapacitate de plată la sfârșitul perioadei de 3 ani a împrumutului. Simularea Monte Carlo este o metodă importantă care poate fi utilizată în analizele prescriptive pentru cursul de prescriere a acțiunilor care trebuie luate în cazurile în care setul de date are o natură foarte stocastică.

setul de date și Codul R pentru acest articol pot fi descărcate din acest depozit: https://github.com/bot13956/Monte_Carlo_Simulation_Loan_Status.

Lasă un răspuns

Adresa ta de email nu va fi publicată.

lg