Class definition for the fSD model.

Details

Let X_t denote the true position of an fBM process at time t. The Savin-Doyle localization error model describes the measured position Y_n at time t = n dt as

Y_n = sigma * eps_n + 1/(tau*dt) * int_0^(tau*dt) X_{n dt - s} ds,

where eps_n ~iid N(0,1) is a Gaussian white noise process. The resulting MSD as a function of tau and sigma2 = sigma^2 is what gets passed to the csi_model base class to construct the fsd_model derived class.

Super class

subdiff::csi_model -> fsd_model

Public fields

phi_names

Kernel parameter names. A subset of (alpha, tau, sigma2) (see csi_model and fsd_model$initialize()).

Methods

Inherited methods


Method acf()

Increment autocorrelation function.

Usage

fsd_model$acf(phi, dt, N)

Arguments

phi, dt, N

See csi_model.


Method trans()

Transform kernel parameters from regular to computational basis.

Usage

fsd_model$trans(phi)

Arguments

phi

See csi_model.

Details

The transformation function is

psi = (psi1 = logit(alpha/2), psi2 = logit(tau), psi3 = log(sigma2)).


Method itrans()

Transform kernel parameters from computational to regular basis.

Usage

fsd_model$itrans(psi)

Arguments

psi

See csi_model.


Method get_subdiff()

Transform parameters from computational basis to subdiffusion parameters.

Usage

fsd_model$get_subdiff(omega)

Arguments

omega

See csi_model.

Returns

Vector with named elements alpha and logD.


Method clone()

The objects of this class are cloneable with this method.

Usage

fsd_model$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

# simulate data from the fsd model
alpha <- .8
tau <- .1
sigma2 <- .01

dt <- 1/60
N <- 1800
ndim <- 2

Xt <- csi_sim(drift = matrix(0, N-1, ndim),
              acf = fsd_acf(alpha, tau, sigma2, dt, N-1),
              Sigma = diag(ndim),
              X0 = rep(0, ndim))


# create fsd model object
model <- fsd_model$new(Xt = Xt, dt = dt, drift = "linear")

# evaluate loglikelihood
model$loglik(phi = c(alpha = alpha, tau = tau, sigma2 = sigma2),
             mu = rep(0, ndim),
             Sigma = diag(ndim))
#> [1] 241.5399