Simple estimating function based on the infinitesimal generator a the diffusion process

Description

Apply a simple estimating function based on the infinitesimal generator of a diffusion to find estimates of the parameters of a process solution of that particular stochastic differential equation.

Usage

1
2
simple.ef2(X, drift, sigma, h, h.x, h.xx, guess, lower, 
           upper) 

Arguments

X

a ts object containing a sample path of an sde.

drift

an expression for the drift coefficient; see details.

sigma

an expression for the diffusion coefficient; see details.

h

an expression of x and the parameters to be estimated; see details.

h.x

an expression of x containing the first derivative of h; see details.

h.xx

an expression of x containing the second derivative of h; see details.

guess

initial value of the parameters; see details.

lower

lower bounds for the parameters; see details.

upper

upper bounds for the parameters; see details.

Details

The function simple.ef2 minimizes the simple estimating function of the form sum_i f_i(x;theta) = 0, where f is the result of applying the infinitesimal generator of the diffusion to the function h. This involves the drift and diffusion coefficients plus the first two derivatives of h. If not provided by the user, the derivatives are calculated by the function.

Value

x

a vector of estimates

Author(s)

Stefano Maria Iacus

References

Kessler, M. (1997) Estimation of an ergodic diffusion from discrete observations, Scand. J. Statist., 24, 211-229.

Kessler, M. (2000) Simple and Explicit Estimating Functions for a Discretely Observed Diffusion Process, Scand. J. Statist., 27, 65-82.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
set.seed(123) 
d <- expression(10 - x)
s <- expression(sqrt(x)) 
x0 <- 10
sde.sim(X0=x0,drift=d, sigma=s,N=1500,delta=0.1) -> X

# rather difficult problem unless a good initial guess is given
d <- expression(alpha + theta*x)
s <- expression(x^gamma) 
h <- list(expression(x), expression(x^2), expression(x^2))
simple.ef2(X, d, s, h, lower=c(0,-Inf,0), upper=c(Inf,0,1))

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.