Avec l’apprentissage automatique, vous avez besoin de beaucoup de données, il est donc parfois logique de combiner des données réelles avec des données simulées pour trouver les bons modèles dans les données ou pour la construction de modèles.

La limite centrale indique que plus la taille de l’ensemble de données est grande, mieux c’est, car la moyenne de la population se rapproche de la moyenne de l’échantillon lorsque la taille de l’échantillon devient vraiment grande. En générant des copies répliquées de l’ensemble de données de l’échantillon, nous pouvons estimer la moyenne de l’échantillon dans différentes populations pour nous assurer que la valeur moyenne est stable. Nous pouvons également estimer la variance (incertitude) dans la prédiction de la valeur moyenne.

Afin de simuler des données à partir d’un échantillon de données donné, nous devons être en mesure d’identifier des modèles dans les données d’échantillon et également avoir des connaissances sur les caractéristiques et la façon dont elles sont distribuées. Par exemple, si j’ai un petit échantillon de hauteurs masculines et que je sais que les hauteurs suivent une distribution normale, je pourrais générer un ensemble de données de hauteurs masculines en utilisant ce qui suit:

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

Cet article explique comment la simulation Monte-Carlo (MC) peut être utilisée pour générer des copies répliquées approximatives de l’échantillon de données. Chacun de ces blocs de jeux de données est ensuite entraîné. Ensuite, la performance globale du modèle est ensuite calculée en effectuant une moyenne d’ensemble sur les blocs de données, y compris les données réelles et simulées.

Introduction: Prédire l’état d’un prêt est un problème important dans l’évaluation des risques. Une banque ou un organisme financier doit être en mesure d’estimer le risque encouru avant d’accorder un prêt à un client. La science des données et l’analyse prédictive jouent un rôle important dans la construction de modèles pouvant être utilisés pour prédire la probabilité de défaut de paiement du prêt. Dans ce projet, on nous fournit le loan_timing.jeu de données csv contenant 50000 points de données. Chaque point de données représente un prêt, et deux fonctionnalités sont fournies comme suit:

  1. La colonne avec en-tête « jours depuis l’origine » indique le nombre de jours qui se sont écoulés entre l’origine et la date à laquelle les données ont été collectées.
  2. Pour les prêts qui ont été débités avant la collecte des données, la colonne avec en-tête  » jours de l’origine à la débitation  » indique le nombre de jours qui se sont écoulés entre l’origine et la débitation. Pour tous les autres prêts, cette colonne est vide.

Définition des termes techniques

  1. Origination: Il s’agit de la date à laquelle un emprunteur reçoit un prêt d’un prêteur.
  2. État d’imputation (défaut de prêt): L’emprunteur effectue ensuite des remboursements réguliers, jusqu’à ce qu’il cesse d’effectuer des paiements, généralement en raison de difficultés financières, avant la fin de la durée du prêt. Cet événement est appelé charge-off, et le prêt est alors dit avoir facturé ou en état de défaut.
  3. Statut actuel ou actif: L’emprunteur continue d’effectuer des remboursements sur toute la durée du prêt. À ce stade, la dette a été entièrement remboursée.
  4. Durée du prêt: Période au cours de laquelle un contrat de prêt est en vigueur, et avant ou à la fin de laquelle le prêt doit être remboursé ou renégocié pour une autre durée. Dans cet exemple, nous considérons un prêt d’une durée ou d’une durée de 3 ans.

Objectif du projet: Le but de ce projet est d’utiliser des techniques de science des données pour estimer quelle fraction de ces prêts (50 000 enregistrements clients dans le loan_timing.ensemble de données CSV) aura été débité pendant la durée du prêt de 3 ans.

L’ensemble de données et le code R de cet article peuvent être téléchargés à partir de ce référentiel : https://github.com/bot13956/Monte_Carlo_Simulation_Loan_Status.

Importer les Bibliothèques nécessaires

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

Importer l’Ensemble de Données et Préparer les Données pour l’Analyse

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)

Analyse Exploratoire des Données

A) Données réelles

# 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) Données simulées

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

Simulation réelle et MC des jours avant la facturation par rapport aux jours depuis la création.

Parce qu’il y a un caractère aléatoire associé à la charge d’un prêt, nous voyons que la simulation MC fournit une bonne approximation pour la répartition des prêts en défaut.

Prédictions: Étant donné que nous avons démontré que la relation entre les jours jusqu’à la facturation et les jours depuis la création au cours des 2 premières années (c.-à-d. de 0 à 730 jours) peut être approximée à l’aide d’une simulation MC, nous pouvons prédire la fraction des prêts qui seront facturés au moment où toutes leurs durées de 3 ans sont terminées à l’aide de la simulation MC.

Le nombre total de prêts imputés dans notre ensemble de données est de 3 305. Cela signifie que 46 695 prêts sont actuellement actifs. Parmi ces prêts actifs, une certaine proportion sera en défaut de paiement sur la période de 3 ans. Pour estimer la fraction totale des prêts en défaut, nous avons simulé des prêts en défaut avec des frais et des jours depuis l’origine couvrant toute la durée du prêt (c’est-à-dire de 0 à 1095 jours), puis, par une mise à l’échelle appropriée, nous avons calculé la fraction des prêts qui auront été débités après la durée de 3 ans, c’est-à-dire 1095 jours.

# 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

En créant N = 1000 essais aléatoires, nous avons obtenu la distribution suivante pour la fraction des prêts en défaut à terme de 3 ans:

Figure 6: Histogramme pour la fraction des prêts imputés après une durée de 3 ans en utilisant N = 1000 échantillons.

D’après nos calculs, l’intervalle de confiance de 95% pour la fraction des prêts qui auront été débités après la durée du prêt de 3 ans est donc de 14,8% +/- 0,2%. Ainsi, si 50 000 prêts ont été accordés avec une durée de prêt de 3 ans, environ 15% de ces prêts seront en défaut.

Conclusions: Nous avons présenté un modèle simple basé sur la simulation MC pour prédire la fraction des prêts qui seront en défaut à la fin de la durée du prêt de 3 ans. La simulation Monte Carlo est une méthode importante qui peut être utilisée dans l’analyse prescriptive pour la ligne de conduite à suivre dans les cas où l’ensemble de données est de nature très stochastique.

L’ensemble de données et le code R de cet article peuvent être téléchargés à partir de ce référentiel : https://github.com/bot13956/Monte_Carlo_Simulation_Loan_Status.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

lg