NGS_MIS: Marginal Importance Sampling Estimators

Description Usage Arguments Value Examples

View source: R/NGS.R

Description

Calculate Importance Sampling estimators from a specified proposal distribution of an objective function at each outer scenario from nested Green Simulation.

Usage

1
NGS_MIS(outer, df, rf, dg, rg, N_In = 100, h, sn = FALSE)

Arguments

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.

Value

A vector of Marginal Importance Sampling estimates for each outer scenario. The length of the result is determined by number of outer scenarios.

Examples

 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)

chenqi57/GreenSim documentation built on Dec. 19, 2021, 3:04 p.m.