Description Usage Arguments Details Value Author(s) References Examples
Parametric estimation of the joint density of the random effects in the mixed SDE
dX_j(t)= (α_j- β_j X_j(t))dt + σ_j \ a(X_j(t)) dW_j(t),
j=1,…,M, where the (W_j(t)) are independant Wiener processes and the (X_j(t)) are observed without noise. There can be random effects either in the drift (α_j,β_j) or in the diffusion coefficient σ_j or both (α_j,β_j,σ_j).
1 2 3 4 |
times |
vector of observation times |
X |
matrix of the M trajectories (each row is a trajectory with as much columns as observations) |
model |
name of the SDE: 'OU' (Ornstein-Uhlenbeck) or 'CIR' (Cox-Ingersoll-Ross) |
drift.random |
random effects in the drift: 0 if only fixed effects, 1 if one additive random effect, 2 if one multiplicative random effect or c(1,2) if 2 random effects. Default to c(1,2) |
drift.fixed |
NULL if the fixed effect(s) in the drift is (are) estimated, value of the fixed effect(s) otherwise. Default to NULL |
diffusion.random |
1 if σ is random, 0 otherwise. Default to 0 |
diffusion.fixed |
NULL if σ is estimated (if fixed), value of σ otherwise. Default to NULL |
nb.mixt |
number of mixture components for the distribution of the random effects in the drift. Default to 1 (no mixture) |
Niter |
number of iterations for the EM algorithm if the random effects in the drift follow a mixture distribution. Default to 10 |
discrete |
1 for using a contrast based on discrete observations, 0 otherwise. Default to 1 |
valid |
1 if test validation, 0 otherwise. Default to 0 |
level |
alpha for the predicion intervals. Default 0.05 |
newwindow |
logical(1), if TRUE, a new window is opened for the plot. Default to FALSE |
Parametric estimation of the random effects density from M independent trajectories of the SDE:
dX_j(t)= (α_j- β_j X_j(t))dt + σ_j \ a(X_j(t)) dW_j(t),
j=1,…,M, where the (W_j(t)) are independant Wiener processes and the (X_j(t)) are observed without noise.
Specification of the random effects:
The drift includes no, one or two random effects:
if drift.random = 0: α_j \equiv α and β_j \equiv β are fixed
if drift.random = 1: β_j \equiv β is fixed and α_j is random
if drift.random = 2: α_j \equiv α is fixed and β_j is random
if drift.random = c(1,2): α_j and β_j are random
The diffusion includes either a fixed effect or a random effect:
if diffusion.random = 0: σ_j \equiv σ is fixed
if diffusion.random = 1: σ_j is random
Distribution of the random effects
If there is no random effect in the diffusion (diffusion.random = 0), there is at least on random effect in the drift that follows
a Gaussian distribution (nb.mixt=1): α_j \sim N(μ,Ω) or β_j \sim N(μ,Ω) or (α_j,β_j) \sim N(μ,Ω),
or a mixture of Gaussian distributions (nb.mixt=K, K>1): α_j \sim ∑_{k=1}^{K} p_k N(μ_k,Ω_k) or β_j \sim ∑_{k=1}^{K} p_k N(μ_k,Ω_k) or (α_j,β_j) \sim ∑_{k=1}^{K} p_k N(μ_k,Ω_k), where ∑_{k=1}^{K} p_k=1.
If there is one random effect in the diffusion (diffusion.random = 1), 1/σ_j^2 \sim Γ(a,λ), and the coefficients in the drift are conditionally Gaussian: α_j|σ_j \sim N(μ,σ_j^2 Ω) or β_j|σ_j \sim N(μ,σ_j^2 Ω) or (α_j,β_j)|σ_j \sim N(μ,σ_j^2 Ω), or they are fixed α_j \equiv α, β_j \equiv β.
SDEs
Two diffusions are implemented:
the Ornstein-Uhlenbeck model (OU) a(X_j(t))=1
the Cox-Ingersoll-Ross model (CIR) a(X_j(t))=√{X_j(t)}
Estimation
If discrete = 0, the estimation is based on the exact likelihood associated with continuous observations ([1],[3]). This is only possible if diffusion.random = 0 and σ is not estimated by maximum likelihood but empirically by means of the quadratic variations.
If discrete = 1, the likelihood of the Euler scheme of the mixed SDE is computed and maximized for estimating all the parameters.
If nb.mixt > 1, an EM algorithm is implemented and the number of iterations of the algorithm must be specified with Niter.
If valid = 1, two-thirds of the sample trajectories are used for estimation, while the rest is used for validation. A plot is then provided for visual comparison between the true trajectories of the test sample and some predicted trajectories simulated under the estimated model.
index |
is the vector of subscript in 1,...,M used for the estimation. Most of the time index=1:M, except for the CIR that requires positive trajectories. |
estimphi |
matrix of estimators of the drift random effects \hat{α}_j, or \hat{β}_j or (\hat{α}_j,\hat{β}_j) |
estimpsi2 |
vector of estimators of the squared diffusion random effects \hat{σ}_j^2 |
gridf |
grid of values for the plots of the random effects distribution in the drift, matrix form |
gridg |
grid of values for the plots of the random effects distribution in the diffusion, matrix form |
estimf |
estimator of the density of α_j, β_j or (α_j,β_j). Matrix form. |
estimg |
estimator of the density of σ_j^2. Matrix form. |
mu |
estimator of the mean of the random effects normal density |
omega |
estimator of the standard deviation of the random effects normal density |
a |
estimated value of the shape of the Gamma distribution |
lambda |
estimated value of the scale of the Gamma distribution |
sigma2 |
value of the diffusion coefficient if it is fixed |
bic |
BIC criterium |
aic |
AIC criterium |
model |
initial choice |
drift.random |
initial choice |
diffusion.random |
initial choice |
drift.fixed |
initial choice |
estim.drift.fix |
1 if the fixed effects in the drift are estimated, 0 otherwise. |
estim.diffusion.fixed |
1 if the fixed effect in the diffusion is estimated, 0 otherwise. |
discrete |
initial choice |
times |
initial choice |
X |
initial choice |
For mixture distributions in the drift:
mu |
estimated value of the mean at each iteration of the algorithm. Niter x N x 2 array. |
omega |
estimated value of the standard deviation at each iteration of the algorithm. Niter x N x 2 array. |
mixt.prop |
estimated value of the mixture proportions at each iteration of the algorithm. Niter x N matrix. |
probindi |
posterior component probabilites. M x N matrix. |
Maud Delattre and Charlotte Dion
See
[1] Maximum Likelihood Estimation for Stochastic Differential Equations with Random Effects, Delattre, M., Genon-Catalot, V. and Samson, A. Scandinavian Journal of Statistics 40(2) 2012 322-343
[2] Estimation of population parameters in stochastic differential equations with random effects in the diffusion coefficient, Delattre, M., Genon-Catalot, V. and Samson, A. ESAIM:PS 19 2015 671-688
[3] Mixtures of stochastic differential equations with random effects: application to data clustering, Delattre, M., Genon-Catalot, V. and Samson, A. Journal of Statistical Planning and Inference 173 2016 109-124
[4] Parametric inference for discrete observations of diffusion processes with mixed effects, Delattre, M., Genon-Catalot, V. and Laredo, C. hal-01332630 2016
[5] Estimation of the joint distribution of random effects for a discretely observed diffusion with random effects, Delattre, M., Genon-Catalot, V. and Laredo, C. hal-01446063 2017
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 45 46 47 48 49 50 51 | # Example 1 : One random effect in the drift and one random effect in the diffusion
sim <- msde.sim(M = 25, T = 1, N = 1000, model = 'OU',
drift.random = 2, drift.param = c(0,0.5,0.5),
diffusion.random = 1, diffusion.param = c(8,1/2))
res <- msde.fit(times = sim$times, X = sim$X, model = 'OU', drift.random = 2,
diffusion.random = 1)
summary(res)
plot(res)
## Not run:
# Example 2 : one mixture of two random effects in the drift, and one fixed effect in
# the diffusion coefficient
sim <- msde.sim(M = 100, T = 5, N = 5000, model = 'OU', drift.random = c(1,2),
diffusion.random = 0,
drift.param = matrix(c(0.5,1.8,0.25,0.25,1,2,0.25,0.25),nrow=2,byrow=FALSE),
diffusion.param = 0.1, nb.mixt = 2, mixt.prop = c(0.5,0.5))
# -- Estimation without validation
res <- msde.fit(times = sim$times, X = sim$X, model = 'OU', drift.random = c(1,2),
nb.mixt=2, Niter = 10)
summary(res)
plot(res)
# -- Estimation with prediction
res.valid <- msde.fit(times = sim$times, X = sim$X, model = 'OU', drift.random = c(1,2),
nb.mixt=2, Niter = 10, valid = 1)
summary(res.valid)
plot(res.valid)
# Example 3 : CIR with one random effect in the drift and one random effect in the diffusion
# coefficient
sim <- msde.sim(M = 100, T = 5, N = 5000, model = 'CIR', drift.random = 2,
diffusion.random = 1, drift.param = c(4,1,0.1), diffusion.param = c(8,0.5),
X0 = 1)
res <- msde.fit(times = sim$times, X = sim$X, model = 'CIR', drift.random = 2,
diffusion.random = 1)
summary(res)
# Further examples can be found in the section dedicated to neuronal.data.
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.