Description Usage Arguments Value Note Author(s) References See Also Examples
View source: R/loglikLOOCVVARX1.r
Evaluation of the (minus) leave-one-out cross-validated log-likelihood of the VARX(1) model for given choices of the ridge penalty parameters (λ_a, λ_b and λ_{ω} for the autoregression coefficient matrix \mathbf{A}, regression coefficient matrix \mathbf{B} of time-varying covariates, and the inverse error covariance matrix \mathbf{Ω}_{\varepsilon} (=\mathbf{Σ_{\varepsilon}^{-1}}), respectively). The functions also works with a (possibly) unbalanced experimental set-up. The VARX(1)-process is assumed to have mean zero.
1 | loglikLOOCVVARX1(lambdas, Y, X, unbalanced=matrix(nrow=0, ncol=2), lagX=0, ...)
|
lambdas |
A |
Y |
Three-dimensional |
X |
Three-dimensional |
unbalanced |
A |
lagX |
|
... |
Other arguments to be passed to |
A numeric
of length one: the minus (!) LOOCV log-likelihood.
The minus LOOCV log-likelihood is returned as standard optimization procedures in R like nlminb
and constrOptim
minimize (rather then maximize). Hence, by providing the minus LOOCV log-likelihood the function loglikLOOCVVARX1
can directly used by these optimization procedures.
Wessel N. van Wieringen <w.vanwieringen@vumc.nl>
Miok, V., Wilting, S.M., Van Wieringen, W.N. (2019), “Ridge estimation of network models from time-course omics data”, Biometrical Journal, 61(2), 391-405.
ridgeP
and ridgeVARX1
.
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 | # set dimensions (p=covariates, n=individuals, T=time points)
p <- 3; n <- 12; T <- 10
# set model parameters
SigmaE <- diag(p)/4
Ax <- createA(3, "chain")
# generate time-varying covariate data
X <- dataVAR1(n, T, Ax, SigmaE)
# regression parameter matrices of VARX(1) model
A <- createA(p, topology="clique", nonzeroA=0.1, nClique=1)
B <- createA(p, topology="hub", nonzeroA=0.1, nHubs=1)
# generate data
Y <- dataVARX1(X, A, B, SigmaE, lagX=0)
## determine optimal values of the penalty parameters
## Not run: optLambdas <- constrOptim(c(1,1, 1), loglikLOOCVVARX1, gr=NULL,
## Not run: ui=diag(3), ci=c(0,0,0), Y=Y, X=X, lagX=0,
## Not run: control=list(reltol=0.01))$par
# ridge ML estimation of the VAR(1) parameter estimates with
# optimal penalty parameters
optLambdas <- c(0.1, 0.1, 0.1)
ridgeVARX1(Y, X, optLambdas[1], optLambdas[2], optLambdas[3], lagX=0)$A
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.