Description Usage Details References Examples
A class used to describe the interest rate we are modeling. Six types of interest rate models can be used to model the force of interest δ_{s} (see Parker (1992)):
1. Deterministic interest rate, i.e. the determ class. For the
determinstic interest rate, the params argument should be a
list with delta for the interest rate. The class argument should be
"determ". See the examples below.
2. Wiener process, i.e. the wiener class. For the wiener process, the
params argument should be a list with delta for the long term
mean and sigma for the local volatility. The class argument should
be "wiener". See the examples below.
3. Ornstein-Uhlenbeck process, i.e. the ou class. For the Ornstein-Uhlenbeck
process, the params should be a list with delta for the long
term mean, alpha for the friction parameter, sigma for the
local volatility and delta0 for the initial value of the process.
The class argument should be "ou". See the examples below.
4. Second Order Stochastic Differential Equation, i.e. the second class.
For the second order process, the params should be a list with delta
for the long term mean, alpha1 for the first friction parameter,
alpha2 for the second friction parameter, sigma for the local volatility,
delta0prime for the initial derivative of the process and
and delta0 for the initial value of the process. Note that Parker uses
the notation of alpha0 instead of alpha2 but
note that we are referring to the same parameter. The class argument should be
"second". See the examples below.
5. AR(1) process, i.e. the ar1 class. For the AR(1) process, the params
should be a list with delta for the long term mean, delta0 for
the initial value of the process, phi1 for the AR(1) coefficient
and sigma for the local volatility. The class argument should be "ar1".
See the examples below.
6. ARMA(2,1) process, i.e. the arma class. For the ARMA(2,1) process, the
params should be a list with delta for the long term mean,
delta0 for the initial value of the process, phi1 for the AR(1)
coefficient, phi2 for the AR(2) coefficient, theta1 for the MA(1)
coefficient and sigma for the local volatility. The class argument should
be "arma".
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Define:
y(t) = int_{0}^{t} δ_{s}
pv(t) = exp{-y(t)}
For each class, several functions are available.
The delta.ev function can be used to calculate the expected value of the
interest rate process at time t, the delta.var function can be
used to calculate of the interest rate process at time t and
delta.cov can be used to calculate the covariance of the interest rate
process at two times s and t.
The y.ev function can be used to calculate the expected value of the
y at time t, the y.var function can be
used to calculate of variance of y at time t and
y.cov can be used to calculate the covariance of
y at two times s and t.
The pv.moment can be used to calculate the raw moments of the
present value random variable, pv.ev can be used to calculate
the expected value of the present value random varaible, pv.var can be
used to calculate the variance of the present value random variable and
pv.cov can be used to calculate the covariance of the present value
random variable at two times s and t.
The ann.ev function can be used to calculate the expected value of
an n-year annuity and ann.var can be used to calculate the
variance of an n-year annuity.
The iratemodel.convert function can be used to convert between
these interest rate models using the principle of covariance equivalence.
Refer to the examples below for how to use these functions.
Parker, Gary. An application of stochastic interest rate models in life assurance. Diss. Heriot-Watt University, 1992.
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 | ## 1. Deterministic interest rate
determodel = iratemodel(list(delta = 0.06), "determ")
delta.ev(5, determodel) # expected value
## 2. Wiener process
wienermodel = iratemodel(list(delta = 0.05, sigma = 0.01), "wiener")
pv.ev(10, wienermodel) # expected present value
pv.var(10, wienermodel) # variance of present value
pv.cov(5,10,wienermodel) # covariance of present value
## 3. Ornstein-Uhlenbeck process
oumodel = iratemodel(list(delta0 = 0.08, delta = 0.05,
alpha = 0.1, sigma = 0.01), "ou")
delta.ev(5, oumodel)
delta.var(5, oumodel)
y.ev(10, oumodel)
y.var(10, oumodel)
y.cov(5, 10, oumodel)
pv.ev(10, oumodel)
pv.var(10, oumodel)
pv.cov(5, 10, oumodel)
## 4. Second Order Stochastic Differential Equation
secondmodel = iratemodel(params = list(alpha1 = -0.50, alpha2 = -0.04,
delta0prime = 0.05, delta0 = 0.10, delta = 0.06, sigma = 0.01), "second")
## 5. AR(1) Process
ar1model = iratemodel(params = list(delta = 0.05, delta0 = 0.08,
phi1 = 0.90, sigma = 0.01), "ar1")
delta.ev(5, ar1model)
delta.var(5, ar1model)
delta.cov(5, 10, ar1model)
ann.ev(5, ar1model)
ann.var(5, ar1model)
## 6. ARMA(2,1) Process
armamodel = iratemodel(params = list(delta = 0.05, delta0 = 0.08,
phi1 = 1.05, phi2 = -0.095, theta1 = -0.05, sigma = 0.01), "arma")
## Convert from one model to another
sdemodel = iratemodel.convert("arma", "second", armamodel, 5)
armamodel = iratemodel.convert("second", "arma", sdemodel, 5)
oumodel = iratemodel.convert("ar1", "ou", ar1model, 1/12)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.