Description Usage Arguments Value Note Author(s) Examples
Functions for estimating the degrees of freedom ν in the random covariance model (RCM).
1 2 3 4 5 6 7 8 9 | rcm_get_nu(Psi, S_list, ns)
rcm_get_nu_optimize(Psi, S_list, ns)
rcm_get_nu_optim(Psi, S_list, ns, ...)
rcm_get_nu_nlm(Psi, S_list, ns, ...)
rcm_get_nu_optimize2(Psi, S_list, ns)
|
Psi |
A numeric matrix of size p times p giving the initial estimate of Ψ. |
S_list |
A |
ns |
Vector of group sizes. |
... |
arguments passed to the optimizer. |
A list giving the ν optimizing the RCM likelihood with fixed Ψ and other stuff.
rcm_get_nu
is a wrapper for rcm_get_nu_optimize
.
rcm_get_nu_optimize
optimizes via optimize
and
the Brent-type optimization.
rcm_get_nu_optim
optimizes via optim
and the
L-BFGS-B method.
rcm_get_nu_nlm
optimizes via nlm
.
rcm_get_nu_optim2
optimizes via optimize
and the
Brent-type method. A faster implementation. Avoids many repeated
evaluations.
Anders Ellern Bilgrau
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 | p <- 3
Psi <- diag(p)
ns <- c(5, 5, 5)
true.nu <- 7
nus <- seq(p - 1 + sqrt(.Machine$double.eps), 40, l = 1000)
S_list <- createRCMData(ns = ns, psi = Psi, nu = true.nu)
eval.ll <- c()
for (i in seq_along(nus)) {
eval.ll[i] <- correlateR:::rcm_loglik_arma(Psi, nus[i], S_list, ns)
}
plot(nus, eval.ll, type = "l")
abline(v = true.nu, col = "red", lwd = 2)
# Get nu
print(ans <- correlateR:::rcm_get_nu_optimize(Psi, S_list, ns))
print(ans2 <- correlateR:::rcm_get_nu_optim(Psi, S_list, ns))
print(ans3 <- correlateR:::rcm_get_nu_nlm(Psi, S_list, ns))
print(ans4 <- correlateR:::rcm_get_nu_optimize2(Psi, S_list, ns))
abline(v = ans$maximum, col = "orange", lwd = 2, lty = 2)
abline(v = ans2$par, col = "blue", lwd = 2, lty = 3)
abline(v = ans3$estimate, col = "brown", lwd = 2, lty = 4)
abline(v = ans4$maximum, col = "purple", lwd = 2, lty = 4)
## Not run:
library("microbenchmark")
microbenchmark(correlateR:::rcm_get_nu_optimize2(Psi, S_list, ns),
correlateR:::rcm_get_nu_optimize(Psi, S_list, ns),
correlateR:::rcm_get_nu_optim(Psi, S_list, ns),
correlateR:::rcm_get_nu_nlm(Psi, S_list, ns))
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.