sde.loglik: SDE loglikelihood function.

Description Usage Arguments Value Examples

View source: R/sde.loglik.R

Description

Evaluates the loglikelihood function given SDE data and parameter values.

Usage

1
sde.loglik(model, x, dt, theta, ncores = 1)

Arguments

model

An sde.model object.

x

A matrix or 3-d array of data with dim(x)[1] observations and dim(x)[2] == ndims.

dt

A scalar or vector of length dim(x)[1]-1 of time intervals between observations.

theta

A vector or matrix of parameters with nparams columns.

ncores

If model is compiled with OpenMP, the number of cores to use for parallel processing. Otherwise, uses ncores = 1 and gives a warning.

Value

A vector of loglikelihood evaluations, of the same length as the third dimension of x and/or first dimension of theta. If input contains invalid data or parameters an error is thrown.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# load Heston's model
hmod <- sde.examples("hest")

# Simulate data
nreps <- 10
nobs <- 100
theta <- c(alpha = 0.1, gamma = 1, beta = 0.8, sigma = 0.6, rho = -0.8)
Theta <- apply(t(replicate(nreps, theta)), 2, jitter)
x0 <- c(X = log(1000), Z = 0.1)
X0 <- apply(t(replicate(nreps,x0)), 2, jitter)
dT <- 1/252
hsim <- sde.sim(model = hmod, x0 = X0, theta = Theta,
                dt = dT, dt.sim = dT/10, nobs = nobs, nreps = nreps)

# single parameter, single data
sde.loglik(model = hmod, x = hsim$data[,,1], dt = dT, theta = theta)
# multiple parameters, single data
sde.loglik(model = hmod, x = hsim$data[,,1], dt = dT, theta = Theta)
# multiple parameters, multiple data
sde.loglik(model = hmod, x = hsim$data, dt = dT, theta = Theta)

Example output

Number of normal draws required: 10000
Running simulation...
Execution time: 0 seconds.
Bad Draws = 0
[1] 676.7975
 [1] 677.4243 677.8487 676.4750 677.3984 677.6822 676.4481 675.5413 677.2725
 [9] 677.5212 677.5073
 [1] 677.4243 662.4402 696.3139 685.1827 671.5259 663.1523 643.8008 693.0950
 [9] 683.0072 685.9122

msde documentation built on Dec. 17, 2021, 9:07 a.m.