diff options
| author | Guillaume Horel <guillaume.horel@gmail.com> | 2017-12-18 13:35:02 -0500 |
|---|---|---|
| committer | Guillaume Horel <guillaume.horel@gmail.com> | 2017-12-18 13:42:22 -0500 |
| commit | 4b9dba4f1dff717db4ce58044fd9c62e4ee066ab (patch) | |
| tree | 9634ff904b813cd1e66221b33175746cd0db5494 /R/distrib.R | |
| parent | e53f4b7e2c03e7e47a0e6f386e021cc262adf8ab (diff) | |
| download | lossdistrib-4b9dba4f1dff717db4ce58044fd9c62e4ee066ab.tar.gz | |
fix imports
Diffstat (limited to 'R/distrib.R')
| -rw-r--r-- | R/distrib.R | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/R/distrib.R b/R/distrib.R index 2b14776..2f288f9 100644 --- a/R/distrib.R +++ b/R/distrib.R @@ -68,7 +68,7 @@ convolve <- function(dist1, dist2) { n2 <- length(dist2) dist1 <- c(dist1, rep(0, n2-1)) dist2 <- c(dist2, rep(0, n1-1)) - Re(fft(fft(dist1) * fft(dist2), inverse=T))/length(dist1) + Re(stats::fft(stats::fft(dist1) * stats::fft(dist2), inverse=T)) / length(dist1) } #' Loss distribution of a portfolio @@ -487,14 +487,14 @@ shockprob <- function(p, rho, Z, log.p=F) { ## p and rho are scalars, Z is a vector of length n, returns vector of length n if(length(p)==1) { if(rho==1) { - return(Z <= qnorm(p)) + return(Z <= stats::qnorm(p)) } else { - return(pnorm((qnorm(p)-sqrt(rho)*Z)/sqrt(1-rho), log.p=log.p)) + return(stats::pnorm((stats::qnorm(p) - sqrt(rho)*Z)/sqrt(1 - rho), log.p = log.p)) } } else { result <- double(length(p)) - result[rho==1] <- Z<=qnorm(p[rho==1]) - result[rho<1] <- pnorm((qnorm(p[rho<1])-sqrt(rho[rho<1])*Z)/sqrt(1-rho[rho<1]), log.p=log.p) + result[rho == 1] <- Z <= stats::qnorm(p[rho == 1]) + result[rho < 1] <- stats::pnorm((stats::qnorm(p[rho < 1]) - sqrt(rho[rho < 1]) * Z)/sqrt(1 - rho[rho < 1]), log.p = log.p) return( result ) } } @@ -509,14 +509,12 @@ shockseverity <- function(S, Stilde=1, Z, rho, p) { return(result) } -#' @export dshockprob <- function(p,rho,Z) { - dnorm((qnorm(p)-sqrt(rho)*Z)/sqrt(1-rho))*dqnorm(p)/sqrt(1-rho) + stats::dnorm((stats::qnorm(p) - sqrt(rho) * Z) / sqrt(1-rho)) * dqnorm(p) / sqrt(1-rho) } -#' @export dqnorm <- function(x) { - 1/dnorm(qnorm(x)) + 1 / stats::dnorm(stats::qnorm(x)) } #' @export @@ -528,7 +526,7 @@ fit.prob <- function(Z, w, rho, p0) { } if(rho == 1) { distw <- distr::DiscreteDistribution(Z, w) - return(distr::pnorm(distr::q(distw)(p0))) + return(stats::pnorm(distr::q(distw)(p0))) } eps <- 1e-12 dp <- (crossprod(shockprob(p0, rho, Z),w) - p0) / crossprod(dshockprob(p0, rho, Z), w) |
