Title: | Estimating Asset Correlations from Default Data |
---|---|
Description: | Functions for the estimation of intra- and inter-cohort correlations in the Vasicek credit portfolio model. For intra-cohort correlations, the package covers the two method of moments estimators of Gordy (2000) <doi:10.1016/S0378-4266(99)00054-0>, the method of moments estimator of Lucas (1995) <https://jfi.pm-research.com/content/4/4/76> and a Binomial approximation extension of this approach. Moreover, the maximum likelihood estimators of Gordy and Heitfield (2010) <http://elsa.berkeley.edu/~mcfadden/e242_f03/heitfield.pdf> and Duellmann and Gehde-Trapp (2004) <http://hdl.handle.net/10419/19729> are implemented. For inter-cohort correlations, the method of moments estimator of Bluhm and Overbeck (2003) <doi:10.1007/978-3-642-59365-9_2>/Bams et al. (2016) <https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2676595> is provided and the maximum likelihood estimators comprise the approaches of Gordy and Heitfield (2010)/Kalkbrener and Onwunta (2010) <ISBN: 978-1906348250> and Pfeuffer et al. (2020). Bootstrap and Jackknife procedures for bias correction are included as well as the method of moments estimator of Frei and Wunsch (2018) <doi:10.21314/JCR.2017.231> for auto-correlated time series. |
Authors: | Maximilian Nagl [aut,cre], Yevhen Havrylenko [aut], Marius Pfeuffer [aut], Kevin Jakob [aut], Matthias Fischer [aut], Daniel Roesch [aut] |
Maintainer: | Maximilian Nagl <[email protected]> |
License: | GPL-3 |
Version: | 1.0.4 |
Built: | 2024-11-23 04:19:44 UTC |
Source: | https://github.com/cran/AssetCorr |
Functions for the estimation of intra- and inter-cohort correlations in the Vasicek credit portfolio model. For intra-cohort correlations, the package covers the two method of moments estimators of Gordy (2000) <doi:10.1016/S0378-4266(99)00054-0>, the method of moments estimator of Lucas (1995) <https://jfi.pm-research.com/content/4/4/76> and a Binomial approximation extension of this approach. Moreover, the maximum likelihood estimators of Gordy and Heitfield (2010) <http://elsa.berkeley.edu/~mcfadden/e242_f03/heitfield.pdf> and Duellmann and Gehde-Trapp (2004) <http://hdl.handle.net/10419/19729> are implemented. For inter-cohort correlations, the method of moments estimator of Bluhm and Overbeck (2003) <doi:10.1007/978-3-642-59365-9_2>/Bams et al. (2016) <https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2676595> is provided and the maximum likelihood estimators comprise the approaches of Gordy and Heitfield (2010)/Kalkbrener and Onwunta (2010) <ISBN: 978-1906348250> and Pfeuffer et al. (2020). Bootstrap and Jackknife procedures for bias correction are included as well as the method of moments estimator of Frei and Wunsch (2018) <doi:10.21314/JCR.2017.231> for auto-correlated time series.
The DESCRIPTION file:
Package: | AssetCorr |
Type: | Package |
Title: | Estimating Asset Correlations from Default Data |
Version: | 1.0.4 |
Date: | 2021-05-04 |
Author: | Maximilian Nagl [aut,cre], Yevhen Havrylenko [aut], Marius Pfeuffer [aut], Kevin Jakob [aut], Matthias Fischer [aut], Daniel Roesch [aut] |
Maintainer: | Maximilian Nagl <[email protected]> |
Description: | Functions for the estimation of intra- and inter-cohort correlations in the Vasicek credit portfolio model. For intra-cohort correlations, the package covers the two method of moments estimators of Gordy (2000) <doi:10.1016/S0378-4266(99)00054-0>, the method of moments estimator of Lucas (1995) <https://jfi.pm-research.com/content/4/4/76> and a Binomial approximation extension of this approach. Moreover, the maximum likelihood estimators of Gordy and Heitfield (2010) <http://elsa.berkeley.edu/~mcfadden/e242_f03/heitfield.pdf> and Duellmann and Gehde-Trapp (2004) <http://hdl.handle.net/10419/19729> are implemented. For inter-cohort correlations, the method of moments estimator of Bluhm and Overbeck (2003) <doi:10.1007/978-3-642-59365-9_2>/Bams et al. (2016) <https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2676595> is provided and the maximum likelihood estimators comprise the approaches of Gordy and Heitfield (2010)/Kalkbrener and Onwunta (2010) <ISBN: 978-1906348250> and Pfeuffer et al. (2020). Bootstrap and Jackknife procedures for bias correction are included as well as the method of moments estimator of Frei and Wunsch (2018) <doi:10.21314/JCR.2017.231> for auto-correlated time series. |
License: | GPL-3 |
Imports: | VineCopula, mvtnorm, boot, numDeriv, mvQuad, ggplot2, Rdpack,knitr,qpdf |
Suggests: | markdown |
VignetteBuilder: | knitr |
RdMacros: | Rdpack |
NeedsCompilation: | no |
Packaged: | 2021-05-05 14:53:18 UTC; LocalAdmin |
Date/Publication: | 2021-05-05 15:30:02 UTC |
Config/pak/sysreqs: | libjpeg-dev libssl-dev |
Repository: | https://maximiliannaglur.r-universe.dev |
RemoteUrl: | https://github.com/cran/AssetCorr |
RemoteRef: | HEAD |
RemoteSha: | fb249d30060a8722786315638780d8922c05c003 |
Index of help topics:
AssetCorr-package AssetCorr analyze_AssetCorr Function to evaluate several default time series simultaneously defaultTimeseries Creating a hypothetical Default Time Series. interALL Function to use multiple estimators simultaneously interCMM Corrected Asymptotic Method of Moments Estimator of Frei and Wunsch (2018) interCopula Copula Based Maximum Likelihood Estimator interCov Covariance Matching Estimator interJDP Joint Default Probability Matching Estimator, De Servigny and Renault (2002) interMLE Binomial Maximum Likelihood Estimator intraALL Function to use multiple estimators simultaneously intraAMLE Asymptotic Maximum Likelihood Estimator intraAMM Asymptotic Method of Moments Estimator intraBeta Parametric Approach of Botha and van Vuuren (2010)- Beta Distribution intraCMM Corrected Asymptotic Method of Moments Estimator of Frei and Wunsch (2018) intraFMM Finite Sample Method of Moments Estimator intraJDP1 Joint Default Probability Matching Estimator, Lucas (1995) intraJDP2 Joint Default Probability Matching Estimator, De Servigny and Renault (2002) intraMLE Binomial Maximum Likelihood Estimator intraMode Parametric Approach of Botha and van Vuuren (2010)- Mode
Further information is available in the following vignettes:
AssetCorr_vignette |
An AssetCorr Guide (source, pdf) |
Maximilian Nagl [aut,cre],Yevhen Havrylenko [aut], Marius Pfeuffer [aut], Matthias Fischer [aut], Daniel Roesch [aut]
Maintainer: Maximilian Nagl <[email protected]>
De Servigny, A. and O. Renault: Default correlation: empirical evidence. Working Paper, Standard and Poor's: 90-94, 2003. Available at: https://www.semanticscholar.org/paper/Default-correlation%3A-empirical-evidence-Servigny-Renault/aae251436d0e3b489951c0d38463d71106755675. Accessed: 04.05.2020
Duellmann, K. and M. Gehde-Trapp: Systematic risk in recovery rates: an empirical analysis of US corporate credit exposures. Bundesbank Series 2, Discussion Paper (2): 2004. Available at SSRN: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2793954. Accessed: 01.05.2018
Duellmann, K., J. Kuell and M. Kunisch: Estimating asset correlations from stock prices or default rates- Which method is superior? Journal of Economic Dynamics and Control 34(11): 2341-2357, 2010
Efron, B. and R. J. Tibshirani: An introduction to the bootstrap. CRC press, 1994
Pfeuffer, M., M. Nagl, M. Fischer and D. Roesch: Parameter Estimation and Bias Correction in the Vasicek Credit Portfolio Model. Journal of Risk 22(4), 2020
Frei, C. and M. Wunsch: Moment Estimators for Autocorrelated Time Series and their Application to Default Correlations. Journal of Credit Risk 14: 1-29, 2018
Gordy, M. B.: A comparative anatomy of credit risk models. Journal of Banking & Finance 24(1): 119-149, 2000
Gordy, M. B. and E. Heitfield: Small-sample estimation of models of portfolio credit risk. In Recent Advances in Financial Engineering: Proceedings of the KIER-TMU International Workshop on Financial Engineering, 2009: Otemachi, Sankei Plaza, Tokyo, 3-4 August 2009: 43-63, World Scientific, 2010
Hoese, S. and S. Huschens: Confidence intervals for asset correlations in the asymptotic single risk factor model. In Operations Research Proceedings 2010: 111-116, 2010
Kalkbrener, M. and A. Onwunta: Validating structural credit portfolio models. Model risk-identification, measurement and management. Risk Books, London: 233-261, 2010
Loeffler, G. The effects of estimation error on measures of portfolio credit risk. Journal of Banking & Finance 27(8): 1427-1453, 2003
Lucas, D. J.: Default correlation and credit analysis. The Journal of Fixed Income 4(4): 76-87, 1995
Meyer, C.: Estimation of intra-sector asset correlations. The Journal of Risk Model Validation 3(3): 47-79, 2009
Vasicek, O. A: The distribution of loan portfolio value. Risk 15(12): 160-162, 2002
To give a first insight of several default time series, this function combines multiple estimator functions (intra and inter) and visualize the results.
analyze_AssetCorr(DTS,N, B=NA, DB=NA, JC=FALSE, CI_Boot=NA, Adjust=0.0001, type="bca", Intra=c("AMM","FMM","CMM","JDP1","JDP2","MLE","AMLE","Beta","Mode"), Inter=c("Copula","Cov","JDP","MLE"))
analyze_AssetCorr(DTS,N, B=NA, DB=NA, JC=FALSE, CI_Boot=NA, Adjust=0.0001, type="bca", Intra=c("AMM","FMM","CMM","JDP1","JDP2","MLE","AMLE","Beta","Mode"), Inter=c("Copula","Cov","JDP","MLE"))
DTS |
a matrix, containing the default time series of each sector. |
N |
a matrix, containing the number of obligors at the beginning of the period of sector. |
B |
an integer, indicating how many bootstrap repetitions should be used for the single bootstrap corrected estimate (intra and inter). |
DB |
a combined vector, indicating how many bootstrap repetitions should be used for the inner (first entry) and outer loop (second entry) to correct the bias using the double bootstrap (intra and inter). |
JC |
a logical variable, indicating if the jackknife corrected estimate should be calculated (intra and inter). |
CI_Boot |
a number, indicating the desired confidence interval if the single bootstrap correction is specified.
By default, the interval is calculated as the bootstrap corrected and accelerated confidence interval (Bca). Furthermore, the analytical confidence intervals are provided, using the same value as |
Adjust |
a number, which should be added to a observed default rate of 0 or subtracted form a observed default rate of 1 (only for the intraAMLE). |
type |
a string, indicating the desired method to calculate the bootstrap confidence intervals. For more details see |
Intra |
a combined string, indicating which intra correlation estimators should be used. All estimators are set as default. |
Inter |
a combined string, indicating which inter correlation estimators should be used. All estimators are set as default. |
To give an first insight, the function provides an overview of the several default time series and estimates using different estimators (intra and inter) simultaneously. The plug-in estimates of the intra correlation using inter correlation methods will be estimated via intraMLE
.
If DB
is specified, the single bootstrap corrected estimate will be calculated by using the bootstrap values of the outer loop.
The returned value is a list, containing the following entries:
Estimators_Intra
Sector |
Number of the sector |
Sector_Name |
Name of the sector |
Estimator |
Name of the applied estimator |
Estimate |
Value of the calculated estimate |
Type |
String, which indicating corrected/non-corrected estimates |
correction |
Name of the correction method |
B |
Number of single bootstrap repetitions |
DB |
Number of the double bootstrap repetitions |
CI_Boot |
Selected two-sided bootstrap confidence interval |
CI |
A string, indicating if the corresponding value is the upper or lower bound |
Estimators_Inter
Sector_1 |
Number of the sector |
Sector_Name_1 |
Name of the sector |
Sector_2 |
Number of the sector |
Sector_Name_2 |
Name of the sector |
Estimator |
Name of the applied estimator to Sector_1 and Sector_2 |
Estimate |
Value of the calculated estimateto Sector_1 and Sector_2 |
Type |
String, which indicating corrected/non-corrected estimates |
correction |
Name of the correction method |
B |
Number of single bootstrap repetitions |
DB |
Number of the double bootstrap repetitions |
CI_Boot |
Selected two-sided bootstrap confidence interval |
CI |
A string, indicating if the corresponding value is the upper or lower bound |
Kevin Jakob
Botha M, van Vuuren G (2010). “Implied asset correlation in retail loan portfolios.” Journal of Risk Management in Financial Institutions, 3(2), 156–173.
Chang J, Hall P (2015). “Double-bootstrap methods that use a single double-bootstrap simulation.” Biometrika, 102(1), 203–214.
De Servigny A, Renault O (2002). “Default correlation: empirical evidence.” Working Paper, Standard and Poors. Available at: https://www.semanticscholar.org/paper/Default-correlation%3A-empirical-evidence-Servigny-Renault/aae251436d0e3b489951c0d38463d71106755675.
Duellmann K, Gehde-Trapp M (2004). “Systematic risk in recovery rates: an empirical analysis of US corporate credit exposures.” Bundesbank Series 2, Discussion Paper. Available at SSRN: http://hdl.handle.net/10419/19729. Accessed: 02.11.2017.
Efron B, Tibshirani RJ (1994). An introduction to the bootstrap. CRC press.
Frei C, Wunsch M (2018). “Moment Estimators for Autocorrelated Time Series and their Application to Default Correlations.” Journal of Credit Risk, 14, 1–29.
Gordy MB (2000). “A comparative anatomy of credit risk models.” Journal of Banking & Finance, 24(1), 119–149.
Gordy MB, Heitfield E (2010). “Small-sample estimation of models of portfolio credit risk.” In Recent Advances in Financial Engineering: Proceedings of the KIER-TMU International Workshop on Financial Engineering, 2009: Otemachi, Sankei Plaza, Tokyo, 3-4 August 2009, 43-63. World Scientific.
Kalkbrener M, Onwunta A (2010). “Validating structural credit portfolio models.” Model risk - identification, measurement and management. Risk Books, London, 233–261.
Lucas DJ (1995). “Default correlation and credit analysis.” The Journal of Fixed Income, 4(4), 76–87.
Meyer C (2009). “Estimation of intra-sector asset correlations.” The Journal of Risk Model Validation, 3(3), 47–79.
Teetor P (2011). R Cookbook: Proven recipes for data analysis, statistics, and graphics. O'Reilly Media, Inc.
intraAMM
, intraFMM
, intraJDP2
,
intraMLE
, intraJDP1
, intraCMM
,
intraMode
,intraBeta
,
interJDP
, interCopula
,interCMM
,
interCov
, interMLE
, intraALL
,
interALL
library(mvtnorm) set.seed(111) NoO=1000 #Number of obligors in each sector Years=20 AC=0.3 PD=0.01 Psi=rmvnorm(Years,sigma=matrix(c(1,0.5,0.5,0.5,1,0.5,0.5,0.5,1),3)) PDcond1=pnorm((qnorm(PD)-sqrt(AC)*Psi[,1])/sqrt(1-AC)) PDcond2=pnorm((qnorm(PD)-sqrt(AC/2)*Psi[,2])/sqrt(1-AC/2)) PDcond3=pnorm((qnorm(PD)-sqrt(AC*2)*Psi[,3])/sqrt(1-AC*2)) DTS=cbind(rbinom(Years,NoO,PDcond1),rbinom(Years,NoO,PDcond2),rbinom(Years,NoO,PDcond3)) N=matrix(NoO,nrow = Years,ncol = 3) Output<-analyze_AssetCorr(DTS,N) #Bootstrap Correction and CIs Output<-analyze_AssetCorr(DTS,N,B=100,CI_Boot=0.95) #Double Bootstrap Correction and Jackknife Output<-analyze_AssetCorr(DTS,N,DB=c(50,50),JC=TRUE)
library(mvtnorm) set.seed(111) NoO=1000 #Number of obligors in each sector Years=20 AC=0.3 PD=0.01 Psi=rmvnorm(Years,sigma=matrix(c(1,0.5,0.5,0.5,1,0.5,0.5,0.5,1),3)) PDcond1=pnorm((qnorm(PD)-sqrt(AC)*Psi[,1])/sqrt(1-AC)) PDcond2=pnorm((qnorm(PD)-sqrt(AC/2)*Psi[,2])/sqrt(1-AC/2)) PDcond3=pnorm((qnorm(PD)-sqrt(AC*2)*Psi[,3])/sqrt(1-AC*2)) DTS=cbind(rbinom(Years,NoO,PDcond1),rbinom(Years,NoO,PDcond2),rbinom(Years,NoO,PDcond3)) N=matrix(NoO,nrow = Years,ncol = 3) Output<-analyze_AssetCorr(DTS,N) #Bootstrap Correction and CIs Output<-analyze_AssetCorr(DTS,N,B=100,CI_Boot=0.95) #Double Bootstrap Correction and Jackknife Output<-analyze_AssetCorr(DTS,N,DB=c(50,50),JC=TRUE)
This function return a time series of defaults.
defaultTimeseries(N, AC, Years, PD)
defaultTimeseries(N, AC, Years, PD)
N |
Number of obligors for each point in time. |
AC |
Desired asset correlation. |
Years |
Number of points in time, which corresponds to the length of the default time series. |
PD |
Uniform probability of default assumed for each obligor. |
This function can be used to draw a random default time series, assuming a specific length of the time series, number of obligors, a uniform asset correlation and a uniform probability of default.
The output contains a Nx1-vector with simulated defaults for each point in time.
D1<-defaultTimeseries(1000,0.1,10,0.01)
D1<-defaultTimeseries(1000,0.1,10,0.01)
To give a first insight of the default time series, this function combines multiple estimator functions and visualize the results.
interALL(d1,n1,d2,n2,rho1,rho2, B=NA, DB=NA, JC=FALSE, CI_Boot=NA, plot=FALSE, type="bca",Estimator=c("Copula","Cov","JDP","MLE"),show_progress=FALSE)
interALL(d1,n1,d2,n2,rho1,rho2, B=NA, DB=NA, JC=FALSE, CI_Boot=NA, plot=FALSE, type="bca",Estimator=c("Copula","Cov","JDP","MLE"),show_progress=FALSE)
d1 |
a vector, containing the default time series of sector 1. |
n1 |
a vector, containing the number of obligors at the beginning of the period in sector 1. |
d2 |
a vector, containing the default time series of sector 2. |
n2 |
a vector, containing the number of obligors at the beginning of the period in sector 2. |
rho1 |
estimated intra correlation of sector 1. |
rho2 |
estimated intra correlation of sector 2. |
B |
an integer, indicating how many bootstrap repetitions should be used for the single bootstrap corrected estimate. |
DB |
a combined vector, indicating how many bootstrap repetitions should be used for the inner (first entry) and outer loop (second entry) to correct the bias using the double bootstrap. |
JC |
a logical variable, indicating if the jackknife corrected estimate should be calculated. |
CI_Boot |
a number, indicating the desired confidence interval if the single bootstrap correction is specified.
By default, the interval is calculated as the bootstrap corrected and accelerated confidence interval (Bca). Furthermore, the analytical confidence intervals are provided, using the same value as |
plot |
a logical variable, indicating whether a plot of the default time series and the estimates should be generated using the |
type |
a string, indicating the desired method to calculate the bootstrap confidence intervals. For more details see |
Estimator |
a combined string, indicating which estimators should be used. All estimators are set as default. |
show_progress |
a logical variable, indicating whether a progress bar should be displayed. |
To give an first insight, the function provides an overview of the default time series and estimates using different estimators simultaneously.
If DB
is specified, the single bootstrap corrected estimate will be calculated by using the bootstrap values of the outer loop.
The returned value is a data frame, containing the following columns:
Estimator |
Name of the applied estimator |
Estimate |
Value of the calculated estimate |
Type |
String, which indicating corrected/non-corrected estimates |
correction |
Name of the correction method |
B |
Number of single bootstrap repetitions |
DB |
Number of the double bootstrap repetitions |
CI_Boot |
Selected two-sided bootstrap confidence interval |
CI |
A string, indicating if the corresponding value is the upper or lower bound |
Kevin Jakob
Chang J, Hall P (2015). “Double-bootstrap methods that use a single double-bootstrap simulation.” Biometrika, 102(1), 203–214.
De Servigny A, Renault O (2002). “Default correlation: empirical evidence.” Working Paper, Standard and Poors. Available at: https://www.semanticscholar.org/paper/Default-correlation%3A-empirical-evidence-Servigny-Renault/aae251436d0e3b489951c0d38463d71106755675.
Duellmann K, Gehde-Trapp M (2004). “Systematic risk in recovery rates: an empirical analysis of US corporate credit exposures.” Bundesbank Series 2, Discussion Paper. Available at SSRN: http://hdl.handle.net/10419/19729. Accessed: 02.11.2017.
Efron B, Tibshirani RJ (1994). An introduction to the bootstrap. CRC press.
Frei C, Wunsch M (2018). “Moment Estimators for Autocorrelated Time Series and their Application to Default Correlations.” Journal of Credit Risk, 14, 1–29.
Gordy MB (2000). “A comparative anatomy of credit risk models.” Journal of Banking & Finance, 24(1), 119–149.
Gordy MB, Heitfield E (2010). “Small-sample estimation of models of portfolio credit risk.” In Recent Advances in Financial Engineering: Proceedings of the KIER-TMU International Workshop on Financial Engineering, 2009: Otemachi, Sankei Plaza, Tokyo, 3-4 August 2009, 43-63. World Scientific.
Kalkbrener M, Onwunta A (2010). “Validating structural credit portfolio models.” Model risk - identification, measurement and management. Risk Books, London, 233–261.
Lucas DJ (1995). “Default correlation and credit analysis.” The Journal of Fixed Income, 4(4), 76–87.
Meyer C (2009). “Estimation of intra-sector asset correlations.” The Journal of Risk Model Validation, 3(3), 47–79.
Teetor P (2011). R Cookbook: Proven recipes for data analysis, statistics, and graphics. O'Reilly Media, Inc.
intraAMM
, intraFMM
, intraJDP2
intraMLE
, intraJDP1
, intraCMM
set.seed(111) Psi=rmvnorm(20,sigma=matrix(c(1,0.5,0.5,1),2)) PDcond1=pnorm((qnorm(0.01)-sqrt(0.05)*Psi[,1])/sqrt(1-0.05)) PDcond2=pnorm((qnorm(0.01)-sqrt(0.2)*Psi[,2])/sqrt(1-0.2)) D1=rbinom(20,1000,PDcond1) D2=rbinom(20,1000,PDcond2) N1=N2=rep(1000,20) DTS=cbind(D1,D2) N=cbind(N1,N2) rho1=intraMLE(D1,N1)$Original rho2=intraMLE(D2,N2)$Original #Point Estimates interALL(D1,N1,D2,N2,rho1,rho2, plot=TRUE) #Bootstrap corrected estimates of all available estimators: InterCorr=interALL(D1,N1,D2,N2,rho1,rho2, B=500, CI_Boot=0.95 , plot=TRUE, show_progress=TRUE) #Jackknife correction InterCorr=interALL(D1,N1,D2,N2,rho1,rho2, JC=TRUE, plot=TRUE) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop InterCorr=interALL(D1,N1,D2,N2,rho1,rho2, DB=c(10,50), plot=TRUE)
set.seed(111) Psi=rmvnorm(20,sigma=matrix(c(1,0.5,0.5,1),2)) PDcond1=pnorm((qnorm(0.01)-sqrt(0.05)*Psi[,1])/sqrt(1-0.05)) PDcond2=pnorm((qnorm(0.01)-sqrt(0.2)*Psi[,2])/sqrt(1-0.2)) D1=rbinom(20,1000,PDcond1) D2=rbinom(20,1000,PDcond2) N1=N2=rep(1000,20) DTS=cbind(D1,D2) N=cbind(N1,N2) rho1=intraMLE(D1,N1)$Original rho2=intraMLE(D2,N2)$Original #Point Estimates interALL(D1,N1,D2,N2,rho1,rho2, plot=TRUE) #Bootstrap corrected estimates of all available estimators: InterCorr=interALL(D1,N1,D2,N2,rho1,rho2, B=500, CI_Boot=0.95 , plot=TRUE, show_progress=TRUE) #Jackknife correction InterCorr=interALL(D1,N1,D2,N2,rho1,rho2, JC=TRUE, plot=TRUE) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop InterCorr=interALL(D1,N1,D2,N2,rho1,rho2, DB=c(10,50), plot=TRUE)
This method provides analytical bias correction via Taylor series expansion. Additionally the bias due to autocorrelated default time series can be corrected. The estimated parameter is the inter correlation of the asset variables (in contrast to all other inter correlation methods of this package).
interCMM(d1,n1,d2,n2,rho,l=0, B=0,DB=c(0,0), JC=FALSE, CI_Boot, type="bca", plot=FALSE)
interCMM(d1,n1,d2,n2,rho,l=0, B=0,DB=c(0,0), JC=FALSE, CI_Boot, type="bca", plot=FALSE)
d1 |
a vector, containing the default time series of sector 1. |
n1 |
a vector, containing the number of obligors at the beginning of the period in sector 1. |
d2 |
a vector, containing the default time series of sector 2. |
n2 |
a vector, containing the number of obligors at the beginning of the period in sector 2. |
rho |
estimated inter asset correlation of another estimator. |
l |
a number, indicating how many lags of autocorrelation should be used for the correction. |
B |
an integer, indicating how many bootstrap repetitions should be used for the single bootstrap corrected estimate. |
DB |
a combined vector, indicating how many bootstrap repetitions should be used for the inner (first entry) and outer loop (second entry) to correct the bias using the double bootstrap. |
JC |
a logical variable, indicating if the jackknife corrected estimate should be calculated. |
CI_Boot |
a number, indicating the desired confidence level if the single bootstrap correction is specified. By default, the interval is calculated as the bootstrap corrected and accelerated confidence interval (Bca). Furthermore, the analytical confidence intervals are provided, using the same value as |
type |
a string, indicating the desired method to calculate the confidence intervals. For more details see |
plot |
a logical variable, indicating whether a plot of the single bootstrap density should be generated. |
This function estimates the inter correlation of the asset variables. In general, the inter correlation can be estimated for the asset variables or the systematic factors. This estimator uses a inter correlation estimate of another method to correct the bias due to small sample or autocorrelation. Only one parameter (inter correlation) must be estimated. Additionally, asymptotic confidence interval can be provided, as shown by Frei and Wunsch (2018). The inter correlation of the asset variables can be transformed to the correlation of the systematic factors as follows:
If DB
is specified, the single bootstrap corrected estimate will be calculated using the bootstrap values of the outer loop (oValues
).
The returned value is a list, containing the following components (depending on the selected arguments):
Original |
Estimate of the original method |
Bootstrap |
Bootstrap corrected estimate |
Double_Bootstrap |
Double bootstrap corrected estimate |
Jackknife |
Jackknife corrected estimate |
CI_Boot |
Selected two-sided bootstrap confidence interval |
bValues |
Estimates from the bootstrap resampling |
iValues |
Estimates from the double bootstrap resampling- inner loop |
oValues |
Estimates from the double bootstrap resampling- outer loop |
Chang J, Hall P (2015). “Double-bootstrap methods that use a single double-bootstrap simulation.” Biometrika, 102(1), 203–214.
Efron B, Tibshirani RJ (1994). An introduction to the bootstrap. CRC press.
Frei C, Wunsch M (2018). “Moment Estimators for Autocorrelated Time Series and their Application to Default Correlations.” Journal of Credit Risk, 14, 1–29.
interJDP
, interCopula
, interMLE
, interCov
d1=defaultTimeseries(1000,0.1,10,0.01) d2=defaultTimeseries(1000,0.2,10,0.01) n1=n2=rep(1000,10) #Using the Covariance method to estimate the plug-in inter correlation. inter_sys=interCov(d1,n1,d2,n2,0.1,0.2)$Original inter_asset= inter_sys*sqrt(0.1*0.2) interCMM(d1,n1,d2,n2,inter_asset,l=0) InterCorr=interCMM(d1,n1,d2,n2,inter_asset, JC=TRUE) InterCorr=interCMM(d1,n1,d2,n2,inter_asset, B=1000, CI_Boot=0.95, plot=TRUE) InterCorr=interCMM(d1,n1,d2,n2,inter_asset, DB=c(10,50))
d1=defaultTimeseries(1000,0.1,10,0.01) d2=defaultTimeseries(1000,0.2,10,0.01) n1=n2=rep(1000,10) #Using the Covariance method to estimate the plug-in inter correlation. inter_sys=interCov(d1,n1,d2,n2,0.1,0.2)$Original inter_asset= inter_sys*sqrt(0.1*0.2) interCMM(d1,n1,d2,n2,inter_asset,l=0) InterCorr=interCMM(d1,n1,d2,n2,inter_asset, JC=TRUE) InterCorr=interCMM(d1,n1,d2,n2,inter_asset, B=1000, CI_Boot=0.95, plot=TRUE) InterCorr=interCMM(d1,n1,d2,n2,inter_asset, DB=c(10,50))
The inter correlation parameter can be estimated by fitting a Gaussian copula with Vasicek distributed margins on two observed default rate time series. The estimated parameter is the inter correlation of the systematic factors.
interCopula(df1, df2, B = 0, DB=c(0,0),JC = FALSE, CI, CI_Boot, type="bca", plot=FALSE)
interCopula(df1, df2, B = 0, DB=c(0,0),JC = FALSE, CI, CI_Boot, type="bca", plot=FALSE)
df1 |
a vector, containing the default rate time series of sector 1. |
df2 |
a vector, containing the default rate times eries of sector 2. |
B |
an integer, indicating how many bootstrap repetitions should be used for the single bootstrap corrected estimate. |
DB |
a combined vector, indicating how many bootstrap repetitions should be used for the inner (first entry) and outer loop (second entry) to correct the bias using the double bootstrap. |
JC |
a logical variable, indicating if the jackknife corrected estimate should be calculated. |
CI |
a number, indicating the desired asymptotic confidence interval of the estimate. |
CI_Boot |
a number, indicating the desired bootstrap confidence interval if the single bootstrap correction is specified. By default, the interval is calculated as the bootstrap corrected and accelerated confidence interval (Bca). Furthermore, the analytical confidence intervals are provided, using the same value as |
type |
a string, indicating the desired method to calculate the confidence intervals. For more details see |
plot |
a logical variable, indicating whether a plot of the single bootstrap density should be generated. |
This function estimates the inter correlation of the systematic factors. In general the inter correlation can be estimated for the asset variables or the systematic factors. This method estimates the inter correlation of the systematic factors. The parameter will be estimated via Maximum Likelihood estimation, which ensures that an asymptotic confidence interval can be provided. The inter correlation of the systematic factors can be transformed to the correlation of the asset variables as follows:
The estimated inter correlation of the systematic factors lies between -1 and 1.
If DB
is specified, the single bootstrap corrected estimate will be calculated using the bootstrap values of the outer loop (oValues
).
The returned value is a list, containing the following components (depending on the selected arguments):
Original |
Estimate of the original method |
Bootstrap |
Bootstrap corrected estimate |
Double_Bootstrap |
Double bootstrap corrected estimate |
Jackknife |
Jackknife corrected estimate |
CI |
Selected two-sided asymptotic bootstrap confidence interval |
CI_Boot |
Selected two-sided bootstrap confidence interval |
bValues |
Estimates from the bootstrap resampling |
iValues |
Estimates from the double bootstrap resampling- inner loop |
oValues |
Estimates from the double bootstrap resampling- outer loop |
Chang J, Hall P (2015). “Double-bootstrap methods that use a single double-bootstrap simulation.” Biometrika, 102(1), 203–214.
Efron B, Tibshirani RJ (1994). An introduction to the bootstrap. CRC press.
Pfeuffer M, Nagl M, Fischer M, Roesch D (2020). “Parameter Estimation and Bias Correction in the Vasicek Credit Portfolio Model.” Journal of Risk, 22number.
interJDP
, interCMM
, interMLE
, interCov
set.seed(10) d1=defaultTimeseries(1000,0.1,10,0.01) d2=defaultTimeseries(1000,0.2,10,0.01) n=rep(1000,10) df1=d1/n df2=d2/n InterCorr=interCopula(df1,df2, CI=0.95) InterCorr=interCopula(df1,df2, JC=TRUE) InterCorr=interCopula(df1,df2, B=1000, CI_Boot=0.95, plot=TRUE) InterCorr=interCopula(df1,df2, DB=c(50,50))
set.seed(10) d1=defaultTimeseries(1000,0.1,10,0.01) d2=defaultTimeseries(1000,0.2,10,0.01) n=rep(1000,10) df1=d1/n df2=d2/n InterCorr=interCopula(df1,df2, CI=0.95) InterCorr=interCopula(df1,df2, JC=TRUE) InterCorr=interCopula(df1,df2, B=1000, CI_Boot=0.95, plot=TRUE) InterCorr=interCopula(df1,df2, DB=c(50,50))
The inter correlation parameter can be estimated by matching the empirical covariance of two default time series with the theoretical. The estimated parameter is the inter correlation of the systematic factors.
interCov(d1, n1, d2, n2, rho1, rho2, B = 0, DB=c(0,0), JC = FALSE, CI_Boot, type="bca", plot=FALSE)
interCov(d1, n1, d2, n2, rho1, rho2, B = 0, DB=c(0,0), JC = FALSE, CI_Boot, type="bca", plot=FALSE)
d1 |
a vector, containing the default time series of sector 1. |
n1 |
a vector, containing the number of obligors at the beginning of the period in sector 1. |
d2 |
a vector, containing the default times eries of sector 2. |
n2 |
a vector, containing the number of obligors at the beginning of the period in sector 2. |
rho1 |
estimated intra asset correlation of sector 1. |
rho2 |
estimated intra asset correlation of sector 2. |
B |
an integer, indicating how many bootstrap repetitions should be used for the single bootstrap corrected estimate. |
DB |
a combined vector, indicating how many bootstrap repetitions should be used for the inner (first entry) and outer loop (second entry) to correct the bias using the double bootstrap. |
JC |
a logical variable, indicating if the jackknife corrected estimate should be calculated. |
CI_Boot |
a number, indicating the desired confidence level if the single bootstrap correction is specified. By default, the interval is calculated as the bootstrap corrected and accelerated confidence interval (Bca). |
type |
a string indicating the desired method to calculate the confidence intervals. For more details see |
plot |
a logical variable, indicating whether a plot of the single bootstrap density should be generated. |
This function estimates the inter correlation of the systematic factors. In general, the inter correlation can be estimated for the asset variables or the systematic factors. To ensure the traceability of the estimation, the intra correlation estimates will be used as plug-in estimates. Hence only one parameter (inter correlation) must be estimated. The inter correlation of the systematic factors can be transformed to the correlation of the asset variables as follows:
The estimated inter correlation of the systematic factors lies between -1 and 1.
If DB
is specified, the single bootstrap corrected estimate will be calculated using the bootstrap values of the outer loop (oValues
).
The returned value is a list, containing the following components (depending on the selected arguments):
Original |
Estimate of the original method |
Bootstrap |
Bootstrap corrected estimate |
Double_Bootstrap |
Double bootstrap corrected estimate |
Jackknife |
Jackknife corrected estimate |
CI_Boot |
Selected two-sided bootstrap confidence interval |
bValues |
Estimates from the single bootstrap resampling |
iValues |
Estimates from the double bootstrap resampling- inner loop |
oValues |
Estimates from the double bootstrap resampling- outer loop |
Chang J, Hall P (2015). “Double-bootstrap methods that use a single double-bootstrap simulation.” Biometrika, 102(1), 203–214.
Bluhm C, Overbeck L (2003). “Systematic risk in homogeneous credit portfolios.” Credit risk. Physica-Verlag, Heidelberg, 35–48.
Efron B, Tibshirani RJ (1994). An introduction to the bootstrap. CRC press.
interJDP
, interCMM
, interMLE
, interCopula
set.seed(10) d1=defaultTimeseries(1000,0.1,10,0.01) d2=defaultTimeseries(1000,0.2,10,0.01) n1=n2=rep(1000,10) InterCorr=interCov(d1,n1,d2,n2,0.1,0.2) InterCorr=interCov(d1,n1,d2,n2,0.1,0.2, JC=TRUE) InterCorr=interCov(d1,n1,d2,n2,0.1,0.2, B=1000, CI_Boot=0.95) InterCorr=interCov(d1,n1,d2,n2,0.1,0.2, DB=c(50,50))
set.seed(10) d1=defaultTimeseries(1000,0.1,10,0.01) d2=defaultTimeseries(1000,0.2,10,0.01) n1=n2=rep(1000,10) InterCorr=interCov(d1,n1,d2,n2,0.1,0.2) InterCorr=interCov(d1,n1,d2,n2,0.1,0.2, JC=TRUE) InterCorr=interCov(d1,n1,d2,n2,0.1,0.2, B=1000, CI_Boot=0.95) InterCorr=interCov(d1,n1,d2,n2,0.1,0.2, DB=c(50,50))
The inter correlation parameter can be estimated by matching the empirical Joint Default Probability of two default time series with the theoretical one. The estimated parameter is the correlation of the systematic factors.
interJDP(d1, n1, d2, n2, rho1, rho2, B = 0, DB=c(0,0), JC = FALSE, CI_Boot, type="bca", plot=FALSE)
interJDP(d1, n1, d2, n2, rho1, rho2, B = 0, DB=c(0,0), JC = FALSE, CI_Boot, type="bca", plot=FALSE)
d1 |
a vector, containing the default time series of sector 1. |
n1 |
a vector, containing the number of obligors at the beginning of the period in sector 1. |
d2 |
a vector, containing the default time series of sector 2. |
n2 |
a vector, containing the number of obligors at the beginning of the period in sector 2. |
rho1 |
estimated intra correlation of sector 1. |
rho2 |
estimated intra correlation of sector 2. |
B |
an integer, indicating how many bootstrap repetitions should be used for the single bootstrap corrected estimate. |
DB |
a combined vector, indicating how many bootstrap repetitions should be used for the inner (first entry) and outer loop (second entry) to correct the bias using the double bootstrap. |
JC |
a logical variable, indicating if the jackknife corrected estimate should be calculated. |
CI_Boot |
a number, indicating the desired confidence level if the single bootstrap correction is specified. By default, the interval is calculated as the bootstrap corrected and accelerated confidence interval (Bca). |
type |
a string, indicating the desired method to calculate the confidence intervals. For more details see |
plot |
a logical variable, indicating whether a plot of the single bootstrap density should be generated. |
This function estimates the inter correlation of the systematic factor. In general, the inter correlation can be estimated for the asset variables or the systematic factors. To ensure the traceability of the estimation, the intra correlation estimates will be used as plug-in estimates. Hence only one parameter (inter correlation) must be estimated. The inter correlation of the systematic factor can be transformed to the correlation of the asset variables as follows:
The estimated inter correlation of the systematic factors lies between -1 and 1.
If DB
is specified, the single bootstrap corrected estimate will be calculated using the bootstrap values of the outer loop (oValues
).
The returned value is a list, containing the following components (depending on the selected arguments):
Original |
Estimate of the original method |
Bootstrap |
Bootstrap corrected estimate |
Double_Bootstrap |
Double bootstrap corrected estimate |
Jackknife |
Jackknife corrected estimate |
CI_Boot |
Selected two-sided bootstrap confidence interval |
bValues |
Estimates from the bootstrap resampling |
iValues |
Estimates from the double bootstrap resampling- inner loop |
oValues |
Estimates from the double bootstrap resampling- outer loop |
Chang J, Hall P (2015). “Double-bootstrap methods that use a single double-bootstrap simulation.” Biometrika, 102(1), 203–214.
De Servigny A, Renault O (2002). “Default correlation: empirical evidence.” Working Paper, Standard and Poors. Available at: https://www.semanticscholar.org/paper/Default-correlation%3A-empirical-evidence-Servigny-Renault/aae251436d0e3b489951c0d38463d71106755675.
Efron B, Tibshirani RJ (1994). An introduction to the bootstrap. CRC press.
Kalkbrener M, Onwunta A (2010). “Validating structural credit portfolio models.” Model risk - identification, measurement and management. Risk Books, London, 233–261.
interCov
, interCMM
, interMLE
, interCopula
d1=defaultTimeseries(1000,0.1,10,0.01) d2=defaultTimeseries(1000,0.2,10,0.01) n1=n2=rep(1000,10) InterCorr=interJDP(d1,n1,d2,n2,0.1,0.2) InterCorr=interJDP(d1,n1,d2,n2,0.1,0.2, JC=TRUE) InterCorr=interJDP(d1,n1,d2,n2,0.1,0.2, B=1000, CI_Boot=0.95) InterCorr=interJDP(d1,n1,d2,n2,0.1,0.2, DB=c(10,50))
d1=defaultTimeseries(1000,0.1,10,0.01) d2=defaultTimeseries(1000,0.2,10,0.01) n1=n2=rep(1000,10) InterCorr=interJDP(d1,n1,d2,n2,0.1,0.2) InterCorr=interJDP(d1,n1,d2,n2,0.1,0.2, JC=TRUE) InterCorr=interJDP(d1,n1,d2,n2,0.1,0.2, B=1000, CI_Boot=0.95) InterCorr=interJDP(d1,n1,d2,n2,0.1,0.2, DB=c(10,50))
The inter correlation parameter can be estimated by maximizing the Vasicek-binomial log-likelihood. The default process in the Vasicek model follows a binomial distribution, conditional on the realisation of the systematic factor. Hence, the inter correlation of the systematic factor can be estimated by maximizing the resulting log likelihood.
interMLE(d1, n1, d2, n2, rho1, rho2, B = 0, DB=c(0,0), JC = FALSE, CI, plot=FALSE)
interMLE(d1, n1, d2, n2, rho1, rho2, B = 0, DB=c(0,0), JC = FALSE, CI, plot=FALSE)
d1 |
a vector, containing the default time series of sector 1. |
n1 |
a vector, containing the number of obligors at the beginning of the period in sector 1. |
d2 |
a vector, containing the default time series of sector 2. |
n2 |
a vector, containing the number of obligors at the beginning of the period in sector 2. |
rho1 |
estimated intra correlation of sector 1. |
rho2 |
estimated intra correlation of sector 2. |
B |
an integer, indicating how many bootstrap repetitions should be used for the single bootstrap corrected estimate. |
DB |
a combined vector, indicating how many bootstrap repetitions should be used for the inner (first entry) and outer loop (second entry) to correct the bias using the double bootstrap. |
JC |
a logical variable, indicating if the jackknife corrected estimate should be calculated. |
CI |
a number, indicating the desired asymptotic confidence bound of the estimate. |
plot |
a logical variable, indicating whether a plot of the single bootstrap density should be generated. |
This function estimates the inter correlation of the systematic factor. In general, the inter correlation can be estimated for the asset variables or the systematic factors. To ensure the traceability of the estimation, the intra correlation estimates will be used as plug-in estimates. Hence only one parameter (inter correlation) must be estimated. The inter correlation of the systematic factor can be transformed to the correlation of the asset variables as follows:
The estimated inter correlation of the systematic factors lies between -1 and 1.
If DB
is specified, the single bootstrap corrected estimate will be calculated using the bootstrap values of the outer loop (oValues
).
The returned value is a list, containing the following components (depending on the selected arguments):
Original |
Estimate of the original method |
Bootstrap |
Bootstrap corrected estimate |
Double_Bootstrap |
Double bootstrap corrected estimate |
Jackknife |
Jackknife corrected estimate |
CI |
Selected two-sided asymptotic bootstrap confidence interval |
CI_Boot |
Selected two-sided bootstrap confidence interval |
bValues |
Estimates from the bootstrap resampling |
iValues |
Estimates from the double bootstrap resampling- inner loop |
oValues |
Estimates from the double bootstrap resampling- outer loop |
Chang J, Hall P (2015). “Double-bootstrap methods that use a single double-bootstrap simulation.” Biometrika, 102(1), 203–214.
Efron B, Tibshirani RJ (1994). An introduction to the bootstrap. CRC press.
Gordy MB, Heitfield E (2010). “Small-sample estimation of models of portfolio credit risk.” In Recent Advances in Financial Engineering: Proceedings of the KIER-TMU International Workshop on Financial Engineering, 2009: Otemachi, Sankei Plaza, Tokyo, 3-4 August 2009, 43-63. World Scientific.
interJDP
, interCopula
, interCMM
, interCov
d1=defaultTimeseries(1000,0.1,10,0.01) d2=defaultTimeseries(1000,0.2,10,0.01) n1=n2=rep(1000,10) InterCorr=interMLE(d1,n1,d2,n2,0.1,0.2, CI=0.95) InterCorr=interMLE(d1,n1,d2,n2,0.1,0.2, JC=TRUE) InterCorr=interMLE(d1,n1,d2,n2,0.1,0.2, B=1000, CI_Boot=0.95) InterCorr=interMLE(d1,n1,d2,n2,0.1,0.2, DB=c(10,50))
d1=defaultTimeseries(1000,0.1,10,0.01) d2=defaultTimeseries(1000,0.2,10,0.01) n1=n2=rep(1000,10) InterCorr=interMLE(d1,n1,d2,n2,0.1,0.2, CI=0.95) InterCorr=interMLE(d1,n1,d2,n2,0.1,0.2, JC=TRUE) InterCorr=interMLE(d1,n1,d2,n2,0.1,0.2, B=1000, CI_Boot=0.95) InterCorr=interMLE(d1,n1,d2,n2,0.1,0.2, DB=c(10,50))
To give a first insight of the default time series, this function combines multiple estimator functions and visualize the results.
intraALL(d,n, B=NA, DB=NA, JC=FALSE, CI_Boot=NA, Adjust=0.0001, plot=FALSE, type="bca", Quantile=0.999, Estimator=c("AMM","FMM","CMM","JDP1","JDP2", "MLE","AMLE","Beta","Mode"),show_progress=FALSE)
intraALL(d,n, B=NA, DB=NA, JC=FALSE, CI_Boot=NA, Adjust=0.0001, plot=FALSE, type="bca", Quantile=0.999, Estimator=c("AMM","FMM","CMM","JDP1","JDP2", "MLE","AMLE","Beta","Mode"),show_progress=FALSE)
d |
a vector, containing the default time series of the sector. |
n |
a vector, containing the number of obligors at the beginning of the period in the sector. |
B |
an integer, indicating how many bootstrap repetitions should be used for the single bootstrap corrected estimate. |
DB |
a combined vector, indicating how many bootstrap repetitions should be used for the inner (first entry) and outer loop (second entry) to correct the bias using the double bootstrap. |
JC |
a logical variable, indicating if the jackknife corrected estimate should be calculated. |
CI_Boot |
a number, indicating the desired confidence interval if the single bootstrap correction is specified.
By default, the interval is calculated as the bootstrap corrected and accelerated confidence interval (Bca). Furthermore, the analytical confidence intervals are provided, using the same value as |
Adjust |
a number, which should be added to a observed default rate of 0 or subtracted form a observed default rate of 1 (only for the AMLE). |
plot |
a logical variable, indicating whether a plot of the default time series and the estimates should be generated using the |
type |
a string, indicating the desired method to calculate the bootstrap confidence intervals. For more details see |
Quantile |
a number, indicating the desired confidence level of the Value-at-Risk (only for the intraBeta). |
Estimator |
a combined string, indicating which estimators should be used. All estimators are set as default. |
show_progress |
a logical variable, indicating whether a progress bar should be displayed. |
To give an first insight, the function provides an overview of the default time series and estimates using different estimators simultaneously.
If DB
is specified, the single bootstrap corrected estimate will be calculated by using the bootstrap values of the outer loop.
The returned value is a data frame, containing the following columns:
Estimator |
Name of the applied estimator |
Estimate |
Value of the calculated estimate |
Type |
String, which indicating corrected/non-corrected estimates |
correction |
Name of the correction method |
B |
Number of single bootstrap repetitions |
DB |
Number of the double bootstrap repetitions |
CI_Boot |
Selected two-sided bootstrap confidence interval |
CI |
A string, indicating if the corresponding value is the upper or lower bound |
Kevin Jakob
Chang J, Hall P (2015). “Double-bootstrap methods that use a single double-bootstrap simulation.” Biometrika, 102(1), 203–214.
De Servigny A, Renault O (2002). “Default correlation: empirical evidence.” Working Paper, Standard and Poors. Available at: https://www.semanticscholar.org/paper/Default-correlation%3A-empirical-evidence-Servigny-Renault/aae251436d0e3b489951c0d38463d71106755675.
Duellmann K, Gehde-Trapp M (2004). “Systematic risk in recovery rates: an empirical analysis of US corporate credit exposures.” Bundesbank Series 2, Discussion Paper. Available at SSRN: http://hdl.handle.net/10419/19729. Accessed: 02.11.2017.
Efron B, Tibshirani RJ (1994). An introduction to the bootstrap. CRC press.
Frei C, Wunsch M (2018). “Moment Estimators for Autocorrelated Time Series and their Application to Default Correlations.” Journal of Credit Risk, 14, 1–29.
Gordy MB (2000). “A comparative anatomy of credit risk models.” Journal of Banking & Finance, 24(1), 119–149.
Gordy MB, Heitfield E (2010). “Small-sample estimation of models of portfolio credit risk.” In Recent Advances in Financial Engineering: Proceedings of the KIER-TMU International Workshop on Financial Engineering, 2009: Otemachi, Sankei Plaza, Tokyo, 3-4 August 2009, 43-63. World Scientific.
Kalkbrener M, Onwunta A (2010). “Validating structural credit portfolio models.” Model risk - identification, measurement and management. Risk Books, London, 233–261.
Lucas DJ (1995). “Default correlation and credit analysis.” The Journal of Fixed Income, 4(4), 76–87.
Meyer C (2009). “Estimation of intra-sector asset correlations.” The Journal of Risk Model Validation, 3(3), 47–79.
Teetor P (2011). R Cookbook: Proven recipes for data analysis, statistics, and graphics. O'Reilly Media, Inc.
intraAMM
, intraFMM
, intraJDP2
,
intraMLE
, intraJDP1
, intraCMM
,
intraMode
,intraBeta
set.seed(10) d=defaultTimeseries(1000,0.01,20,0.01) n=rep(1000,20) #Point Estimate of all available estimators: intraALL(d,n,Adjust=0.001, plot=TRUE) #Bootstrap corrected estimates of all available estimators: IntraCorr=intraALL(d,n, Adjust=0.001, B=500, CI_Boot=0.95 , plot=TRUE, show_progress=TRUE) #Select some estimators IntraCorr=intraALL(d,n,B=500, CI_Boot=0.95, Adjust=0.001 ,Estimator=c("AMM","FMM"), plot=TRUE) #Jackknife correction IntraCorr=intraALL(d,n, JC=TRUE,Adjust=0.001, plot=TRUE) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraALL(d,n, DB=c(10,50),Adjust=0.001, plot=TRUE)
set.seed(10) d=defaultTimeseries(1000,0.01,20,0.01) n=rep(1000,20) #Point Estimate of all available estimators: intraALL(d,n,Adjust=0.001, plot=TRUE) #Bootstrap corrected estimates of all available estimators: IntraCorr=intraALL(d,n, Adjust=0.001, B=500, CI_Boot=0.95 , plot=TRUE, show_progress=TRUE) #Select some estimators IntraCorr=intraALL(d,n,B=500, CI_Boot=0.95, Adjust=0.001 ,Estimator=c("AMM","FMM"), plot=TRUE) #Jackknife correction IntraCorr=intraALL(d,n, JC=TRUE,Adjust=0.001, plot=TRUE) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraALL(d,n, DB=c(10,50),Adjust=0.001, plot=TRUE)
This estimator is based on the assumption of infinitely large portfolio size and a sufficient length of the default time series. In the asymptotic case, neither the default rate of 0 or a 1 occur. Hence one has to make an adjustment in these cases.
intraAMLE(d, n, B = 0, DB=c(0,0),JC = FALSE, Adjust = 0, CI_1,CI_2, CI_Boot,VaR=0.99, VaR_CI=0.95, ES=0.975, ES_CI=0.95, type="bca", plot=FALSE)
intraAMLE(d, n, B = 0, DB=c(0,0),JC = FALSE, Adjust = 0, CI_1,CI_2, CI_Boot,VaR=0.99, VaR_CI=0.95, ES=0.975, ES_CI=0.95, type="bca", plot=FALSE)
d |
a vector, containing the default time series of the sector. |
n |
a vector, containing the number of obligors at the beginning of the period in the sector. |
B |
an integer, indicating how many bootstrap repetitions should be used for the single bootstrap corrected estimate. |
DB |
a combined vector, indicating how many bootstrap repetitions should be used for the inner (first entry) and outer loop (second entry) to correct the bias using the double bootstrap. |
JC |
a logical variable, indicating if the jackknife corrected estimate should be calculated. |
Adjust |
a number, which should be added to a observed default rate of 0 or subtracted form a observed default rate of 1. |
CI_1 |
a number, indicating the desired analytical confidence interval of the estimate. The interval is computed by asymptotic Cramer-Rao lower bound for the standard deviation of the estimate based on Duellmann and Gehde-Trapp (2004). Additionally the asymptotic confidence interval for the unconditional PD is computed. |
CI_2 |
a number, indicating the desired analytical confidence interval of the estimate. The interval is computed by constructing a confidence interval for the variance, which can be transferred to the estimate based on Hoese and Huschens (2011). |
CI_Boot |
a number, indicating the desired confidence interval if the single bootstrap correction is specified.
By default, the interval is calculated as the bootstrap corrected and accelerated confidence interval (Bca). Furthermore, the analytical confidence intervals are provided, using the same value as |
VaR |
a number, indicating the desired confidence level for the asymptotic Value-at-Risk. |
VaR_CI |
a number, indicating the desired confidence interval for the asymptotic Value-at-Risk, derived by the delta method. |
ES |
a number, indicating the desired confidence level for the asymptotic Expected Shortfall. |
ES_CI |
a number, indicating the desired confidence interval for the asymptotic Expected Shortfall, derived by the delta method. |
type |
a string, indicating the desired method to calculate the confidence intervals. For more details see |
plot |
a logical variable, indicating whether a plot of the single bootstrap density should be generated. |
This estimator is based on the asymptotic assumptions of the Vasicek model, especially the assumption of an infinite large portfolio. If a 0 or 1 occurs at least once in the default rate time series, the estimator can not converge. Therefore, an adjustment (Adjust
) can be made. Nevertheless, Meyer (2009) argued that the adjustment can harm the estimation efficiency.
Additionally two different asymptotic confidence intervals are provided. Bootstrap and jackknife corrections are also possible. If DB
is specified, the single bootstrap corrected estimate will be calculated using the bootstrap values of the outer loop (oValues
).
The returned value is a list, containing the following components (depending on the selected arguments):
PD |
Estimate of the unconditional PD based on Duellmann and Gehde-Trapp (2004) |
PD_CI_1 |
[Two-sided asymptotic confidence interval for the unconditional PD based on Duellmann and Gehde-Trapp (2004) |
Original |
Estimate of the original method |
Bootstrap |
Bootstrap corrected estimate |
Double_Bootstrap |
Double bootstrap corrected estimate |
Jackknife |
Jackknife corrected estimate |
CI_1 |
Selected two-sided asymptotic confidence interval based on Duellmann and Gehde-Trapp (2004) |
CI_2 |
Selected two-sided asymptotic confidence interval based on Hoese and Huschens (2011) |
CI_Boot |
Selected two-sided bootstrap confidence interval |
VaR |
Asymptotic Value-at-Risk |
VaR_CI |
Confidence interval for the asymptotic Value-at-Risk |
ES |
Asymptotic Expected Shortfall |
ES_CI |
Confidence interval for the asymptotic Expected Shortfall |
bValues |
Estimates from the single bootstrap resampling |
iValues |
Estimates from the double bootstrap resampling- inner loop |
oValues |
Estimates from the double bootstrap resampling- outer loop |
Chang J, Hall P (2015). “Double-bootstrap methods that use a single double-bootstrap simulation.” Biometrika, 102(1), 203–214.
Duellmann K, Gehde-Trapp M (2004). “Systematic risk in recovery rates: an empirical analysis of US corporate credit exposures.” Bundesbank Series 2, Discussion Paper. Available at SSRN: http://hdl.handle.net/10419/19729. Accessed: 02.11.2017.
Efron B, Tibshirani RJ (1994). An introduction to the bootstrap. CRC press.
Hoese S, Huschens S (2011). “Confidence intervals for asset correlations in the asymptotic single risk factor model.” In Operations Research Proceedings 2010, 111–116. Springer.
Meyer C (2009). “Estimation of intra-sector asset correlations.” The Journal of Risk Model Validation, 3(3), 47–79.
Pfeuffer M, Nagl M, Fischer M, Roesch D (2020). “Parameter Estimation and Bias Correction in the Vasicek Credit Portfolio Model.” Journal of Risk, 22number.
intraAMM
, intraFMM
, intraJDP2
,
intraMLE
, intraJDP1
, intraCMM
,
intraMode
,intraBeta
set.seed(10) d=defaultTimeseries(100,0.01,10,0.01) n=rep(100,10) #Sensitivity to the adjustment intraAMLE(d,n,Adjust=0.001) intraAMLE(d,n,Adjust=0.0001) #Estimation with confidence intervals- I IntraCorr=intraAMLE(d,n, Adjust=0.001, CI_1=0.95 ) #Estimation with confidence intervals- II IntraCorr=intraAMLE(d,n, Adjust=0.001, CI_2=0.95 ) #Jackknife correction IntraCorr=intraAMLE(d,n,Adjust=0.001, JC=TRUE) #Bootstrap correction with bootstrap confidence intervals IntraCorr=intraAMLE(d,n, Adjust=0.001, B=1000, CI_Boot=0.95 ) #Bootstrap correction with bootstrap confidence intervals and plot IntraCorr=intraAMLE(d,n, B=1000, Adjust=0.001, CI_Boot=0.95, plot=TRUE ) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraAMLE(d,n,Adjust=0.001, DB=c(10,50))
set.seed(10) d=defaultTimeseries(100,0.01,10,0.01) n=rep(100,10) #Sensitivity to the adjustment intraAMLE(d,n,Adjust=0.001) intraAMLE(d,n,Adjust=0.0001) #Estimation with confidence intervals- I IntraCorr=intraAMLE(d,n, Adjust=0.001, CI_1=0.95 ) #Estimation with confidence intervals- II IntraCorr=intraAMLE(d,n, Adjust=0.001, CI_2=0.95 ) #Jackknife correction IntraCorr=intraAMLE(d,n,Adjust=0.001, JC=TRUE) #Bootstrap correction with bootstrap confidence intervals IntraCorr=intraAMLE(d,n, Adjust=0.001, B=1000, CI_Boot=0.95 ) #Bootstrap correction with bootstrap confidence intervals and plot IntraCorr=intraAMLE(d,n, B=1000, Adjust=0.001, CI_Boot=0.95, plot=TRUE ) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraAMLE(d,n,Adjust=0.001, DB=c(10,50))
The intra asset correlation will be estimated by fitting the first two moments of the default rate time series to the theoretical moments of the default rate and backing out the remaining correlation parameter numerically. Additionally, bootstrap and jackknife corrections are implemented.
intraAMM(d, n, B = 0, DB=c(0,0), JC = FALSE,CI_Boot, type="bca", plot=FALSE)
intraAMM(d, n, B = 0, DB=c(0,0), JC = FALSE,CI_Boot, type="bca", plot=FALSE)
d |
a vector, containing the default time series of the sector. |
n |
a vector, containing the number of obligors at the beginning of the period over time. |
B |
an integer, indicating how many bootstrap repetitions should be used for the single bootstrap corrected estimate. |
DB |
a combined vector, indicating how many bootstrap repetitions should be used for the inner (first entry) and outer loop (second entry) to correct the bias using the double bootstrap. |
JC |
a logical variable, indicating if the jackknife corrected estimate should be calculated. |
CI_Boot |
a number, indicating the desired confidence interval if the single bootstrap correction is specified. By default, the interval is calculated as the bootstrap corrected and accelerated confidence interval (Bca). |
type |
a string, indicating the desired method to calculate the bootstrap confidence intervals. For more details see |
plot |
a logical variable, indicating whether a plot of the single bootstrap density should be generated. |
As stated by Vasicek (1991) and Vasicek (2002), the asset variables follow a bivariate normal distribution. Since this distribution can be parametrized by the first two moments, namely the expected value and the variance, the remaining correlation parameter can be backed out numerically. The expected value will be approximated by the mean of the default rate and the variance is defined as the sample variance of the default rate. For theoretical background, see Gordy (2000). If DB
is specified, the single bootstrap corrected estimate will be calculated by using the bootstrap values of the outer loop (oValues
).
The returned value is a list, containing the following components (depending on the selected arguments):
Original |
Estimate of the original method |
Bootstrap |
Bootstrap corrected estimate |
Double_Bootstrap |
Double bootstrap corrected estimate |
Jackknife |
Jackknife corrected estimate |
CI_Boot |
Selected two-sided bootstrap confidence interval |
bValues |
Estimates from the bootstrap resampling |
iValues |
Estimates from the double bootstrap resampling- inner loop |
oValues |
Estimates from the double bootstrap resampling- outer loop |
Chang J, Hall P (2015). “Double-bootstrap methods that use a single double-bootstrap simulation.” Biometrika, 102(1), 203–214.
Efron B, Tibshirani RJ (1994). An introduction to the bootstrap. CRC press.
Gordy MB (2000). “A comparative anatomy of credit risk models.” Journal of Banking & Finance, 24(1), 119–149.
Vasicek O (1991). “Limiting loan loss probability distribution.” Finance, Economics and Mathematics, 147–148.
Vasicek O (2002). “The distribution of loan portfolio value.” Risk, 15(12), 160–162.
intraFMM
, intraJDP1
, intraJDP2
,
intraCMM
, intraMLE
, intraAMLE
,
intraMode
,intraBeta
set.seed(111) d=defaultTimeseries(1000,0.3,20,0.01) n=rep(1000,20) IntraCorr=intraAMM(d,n) #Jackknife correction IntraCorr=intraAMM(d,n, JC=TRUE) #Bootstrap correction with confidence intervals IntraCorr=intraAMM(d,n, B=1000, CI_Boot=0.95 ) #Bootstrap correction with confidence intervals and plot IntraCorr=intraAMM(d,n, B=1000, CI_Boot=0.95, plot=TRUE ) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraAMM(d,n, DB=c(10,50))
set.seed(111) d=defaultTimeseries(1000,0.3,20,0.01) n=rep(1000,20) IntraCorr=intraAMM(d,n) #Jackknife correction IntraCorr=intraAMM(d,n, JC=TRUE) #Bootstrap correction with confidence intervals IntraCorr=intraAMM(d,n, B=1000, CI_Boot=0.95 ) #Bootstrap correction with confidence intervals and plot IntraCorr=intraAMM(d,n, B=1000, CI_Boot=0.95, plot=TRUE ) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraAMM(d,n, DB=c(10,50))
The intra asset correlation will be estimated by fitting a beta distribution onto the default rate time series, then calculating the Value-at-Risk (VaR) of this beta distribution and fit it to the theoretical VaR of the Vasicek distribution. The correlation parameter will be backed out numerically. Additionally, bootstrap and jackknife corrections are implemented.
intraBeta(d, n, Quantile=0.999,B = 0, DB=c(0,0), JC = FALSE, CI_Boot, type="bca", plot=FALSE)
intraBeta(d, n, Quantile=0.999,B = 0, DB=c(0,0), JC = FALSE, CI_Boot, type="bca", plot=FALSE)
d |
a vector, containing the default time series of the sector. |
n |
a vector, containing the number of obligors at the beginning of the period over time. |
Quantile |
a number, indicating the desired confidence level of the Value-at-Risk. |
B |
an integer, indicating how many bootstrap repetitions should be used for the single bootstrap corrected estimate. |
DB |
a combined vector, indicating how many bootstrap repetitions should be used for the inner (first entry) and outer loop (second entry) to correct the bias using the double bootstrap. |
JC |
a logical variable, indicating if the jackknife corrected estimate should be calculated. |
CI_Boot |
a number, indicating the desired confidence interval if the single bootstrap correction is specified. By default, the interval is calculated as the bootstrap corrected and accelerated confidence interval (Bca). |
type |
a string, indicating the desired method to calculate the bootstrap confidence intervals. For more details see |
plot |
a logical variable, indicating whether a plot of the single bootstrap density should be generated. |
As stated by Botha and van Vuuren (2010) one can estimate the intra correlation by matching VaR of a parametrized beta distribution onto the VaR of the Vasicek distribution. To do so, the shape parameters (alpha and beta) of the beta distribution are estimated according to Botha and van Vuuren (2010). Afterwards, the VaR_Beta at the confidence level of Quantile
will be estimated. In a third step, this VaR_Beta is matched with the theoretical VaR of the Vasicek distribution, given by Vasicek (1991):
Since Quantile
and the corresponding VaR_Beta is known, the intra correlation parameter can be backed out numerically.
This estimator is sensitive to the chosen Quantile
. Botha and van Vuuren (2010) suggested to use Quantile=0.999
, but for validation purposes one may choose different values of Quantile
to infer information about the robustness of the correlation estimate.
If DB
is specified, the single bootstrap corrected estimate will be calculated by using the bootstrap values of the outer loop (oValues
).
The returned value is a list, containing the following components (depending on the selected arguments):
Original |
Estimate of the original method |
Bootstrap |
Bootstrap corrected estimate |
Double_Bootstrap |
Double bootstrap corrected estimate |
Jackknife |
Jackknife corrected estimate |
CI_Boot |
Selected two-sided bootstrap confidence interval |
bValues |
Estimates from the bootstrap resampling |
iValues |
Estimates from the double bootstrap resampling- inner loop |
oValues |
Estimates from the double bootstrap resampling- outer loop |
Botha M, van Vuuren G (2010). “Implied asset correlation in retail loan portfolios.” Journal of Risk Management in Financial Institutions, 3(2), 156–173.
Chang J, Hall P (2015). “Double-bootstrap methods that use a single double-bootstrap simulation.” Biometrika, 102(1), 203–214.
Efron B, Tibshirani RJ (1994). An introduction to the bootstrap. CRC press.
Gordy MB (2000). “A comparative anatomy of credit risk models.” Journal of Banking & Finance, 24(1), 119–149.
Vasicek O (1991). “Limiting loan loss probability distribution.” Finance, Economics and Mathematics, 147–148.
intraFMM
, intraJDP1
, intraJDP2
intraCMM
, intraMLE
, intraAMLE
intraMode
set.seed(111) d=defaultTimeseries(1000,0.3,20,0.01) n=rep(1000,20) IntraCorr=intraBeta(d,n) #Jackknife correction IntraCorr=intraBeta(d,n, JC=TRUE) #Bootstrap correction with confidence intervals IntraCorr=intraBeta(d,n, B=1000, CI_Boot=0.95 ) #Bootstrap correction with confidence intervals and plot IntraCorr=intraBeta(d,n, B=1000, CI_Boot=0.95, plot=TRUE ) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraBeta(D1,N1, DB=c(10,50))
set.seed(111) d=defaultTimeseries(1000,0.3,20,0.01) n=rep(1000,20) IntraCorr=intraBeta(d,n) #Jackknife correction IntraCorr=intraBeta(d,n, JC=TRUE) #Bootstrap correction with confidence intervals IntraCorr=intraBeta(d,n, B=1000, CI_Boot=0.95 ) #Bootstrap correction with confidence intervals and plot IntraCorr=intraBeta(d,n, B=1000, CI_Boot=0.95, plot=TRUE ) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraBeta(D1,N1, DB=c(10,50))
The estimator is based on Frei and Wunsch (2018), who introduced an analytic bias correction via Taylor series expansion. Additionally, the bias due to autocorrelated default time series can be corrected. Furthermore, additional bootstrap and jackknife bias corrections are implemented.
intraCMM(d,n,l=0, B=0, DB=c(0,0), JC=FALSE , CI_Boot,type="bca", plot=FALSE)
intraCMM(d,n,l=0, B=0, DB=c(0,0), JC=FALSE , CI_Boot,type="bca", plot=FALSE)
d |
a vector, containing the default time series of the sector. |
n |
a vector, containing the number of obligors at the beginning of the period in the sector. |
l |
a number, indicating how many lags of autocorrelation should be used for the correction. |
B |
an integer, indicating how many bootstrap repetitions should be used for the single bootstrap corrected estimate. |
DB |
a combined vector, indicating how many bootstrap repetitions should be used for the inner (first entry) and outer loop (second entry) to correct the bias using the double bootstrap. |
JC |
a logical variable, indicating if the jackknife corrected estimate should be calculated. |
CI_Boot |
a number, indicating the desired confidence level if the single bootstrap correction is specified. By default, the interval is calculated as the bootstrap corrected and accelerated confidence interval (Bca).Furthermore, the analytical confidence intervals are provided, using the same value as |
type |
a string, indicating the desired method to calculate the confidence intervals. For more details see |
plot |
a logical variable, indicating whether a plot of the single bootstrap density should be generated. |
Frei and Wunsch (2018) introduced an estimator which simultaneously corrects the bias of a short default time series and an bias due to autocorrelation. Additionally, further corrections are implemented. If DB
is specified, the single bootstrap corrected estimate will be calculated by using the bootstrap values of the outer loop (oValues
).
The returned value is a list, containing the following components (depending on the selected arguments):
Original |
Estimate of the original method |
Bootstrap |
Bootstrap corrected estimate |
Double_Bootstrap |
Double bootstrap corrected estimate |
Jackknife |
Jackknife corrected estimate |
CI_Boot |
Selected two-sided bootstrap confidence interval |
bValues |
Estimates from the single bootstrap resampling |
iValues |
Estimates from the double bootstrap resampling- inner loop |
oValues |
Estimates from the double bootstrap resampling- outer loop |
Chang J, Hall P (2015). “Double-bootstrap methods that use a single double-bootstrap simulation.” Biometrika, 102(1), 203–214.
Efron B, Tibshirani RJ (1994). An introduction to the bootstrap. CRC press.
Frei C, Wunsch M (2018). “Moment Estimators for Autocorrelated Time Series and their Application to Default Correlations.” Journal of Credit Risk, 14, 1–29.
intraAMM
, intraFMM
, intraJDP2
,
intraMLE
, intraJDP1
, intraAMLE
,
intraMode
,intraBeta
set.seed(10) d=defaultTimeseries(1000,0.1,10,0.01) n=rep(1000,10) IntraCorr=intraCMM(d,n,l=0) #Estimation with two lags of autocorrelation IntraCorr=intraCMM(d,n, l=2 ) #Jackknife correction IntraCorr=intraCMM(d,n, JC=TRUE) #Bootstrap correction with bootstrap confidence intervals IntraCorr=intraCMM(d,n, B=1000, CI_Boot=0.95 ) #Bootstrap correction with bootstrap confidence intervals and plot IntraCorr=intraCMM(d,n, B=1000, CI_Boot=0.95, plot=TRUE ) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraCMM(d,n, DB=c(10,50))
set.seed(10) d=defaultTimeseries(1000,0.1,10,0.01) n=rep(1000,10) IntraCorr=intraCMM(d,n,l=0) #Estimation with two lags of autocorrelation IntraCorr=intraCMM(d,n, l=2 ) #Jackknife correction IntraCorr=intraCMM(d,n, JC=TRUE) #Bootstrap correction with bootstrap confidence intervals IntraCorr=intraCMM(d,n, B=1000, CI_Boot=0.95 ) #Bootstrap correction with bootstrap confidence intervals and plot IntraCorr=intraCMM(d,n, B=1000, CI_Boot=0.95, plot=TRUE ) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraCMM(d,n, DB=c(10,50))
The intra asset correlation will be estimated by fitting the first two moments of the default rate time series to the theoretical moments of the default rate and backing out the remaining correlation parameter numerically. The sample variance will be adjusted for an insufficiently large portfolio size. Additionally, bootstrap and jackknife corrections are implemented.
intraFMM(d, n, B = 0, DB=c(0,0), JC = FALSE, CI_Boot, type="bca", plot=FALSE)
intraFMM(d, n, B = 0, DB=c(0,0), JC = FALSE, CI_Boot, type="bca", plot=FALSE)
d |
a vector, containing the default time series of the sector. |
n |
a vector, containing the number of obligors at the beginning of the period over time. |
B |
an integer, indicating how many bootstrap repetitions should be used for the single bootstrap corrected estimate. |
DB |
a combined vector, indicating how many bootstrap repetitions should be used for the inner (first entry) and outer loop (second entry) to correct the bias using the double bootstrap. |
JC |
a logical variable, indicating if the jackknife corrected estimate should be calculated. |
CI_Boot |
a number, indicating the desired confidence interval if the single bootstrap correction is specified. By default, the interval is calculated as the bootstrap corrected and accelerated confidence interval (Bca). |
type |
a string, indicating the desired method to calculate the bootstrap confidence intervals. For more details see |
plot |
a logical variable, indicating whether a plot of the single bootstrap density should be generated. |
As stated by Vasicek (1991) and Vasicek (2002), the asset variables follow a bivariate normal distribution. Since this distribution can be parametrized by the first two moments, namely the expected value and the variance, the remaining correlation parameter can be backed out numerically. The expected value will be approximated by the mean of the default rate and the variance is defined as the (corrected) sample variance of the default rate. For theoretical background, see Gordy (2000). If DB
is specified, the single bootstrap corrected estimate will be calculated by using the bootstrap values of the outer loop (oValues
).
The returned value is a list, containing the following components (depending on the selected arguments):
Original |
Estimate of the original method |
Bootstrap |
Bootstrap corrected estimate |
Double_Bootstrap |
Double bootstrap corrected estimate |
Jackknife |
Jackknife corrected estimate |
CI_Boot |
Selected two-sided bootstrap confidence interval |
bValues |
Estimates from the bootstrap resampling |
iValues |
Estimates from the double bootstrap resampling- inner loop |
oValues |
Estimates from the double bootstrap resampling- outer loop |
Chang J, Hall P (2015). “Double-bootstrap methods that use a single double-bootstrap simulation.” Biometrika, 102(1), 203–214.
Efron B, Tibshirani RJ (1994). An introduction to the bootstrap. CRC press.
Gordy MB (2000). “A comparative anatomy of credit risk models.” Journal of Banking & Finance, 24(1), 119–149.
Vasicek O (1991). “Limiting loan loss probability distribution.” Finance, Economics and Mathematics, 147–148.
Vasicek O (2002). “The distribution of loan portfolio value.” Risk, 15(12), 160–162.
intraAMM
, intraJDP1
, intraJDP2
,
intraCMM
, intraMLE
, intraAMLE
,
intraMode
,intraBeta
set.seed(111) d=defaultTimeseries(1000,0.3,20,0.01) n=rep(1000,20) IntraCorr=intraFMM(d,n) #Jackknife correction IntraCorr=intraFMM(d,n, JC=TRUE) #Bootstrap correction with confidence intervals IntraCorr=intraFMM(d,n, B=1000, CI_Boot=0.95 ) #Bootstrap correction with confidence intervals and plot IntraCorr=intraFMM(d,n, B=1000, CI_Boot=0.95, plot=TRUE ) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraFMM(D1,N1, DB=c(10,50))
set.seed(111) d=defaultTimeseries(1000,0.3,20,0.01) n=rep(1000,20) IntraCorr=intraFMM(d,n) #Jackknife correction IntraCorr=intraFMM(d,n, JC=TRUE) #Bootstrap correction with confidence intervals IntraCorr=intraFMM(d,n, B=1000, CI_Boot=0.95 ) #Bootstrap correction with confidence intervals and plot IntraCorr=intraFMM(d,n, B=1000, CI_Boot=0.95, plot=TRUE ) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraFMM(D1,N1, DB=c(10,50))
The intra asset correlation will be estimated by fitting the empirical joint default probability (JDP) of the default rate time series to the theoretical one and backing out the remaining correlation parameter numerically. The unbiased estimator of Lucas (1995) will be used for the empirical JDP. Additionally, bootstrap and jackknife corrections are implemented.
intraJDP1(d, n, B = 0, DB=c(0,0), JC = FALSE, CI_Boot, type="bca", plot=FALSE)
intraJDP1(d, n, B = 0, DB=c(0,0), JC = FALSE, CI_Boot, type="bca", plot=FALSE)
d |
a vector, containing the default time series of the sector. |
n |
a vector, containing the number of obligors at the beginning of the period over time. |
B |
an integer, indicating how many bootstrap repetitions should be used for the single bootstrap corrected estimate. |
DB |
a combined vector, indicating how many bootstrap repetitions should be used for the inner (first entry) and outer loop (second entry) to correct the bias using the double bootstrap. |
JC |
a logical variable, indicating if the jackknife corrected estimate should be calculated. |
CI_Boot |
a number, indicating the desired confidence interval if the single bootstrap correction is specified. By default, the interval is calculated as the bootstrap corrected and accelerated confidence interval (Bca). |
type |
a string, indicating the desired method to calculate the bootstrap confidence intervals. For more details see |
plot |
a logical variable, indicating whether a plot of the single bootstrap density should be generated. |
Kalkbrener and Onwunta (2010) for example showed that the JDP of the default rates follow a bivariate normal distribution. The intra asset correlation will be estimated by fitting the empirical JDP of the default rate time series on the theoretical JDP of the default rate and backing out the remaining correlation parameter numerically.
The empirical JDP is calculated by the (unbiased) estimator of Lucas (1995). If DB
is specified, the single bootstrap corrected estimate will be calculated by using the bootstrap values of the outer loop (oValues
).
The returned value is a list, containing the following components (depending on the selected arguments):
Original |
Estimate of the original method |
Bootstrap |
Bootstrap corrected estimate |
Double_Bootstrap |
Double bootstrap corrected estimate |
Jackknife |
Jackknife corrected estimate |
CI_Boot |
Selected two-sided bootstrap confidence interval |
bValues |
Estimates from the bootstrap resampling |
iValues |
Estimates from the double bootstrap resampling- inner loop |
oValues |
Estimates from the double bootstrap resampling- outer loop |
Chang J, Hall P (2015). “Double-bootstrap methods that use a single double-bootstrap simulation.” Biometrika, 102(1), 203–214.
Efron B, Tibshirani RJ (1994). An introduction to the bootstrap. CRC press.
Kalkbrener M, Onwunta A (2010). “Validating structural credit portfolio models.” Model risk - identification, measurement and management. Risk Books, London, 233–261.
Lucas DJ (1995). “Default correlation and credit analysis.” The Journal of Fixed Income, 4(4), 76–87.
intraAMM
, intraFMM
, intraJDP2
,
intraCMM
, intraMLE
, intraAMLE
,
intraMode
,intraBeta
set.seed(111) d=defaultTimeseries(1000,0.3,20,0.01) n=rep(1000,20) IntraCorr=intraJDP1(d,n) #Jackknife correction IntraCorr=intraJDP1(d,n, JC=TRUE) #Bootstrap correction with confidence intervals IntraCorr=intraJDP1(d,n, B=1000, CI_Boot=0.95 ) #Bootstrap correction with confidence intervals and plot IntraCorr=intraJDP1(d,n, B=1000, CI_Boot=0.95, plot=TRUE ) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraJDP1(D1,N1, DB=c(10,50))
set.seed(111) d=defaultTimeseries(1000,0.3,20,0.01) n=rep(1000,20) IntraCorr=intraJDP1(d,n) #Jackknife correction IntraCorr=intraJDP1(d,n, JC=TRUE) #Bootstrap correction with confidence intervals IntraCorr=intraJDP1(d,n, B=1000, CI_Boot=0.95 ) #Bootstrap correction with confidence intervals and plot IntraCorr=intraJDP1(d,n, B=1000, CI_Boot=0.95, plot=TRUE ) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraJDP1(D1,N1, DB=c(10,50))
The intra asset correlation will be estimated by fitting the empirical joint default probability (JDP) of the default rate time series to the theoretical one and backing out the remaining correlation parameter numerically. The biased estimator of De Servigny and Renault (2002) will be used for the empirical JDP. Additionally, bootstrap and jackknife corrections are implemented.
intraJDP2(d, n, B = 0,DB=c(0,0), JC = FALSE, CI_Boot, type="bca", plot=FALSE)
intraJDP2(d, n, B = 0,DB=c(0,0), JC = FALSE, CI_Boot, type="bca", plot=FALSE)
d |
a vector, containing the default time series of the sector. |
n |
a vector, containing the number of obligors at the beginning of the period over time. |
B |
an integer, indicating how many bootstrap repetitions should be used for the single bootstrap corrected estimate. |
DB |
a combined vector, indicating how many bootstrap repetitions should be used for the inner (first entry) and outer loop (second entry) to correct the bias using the double bootstrap. |
JC |
a logical variable, indicating if the jackknife corrected estimate should be calculated. |
CI_Boot |
a number, indicating the desired confidence interval if the single bootstrap correction is specified. By default, the interval is calculated as the bootstrap corrected and accelerated confidence interval (Bca). |
type |
a string, indicating the desired method to calculate the bootstrap confidence intervals. For more details see |
plot |
a logical variable, indicating whether a plot of the single bootstrap density should be generated. |
Kalkbrener and Onwunta (2010) for example showed that the JDP of the default rates follow a bivariate normal distribution. The intra asset correlation will be estimated by fitting the empirical JDP of the default rate time series on the theoretical JDP of the default rate and backing out the remaining correlation parameter numerically.
The empirical JDP is calculated by the (unbiased) estimator of De Servigny and Renault (2002). If DB
is specified, the single bootstrap corrected estimate will be calculated by using the bootstrap values of the outer loop (oValues
).
The returned value is a list, containing the following components (depending on the selected arguments):
Original |
Estimate of the original method |
Bootstrap |
Bootstrap corrected estimate |
Double_Bootstrap |
Double bootstrap corrected estimate |
Jackknife |
Jackknife corrected estimate |
CI_Boot |
Selected two-sided bootstrap confidence interval |
bValues |
Estimates from the single bootstrap resampling |
iValues |
Estimates from the double bootstrap resampling- inner loop |
oValues |
Estimates from the double bootstrap resampling- outer loop |
Chang J, Hall P (2015). “Double-bootstrap methods that use a single double-bootstrap simulation.” Biometrika, 102(1), 203–214.
De Servigny A, Renault O (2002). “Default correlation: empirical evidence.” Working Paper, Standard and Poors. Available at: https://www.semanticscholar.org/paper/Default-correlation%3A-empirical-evidence-Servigny-Renault/aae251436d0e3b489951c0d38463d71106755675.
Efron B, Tibshirani RJ (1994). An introduction to the bootstrap. CRC press.
Kalkbrener M, Onwunta A (2010). “Validating structural credit portfolio models.” Model risk - identification, measurement and management. Risk Books, London, 233–261.
intraAMM
, intraFMM
, intraJDP1
,
intraCMM
, intraMLE
, intraAMLE
,
intraMode
,intraBeta
set.seed(10) d=defaultTimeseries(1000,0.3,20,0.01) n=rep(1000,20) IntraCorr=intraJDP2(d,n) #Jackknife correction IntraCorr=intraJDP2(d,n, JC=TRUE) #Bootstrap correction with confidence intervals IntraCorr=intraJDP2(d,n, B=1000, CI_Boot=0.95 ) #Bootstrap correction with confidence intervals and plot IntraCorr=intraJDP2(d,n, B=1000, CI_Boot=0.95, plot=TRUE ) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraJDP2(D1,N1, DB=c(10,50))
set.seed(10) d=defaultTimeseries(1000,0.3,20,0.01) n=rep(1000,20) IntraCorr=intraJDP2(d,n) #Jackknife correction IntraCorr=intraJDP2(d,n, JC=TRUE) #Bootstrap correction with confidence intervals IntraCorr=intraJDP2(d,n, B=1000, CI_Boot=0.95 ) #Bootstrap correction with confidence intervals and plot IntraCorr=intraJDP2(d,n, B=1000, CI_Boot=0.95, plot=TRUE ) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraJDP2(D1,N1, DB=c(10,50))
The default process in the Vasicek model follows a binomial distribution, conditional on the realization of the systematic factor. Hence, the intra asset correlation can be estimated by maximizing the Vasicek-binomial log likelihood.
intraMLE(d, n, B =0, DB=c(0,0), JC = FALSE, CI, CI_Boot, type="bca", plot=FALSE)
intraMLE(d, n, B =0, DB=c(0,0), JC = FALSE, CI, CI_Boot, type="bca", plot=FALSE)
d |
a vector, containing the default time series of the sector. |
n |
a vector, containing the number of obligors at the beginning of the period in the sector. |
B |
an integer, indicating how many bootstrap repetitions should be used for the single bootstrap corrected estimate. |
DB |
a combined vector, indicating how many bootstrap repetitions should be used for the inner (first entry) and outer loop (second entry) to correct the bias using the double bootstrap. |
JC |
a logical variable, indicating if the jackknife corrected estimate should be calculated. |
CI |
a number, indicating the desired asymptotic confidence interval of the estimate. |
CI_Boot |
a number, indicating the desired bootstrap confidence interval of the estimate, if the single bootstrap correction is specified. By default, the interval is calculated as the bootstrap corrected and accelerated confidence interval (Bca). Furthermore, the analytical confidence intervals are provided, using the same value as |
type |
a string, indicating the type of bootstrap intervals. For more details see |
plot |
a logical variable, indicating whether a plot of the single bootstrap density should be generated. |
In the Vasicek model the default process can be expressed as independent binomial trials, conditional on the realization of the systematic factor. Therefore Gordy and Heitfield (2010) introduced an estimator of the intra asset correlation based on the log-likelihood maximization. For theoretical background see Gordy and Heitfield (2010).
The log-likelihood will be maximized for values between 0 and 1. The asymptotic confidence interval will be estimated using maximum likelihood theory. If DB
is specified, the single bootstrap corrected estimate will be calculated by using the bootstrap values of the outer loop (oValues
).
The returned value is a list, containing the following components (depending on the selected arguments):
Original |
Estimate of the original method |
Bootstrap |
Bootstrap corrected estimate |
Double_Bootstrap |
Double bootstrap corrected estimate |
Jackknife |
Jackknife corrected estimate |
CI |
Selected two-sided asymptotic confidence interval |
CI_Boot |
Selected two-sided bootstrap confidence interval |
bValues |
Estimates from the single bootstrap resampling |
iValues |
Estimates from the double bootstrap resampling- inner loop |
oValues |
Estimates from the double bootstrap resampling- outer loop |
Chang J, Hall P (2015). “Double-bootstrap methods that use a single double-bootstrap simulation.” Biometrika, 102(1), 203–214.
Efron B, Tibshirani RJ (1994). An introduction to the bootstrap. CRC press.
Gordy MB, Heitfield E (2010). “Small-sample estimation of models of portfolio credit risk.” In Recent Advances in Financial Engineering: Proceedings of the KIER-TMU International Workshop on Financial Engineering, 2009: Otemachi, Sankei Plaza, Tokyo, 3-4 August 2009, 43-63. World Scientific.
intraAMM
, intraFMM
, intraJDP2
,
intraCMM
, intraJDP1
, intraAMLE
,
intraMode
,intraBeta
set.seed(11) d=defaultTimeseries(1000,0.3,20,0.01) n=rep(1000,20) IntraCorr=intraMLE(d,n) #Estimation with confidence intervals IntraCorr=intraMLE(d,n, CI=0.95 ) #Jackknife correction IntraCorr=intraMLE(d,n, JC=TRUE) #Bootstrap correction with bootstrap confidence intervals IntraCorr=intraMLE(d,n, B=1000, CI_Boot=0.95 ) #Bootstrap correction with bootstrap confidence intervals and plot IntraCorr=intraMLE(d,n, B=1000, CI_Boot=0.95, plot=TRUE ) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraMLE(D1,N1, DB=c(10,50))
set.seed(11) d=defaultTimeseries(1000,0.3,20,0.01) n=rep(1000,20) IntraCorr=intraMLE(d,n) #Estimation with confidence intervals IntraCorr=intraMLE(d,n, CI=0.95 ) #Jackknife correction IntraCorr=intraMLE(d,n, JC=TRUE) #Bootstrap correction with bootstrap confidence intervals IntraCorr=intraMLE(d,n, B=1000, CI_Boot=0.95 ) #Bootstrap correction with bootstrap confidence intervals and plot IntraCorr=intraMLE(d,n, B=1000, CI_Boot=0.95, plot=TRUE ) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraMLE(D1,N1, DB=c(10,50))
The intra asset correlation will be estimated by fitting the mode of the default rate time series to the theoretical mode of the default rates and backing out the remaining correlation parameter numerically. Additionally, bootstrap and jackknife corrections are implemented.
intraMode(d, n, B = 0, DB=c(0,0), JC = FALSE,CI_Boot, type="bca", plot=FALSE)
intraMode(d, n, B = 0, DB=c(0,0), JC = FALSE,CI_Boot, type="bca", plot=FALSE)
d |
a vector, containing the default time series of the sector. |
n |
a vector, containing the number of obligors at the beginning of the period over time. |
B |
an integer, indicating how many bootstrap repetitions should be used for the single bootstrap corrected estimate. |
DB |
a combined vector, indicating how many bootstrap repetitions should be used for the inner (first entry) and outer loop (second entry) to correct the bias using the double bootstrap. |
JC |
a logical variable, indicating if the jackknife corrected estimate should be calculated. |
CI_Boot |
a number, indicating the desired confidence interval if the single bootstrap correction is specified. By default, the interval is calculated as the bootstrap corrected and accelerated confidence interval (Bca). |
type |
a string, indicating the desired method to calculate the bootstrap confidence intervals. For more details see |
plot |
a logical variable, indicating whether a plot of the single bootstrap density should be generated. |
As stated by Botha and van Vuuren (2010) one can estimate the intra correlation by matching the theoretical and empirical mode. According to Vasicek (1991) the default rates are only unimodal if the intra correlation is smaller than 0.5. Therefore, this estimator cannot be used for higher intra correlations. The theoretical mode is given by Vasicek (1991):
If DB
is specified, the single bootstrap corrected estimate will be calculated by using the bootstrap values of the outer loop (oValues
).
The returned value is a list, containing the following components (depending on the selected arguments):
Original |
Estimate of the original method |
Bootstrap |
Bootstrap corrected estimate |
Double_Bootstrap |
Double bootstrap corrected estimate |
Jackknife |
Jackknife corrected estimate |
CI_Boot |
Selected two-sided bootstrap confidence interval |
bValues |
Estimates from the bootstrap resampling |
iValues |
Estimates from the double bootstrap resampling- inner loop |
oValues |
Estimates from the double bootstrap resampling- outer loop |
Botha M, van Vuuren G (2010). “Implied asset correlation in retail loan portfolios.” Journal of Risk Management in Financial Institutions, 3(2), 156–173.
Chang J, Hall P (2015). “Double-bootstrap methods that use a single double-bootstrap simulation.” Biometrika, 102(1), 203–214.
Efron B, Tibshirani RJ (1994). An introduction to the bootstrap. CRC press.
Gordy MB (2000). “A comparative anatomy of credit risk models.” Journal of Banking & Finance, 24(1), 119–149.
Vasicek O (1991). “Limiting loan loss probability distribution.” Finance, Economics and Mathematics, 147–148.
intraFMM
, intraJDP1
, intraJDP2
intraCMM
, intraMLE
, intraAMLE
,
intraBeta
set.seed(111) d=defaultTimeseries(1000,0.3,20,0.01) n=rep(1000,20) IntraCorr=intraMode(d,n) #Jackknife correction IntraCorr=intraMode(d,n, JC=TRUE) #Bootstrap correction with confidence intervals IntraCorr=intraMode(d,n, B=1000, CI_Boot=0.95 ) #Bootstrap correction with confidence intervals and plot IntraCorr=intraMode(d,n, B=1000, CI_Boot=0.95, plot=TRUE ) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraMode(D1,N1, DB=c(10,50))
set.seed(111) d=defaultTimeseries(1000,0.3,20,0.01) n=rep(1000,20) IntraCorr=intraMode(d,n) #Jackknife correction IntraCorr=intraMode(d,n, JC=TRUE) #Bootstrap correction with confidence intervals IntraCorr=intraMode(d,n, B=1000, CI_Boot=0.95 ) #Bootstrap correction with confidence intervals and plot IntraCorr=intraMode(d,n, B=1000, CI_Boot=0.95, plot=TRUE ) #Double Bootstrap correction with 10 repetitions in the inner loop and 50 in the outer loop IntraCorr=intraMode(D1,N1, DB=c(10,50))