Description Usage Arguments Details Value Author(s) References See Also Examples
This function is to conduct model selection for time-varying graphical models based on cross validation results from loggle.cv.h.
1 2 | loggle.cv.select.h(cv.result, select.type = "all_flexible",
cv.vote.thres = 0.8)
|
cv.result |
a list: results from loggle.cv.h |
select.type |
a string: "all_flexible" – optimal |
cv.vote.thres |
a scalar between 0 and 1: an edge is kept after cv.vote if and only if it exists in no less than |
select.type = "all_flexible" is for the situation where we expect both the extent of structure smoothness (controlled by d) and the extent of graph sparsity (controlled by lambda) vary across time points. If only the extent of graph sparsity varies across time points, select.type = "d_fixed" should be used. If both of them are expected to be similar across time points, select.type = "all_fixed" should be used.
cv.vote.thres controls the tradeoff between false discovery rate and power in model selection. A large value of cv.vote.thres would decrease false discovery rate but also hurt power.
d.opt |
a vector of optimal values of |
lambda.opt |
a vector of optimal values of |
cv.score.opt |
optimal cv score (averaged over time points and cv folds) |
edge.num.opt |
a vector of numbers of edges for each estimated graph |
edge.opt |
a list of edges for each estimated graph |
adj.mat.opt |
a list of adjacency matrices for each estimated graph |
Yang, J. and Peng, J.
Yang, J. & Peng, J. (2018), 'Estimating Time-Varying Graphical Models', arXiv preprint arXiv:1804.03811
loggle for learning time-varying graphical models, loggle.cv for learning time-varying graphical models via cross validation, loggle.cv.select for model selection based on cross validation results.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | data(example) # load example dataset
X <- example$X # data matrix
dim(X) # dimension of data matrix
# positions of time points to estimate graphs
pos <- round(seq(0.1, 0.9, length=9)*(ncol(X)-1)+1)
# estimate time-varying graphs via cross-validation
result <- loggle.cv.h(X, pos, h = 0.2,
d.list = c(0, 0.05, 0.15, 1), lambda.list
= c(0.2, 0.25), cv.fold = 3, fit.type = "pseudo",
cv.vote.thres = 1, num.thread = 1)
# conduct model selection using cross-validation results
select.result <- loggle.cv.select.h(cv.result = result,
select.type = "all_flexible", cv.vote.thres = 0.8)
# optimal values of d and lambda, and number of
# selected edges at each time point
print(cbind("time" = seq(0.1, 0.9, length=9),
"d.opt" = select.result$d.opt,
"lambda.opt" = select.result$lambda.opt,
"edge.num.opt" = select.result$edge.num.opt))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.