diff options
| -rw-r--r-- | R/build_scenarios.R | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/R/build_scenarios.R b/R/build_scenarios.R index b1b615ca..890ceded 100644 --- a/R/build_scenarios.R +++ b/R/build_scenarios.R @@ -111,14 +111,14 @@ for(deal.name in dealnames){ ## compute scenariosd
scenariosd <- matrix(0, n.scenarios, dim(distDR)[1])
scenariosr <- matrix(0, n.scenarios, dim(distDR)[1])
- percentiles <- seq(0, 1, 0.01)
+ percentiles <- seq(0, 1, 1/n.scenarios)
for(t in 1:dim(distDR)[1]){
D <- rowSums(distDR[t,,])
Dfun <- splinefun(c(0, cumsum(D)), c(0, support), "monoH.FC")
- ## dvallow <- floor(Dfun(percentiles)*(Ngrid-1))
- ## dvalup <- ceil(Dfun(percentiles)*(Ngrid-1))
Rfun <- approxfun(support, R[,t], rule=2)
for(i in 1:n.scenarios){
+ ## this is roughtly E(D|D is in ith percentile)
+ ## using trapezoidal approximation
scenariosd[i,t] <- 0.5 * (Dfun((i-1)*0.01)+Dfun(i*0.01))
if(t>=2 && scenariosd[i,t] < scenariosd[i,t-1]){
scenariosd[i,t] <- scenariosd[i,t-1]
@@ -139,7 +139,6 @@ for(deal.name in dealnames){ }
cdr <- cdrfromscenarios(scenariosd, deal.dates)
- intexrecov <- recoveryfromscenarios(scenariosd, scenariosr)
## linear approximation for monthly scenarios
deal.data <- getdealdata(deal.name)
deal.datesmonthly <- getdealschedule(deal.data, "1 month")
|
