# Phi-Divergences test for diffusion processes

### Description

Phi-Divergences test for diffusion processes.

### Usage

1 2 | ```
sdeDiv(X, theta1, theta0, phi= expression( -log(x) ), C.phi, K.phi,
b, s, b.x, s.x, s.xx, B, B.x, H, S, guess, ...)
``` |

### Arguments

`X` |
a ts object containing a sample path of an sde. |

`theta1` |
a vector parameters for the hypothesis H1. If not given, |

`theta0` |
a vector parameters for the hypothesis H0. |

`phi` |
an expression containing the phi function of the phi-divergence. |

`C.phi` |
the value of first derivtive of |

`K.phi` |
the value of second derivative of |

`b` |
drift coefficient of the model as a function of |

`s` |
diffusion coefficient of the model as a function of |

`b.x` |
partial derivative of |

`s.x` |
partial derivative of |

`s.xx` |
second-order partial derivative of |

`B` |
initial value of the parameters; see details. |

`B.x` |
partial derivative of |

`H` |
function of |

`S` |
function of |

`guess` |
initial value for the parameters to be estimated; optional. |

`...` |
passed to the |

### Details

The `sdeDiv`

estimate the phi-divergence for diffusion processes defined as
`D(theta1, theta0) = phi( f(theta1)/f(theta0) )`

where `f`

is the
likelihood function of the process. This function uses the Dacunha-Castelle
and Florens-Zmirou approximation of the likelihood for `f`

.

The parameter `theta1`

is supposed to be the value of the true MLE estimator
or the minimum contrast estimator of the parameters in the model. If missing
or `NULL`

and `guess`

is specified, `theta1`

is estimated using the
minimum contrast estimator derived from the locally Gaussian approximation
of the density. If both `theta1`

and `guess`

are missing, nothing can
be calculated.

The function always calculates the likelihood ratio test and the p-value of the
test statistics.
In some cases, the p-value of the phi-divergence test statistics is obtained by simulation. In such
a case, the `out$est.pval`

is set to `TRUE`

Dy default `phi`

is set to `-log(x)`

. In this case the phi-divergence and the
likelihood ratio test are equivalent (e.g. phi-Div = LRT/2)

For more informations on phi-divergences for discretely observed diffusion processes see the references.

If missing, `B`

is calculated as `b/s - 0.5*s.x`

provided that `s.x`

is not missing.

If missing, `B.x`

is calculated as `b.x/s - b*s.x/(s^2)-0.5*s.xx`

, provided
that `b.x`

, `s.x`

, and `s.xx`

are not missing.

If missing, both `H`

and `S`

are evaluated numerically.

### Value

`x` |
a list containing the value of the divergence, its pvalue, the likelihood ratio test statistics and its p-value |

### Author(s)

Stefano Maria Iacus

### References

Dacunha-Castelle, D., Florens-Zmirou, D. (1986) Estimation of the coefficients
of a diffusion from discrete observations, *Stochastics*, 19, 263-284.

De Gregorio, A., Iacus, S.M. (2008) Divergences Test Statistics for Discretely Observed Diffusion Processes. Available at http://arxiv.org/abs/0808.0853

### Examples

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 | ```
## Not run:
set.seed(123)
theta0 <- c(0.89218*0.09045,0.89218,sqrt(0.032742))
theta1 <- c(0.89218*0.09045/2,0.89218,sqrt(0.032742/2))
# we test the true model against two competing models
b <- function(x,theta) theta[1]-theta[2]*x
b.x <- function(x,theta) -theta[2]
s <- function(x,theta) theta[3]*sqrt(x)
s.x <- function(x,theta) theta[3]/(2*sqrt(x))
s.xx <- function(x,theta) -theta[3]/(4*x^1.5)
X <- sde.sim(X0=rsCIR(1, theta1), N=1000, delta=1e-3, model="CIR",
theta=theta1)
sdeDiv(X=X, theta0 = theta0, b=b, s=s, b.x=b.x, s.x=s.x,
s.xx=s.xx, method="L-BFGS-B",
lower=rep(1e-3,3), guess=c(1,1,1))
sdeDiv(X=X, theta0 = theta1, b=b, s=s, b.x=b.x, s.x=s.x,
s.xx=s.xx, method="L-BFGS-B",
lower=rep(1e-3,3), guess=c(1,1,1))
lambda <- -1.75
myphi <- expression( (x^(lambda+1) -x - lambda*(x-1))/(lambda*(lambda+1)) )
sdeDiv(X=X, theta0 = theta0, phi = myphi, b=b, s=s, b.x=b.x,
s.x=s.x, s.xx=s.xx, method="L-BFGS-B",
lower=rep(1e-3,3), guess=c(1,1,1))
sdeDiv(X=X, theta0 = theta1, phi = myphi, b=b, s=s, b.x=b.x,
s.x=s.x, s.xx=s.xx, method="L-BFGS-B",
lower=rep(1e-3,3), guess=c(1,1,1))
## End(Not run)
``` |

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