Description Usage Arguments Value Examples
Calculate Importance Sampling estimators from a specified proposal distribution of an objective function at each outer scenario from nested Green Simulation.
1 |
outer |
vector of parameters simulated in outer scenario. |
df |
density functions for the class of distributions inner simulation random variables follow. |
rf |
random generation for the class of distributions inner simulation random variables follow. |
dg |
density function for the proposal distribution. |
rg |
random generation for the proposal distribution. |
N_In |
number of inner replications for each outer scenario. |
h |
objective function. |
sn |
logical; if TRUE, self-normalized the likelihood ratios. |
A vector of Marginal Importance Sampling estimates for each outer scenario. The length of the result is determined by number of outer scenarios.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | library(functional)
r = 5e-2 # risk-free rate
S0 = 100 # initial stock price
vol = 30e-2 # annual volatility
tau = 1/12 # one month
T = 1 # time to maturity (from time 0)
N_Out = 10 # number of outer samples
N_In = 5e2 # number of inner samples
T2M = T - tau
min <- qlnorm(1e-4, meanlog = (r-0.5*vol^2)*tau + log(S0), sdlog = (vol*sqrt(tau)))
max <- qlnorm(1-1e-4, meanlog = (r-0.5*vol^2)*tau + log(S0), sdlog = (vol*sqrt(tau)))
S_tau <- seq(from = min, to = max, length.out = N_Out)
mu <- log(S_tau) + (r-0.5*vol^2)*T2M
sig <- vol * sqrt(T2M)
df <- Curry(dnorm, sd = sig)
rf <- Curry(rnorm, sd = sig)
dg <- Curry(dnorm, mean = log(S0) + (r-0.5*vol^2)*T, sd = vol * sqrt(T))
rg <- Curry(rnorm, mean = log(S0) + (r-0.5*vol^2)*T, sd = vol * sqrt(T))
h <- function(x){return(pmax(exp(x)-90, 0) - pmax(exp(x)-110, 0) + 10)}
NGS_MIS(mu, df, rf, dg, rg, N_In, h, TRUE)
NGS_MIS(mu, df, rf, dg, rg, N_In, h, FALSE)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.