S strojového učení, budete potřebovat hodně dat, takže někdy to dává smysl, aby kombinovat aktuální data simulovaná data najít správné vzory v datech nebo pro stavbu modelu.

centrální limit říká, že čím větší je velikost datové sady, tím lépe, protože průměr populace se blíží průměru vzorku, když se velikost vzorku stane opravdu velkým. Generováním replikovaných kopií vzorkové datové sady, můžeme odhadnout průměr vzorku napříč různými populacemi, abychom zajistili, že střední hodnota je stabilní. Můžeme také odhadnout rozptyl (nejistotu) v predikci střední hodnoty.

aby bylo možné simulovat data z daného vzorku dat, musíme být schopni identifikovat vzory ve vzorku dat a také mít nějaké znalosti o funkcích a jak jsou distribuovány. Například, pokud mám malý vzorek mužských výšek, a vím, že výšky sledují normální rozdělení, mohl bych vygenerovat datovou sadu mužských výšek pomocí následujícího:

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

tento článek bude diskutovat o tom, jak lze simulaci Monte-Carlo (MC) použít pro generování přibližných replikovaných kopií vzorové datové sady. Každý z těchto bloků datových sad je poté vyškolen. Poté se celkový výkon modelu vypočítá provedením průměru souboru nad datovými bloky včetně skutečných a simulovaných dat.

Úvod: předpovídání stavu úvěru je důležitým problémem při hodnocení rizik. Banka nebo finanční organizace musí být schopna odhadnout související riziko před poskytnutím půjčky zákazníkovi. Věda o datech a prediktivní analytika hrají důležitou roli při vytváření modelů, které lze použít k předpovídání pravděpodobnosti selhání úvěru. V tomto projektu, máme k dispozici s loan_timing.csv dataset obsahující 50000 datových bodů. Každý datový bod představuje úvěr, a dvě funkce jsou uvedeny takto:

  1. sloupec s hlavičkou „dnů od vzniku“ udává počet dní, které uplynuly od vzniku a datum, kdy byla data shromážděna.
  2. Pro úvěry, které odepsána dříve, než byly shromážděny údaje, sloupec s hlavičkou „dnů od vzniku nabíjení-off“ udává počet dnů, které uplynuly mezi počáteční a nabíjení-off. U všech ostatních půjček je tento sloupec prázdný.

definice technických pojmů

  1. původ: jedná se o datum, kdy dlužník obdrží půjčku od věřitele.
  2. stav odpisu (selhání úvěru): Dlužník pak provádí pravidelné splátky, dokud dlužník přestane provádět platby, obvykle kvůli finančním potížím, před koncem doby půjčky. Tato událost se nazývá charge-off, a půjčka je pak řekl, aby si účtoval off nebo ve výchozím stavu.
  3. aktuální nebo aktivní stav: dlužník pokračuje ve splácení po celou dobu trvání půjčky. V tomto okamžiku byl dluh plně splacen.
  4. doba výpůjčky: období, po které je smlouva o půjčce v platnosti a před nebo na jejím konci by měl být úvěr buď splacen,nebo znovu sjednán na jiné období. V tomto příkladu uvažujeme o půjčce s termínem nebo trváním 3 let.

Cíl Projektu: cílem tohoto projektu je použití technik data science odhadnout, jaká část těchto úvěrů (50,000 záznamy zákazníků v loan_timing.csv dataset) budou účtovány off během 3-leté výpůjční lhůty.

datový soubor a R kód pro tento článek lze stáhnout z tohoto úložiště: https://github.com/bot13956/Monte_Carlo_Simulation_Loan_Status.

Importovat Potřebné Knihovny

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

Import souboru dat a Připravit Data pro Analýzu

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)

Průzkumné Analýzy Dat

A) Skutečné Údaje

# 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) Simulovaná Data

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

Aktuální a MC simulace dní pro nabíjení-off vs. dnů od vzniku.

vzhledem k tomu, že existuje náhodnost spojená s odpisem půjčky, vidíme, že simulace MC poskytuje dobrou aproximaci pro rozdělení nesplácených úvěrů.

předpovědi: Od té doby jsme prokázali, že vztah mezi dny k nabíjení-off a dní od vzniku prvních 2 let (tj. od 0 do 730 dnů) může být aproximována pomocí MC simulace, můžeme předpovědět, podíl úvěrů, které budou účtovány v době, kdy všechny jejich 3-rok podmínek jsou hotové za použití MC simulace.

celkový počet nabitých úvěrů v našem datovém souboru je 3 305. To znamená, že v současné době existuje 46 695 půjček. Z těchto aktivních úvěrů bude určitá část nesplácena během 3letého období. Odhadnout celkový podíl nesplácených úvěrů, jsme simulované splácet půjčky za poplatek-off a dní od vzniku pokrývající celou dobu trvání úvěru (tj. 0 až 1095 dnů), pak tím, že vhodná měřítka, vypočítáme podíl úvěrů, které budou účtovány po 3-leté období, tj. 1095 dny.

# 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

vytvořením N = 1000 náhodných zkoušek, získali jsme následující rozložení pro podíl nesplácených úvěrů 3-leté období:

Obrázek 6: Histogram pro zlomek nabitých úvěrů po 3letém období s použitím N = 1000 vzorků.

na Základě našich výpočtů, 95% interval spolehlivosti pro podíl úvěrů, které budou účtovány po 3-leté trvání úvěru je tedy 14.8% +/- 0.2%. Takže pokud 50,000 úvěry byly uvedeny s půjčkou dobu 3 let, přibližně 15% těchto úvěrů bude výchozí.

závěry: představili jsme jednoduchý model založený na simulaci MC pro předpovídání zlomku úvěrů, které budou nespláceny na konci 3letého období trvání úvěru. Simulace Monte Carlo je důležitou metodou, kterou lze použít v normativní analýze pro předepisující postup, který je třeba podniknout v případech, kdy je datová sada velmi stochastická.

datový soubor a R kód pro tento článek lze stáhnout z tohoto úložiště: https://github.com/bot13956/Monte_Carlo_Simulation_Loan_Status.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.

lg