# \donttest{
# Test in OU process
alpha <- c(1, 2, -0.5)
mu <- c(0, 0)
sigma <- c(0.5, 1)
set.seed(2334567)
data <- rTrajMou(x0 = c(0, 0), A = alphaToA(alpha = alpha, sigma = sigma),
mu = mu, Sigma = diag(sigma^2), N = 500, delta = 0.5)
b <- function(x, pars) sweep(-x, 2, pars[4:5], "+") %*%
t(alphaToA(alpha = pars[1:3], sigma = sigma))
sigma2 <- function(x, pars) repRow(sigma^2, nrow(x))
exactOu <- mleMou(data = data, delta = 0.5, sigma = sigma,
start = c(1, 1, 0, 2, 2),
lower = c(0.1, 0.1, -25, -10, -10),
upper = c(25, 25, 25, 10, 10))
head(exactOu, 2)
pdeOu <- mlePde2D(data = data, delta = 0.5, b = b, sigma2 = sigma2,
Mx = 10, My = 10, Mt = 10,
start = rbind(c(1, 1, 0, 2, 2)),
lower = c(0.1, 0.1, -25, -10, -10),
upper = c(25, 25, 25, 10, 10), verbose = 2)
head(pdeOu, 2)
pdeOuLin <- mlePde2D(data = data, delta = 0.5, b = b, sigma2 = sigma2,
Mx = 10, My = 10, Mt = 10,
start = rbind(c(1, 1, 0, 2, 2)),
lower = c(0.1, 0.1, -25, -10, -10),
upper = c(25, 25, 25, 10, 10), verbose = 2,
linearBinning = TRUE)
head(pdeOuLin, 2)
# Test in WN diffusion
alpha <- c(1, 0.5, 0.25)
mu <- c(0, 0)
sigma <- c(2, 1)
set.seed(234567)
data <- rTrajWn2D(x0 = c(0, 0), alpha = alpha, mu = mu, sigma = sigma,
N = 200, delta = 0.5)
b <- function(x, pars) driftWn2D(x = x, A = alphaToA(alpha = pars[1:3],
sigma = sigma),
mu = pars[4:5], sigma = sigma)
sigma2 <- function(x, pars) repRow(sigma^2, nrow(x))
exactOu <- mleMou(data = data, delta = 0.5, sigma = sigma,
start = c(1, 1, 0, 1, 1),
lower = c(0.1, 0.1, -25, -25, -25),
upper = c(25, 25, 25, 25, 25), optMethod = "nlm")
pdeWn <- mlePde2D(data = data, delta = 0.5, b = b, sigma2 = sigma2,
Mx = 20, My = 20, Mt = 10, start = rbind(c(1, 1, 0, 1, 1)),
lower = c(0.1, 0.1, -25, -25, -25),
upper = c(25, 25, 25, 25, 25), verbose = 2,
optMethod = "nlm")
pdeWnLin <- mlePde2D(data = data, delta = 0.5, b = b, sigma2 = sigma2,
Mx = 20, My = 20, Mt = 10,
start = rbind(c(1, 1, 0, 1, 1)),
lower = c(0.1, 0.1, -25, -25, -25),
upper = c(25, 25, 25, 25, 25), verbose = 2,
linearBinning = TRUE)
head(exactOu)
head(pdeOu)
head(pdeOuLin)
# }
Run the code above in your browser using DataLab