-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsample_simulation.R
More file actions
52 lines (42 loc) · 1.02 KB
/
Copy pathsample_simulation.R
File metadata and controls
52 lines (42 loc) · 1.02 KB
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
## This Script shows how to use functions to get portfolio simulation
source("ESG_draws.R")
source("portfolio_sim_functions.R")
source("functions.R") # to use annuity pricing functions
# for annuity pricing
mortality_tbl <- readr::read_csv("data/mortality.csv") |>
dplyr::filter(!is.na(death_pdf))
n_years <- 50
n_sims <- 500
esg_sims <- ESG_draws(n_years, n_sims)
cpi_sims <- esg_sims$cpi
med_sims <- esg_sims$med_cpi
yield_curve_sims <- esg_sims$yield_curve
equity_sims <- esg_sims$equity_returns
# how many months into future is annuity purchased
purchase_date <- 1
# how many dollars per month does annuity payout
payout <- 1
# loading factor for annuity
loading <- .1
annuity_prices <- price_annuities(
60,
yield_curve_sims,
mortality_tbl,
purchase_date,
payout,
loading,
n_sims
)
annuity_prop <- .4
wr <- .04
# sample death ages
death_ages <- get_death_ages(60, mortality_tbl, n_sims)
sim_results <- portfolio_sim(
annuity_prop,
wr,
annuity_prices,
equity_sims,
cpi_sims,
med_sims,
death_ages
)