igraph';套用嵌套模型

igraph';套用嵌套模型,r,layout,model,igraph,R,Layout,Model,Igraph,在数据集上运行例如cv.glmnet(默认情况下)可以提供100种不同的模型。现在,如果我的数据集缺少数据,我可以进行多次插补(比如说10次插补)并对每个插补运行cv.glmnet 如果我忽略每个模型的实际系数值,只查看选定的特征(即列名集),则某些模型是其他模型的子模型 这样的代码在某种程度上模拟了结果: usevars<-paste("var", 1:100, sep="") mdls<-replicate(1000, { numVars<-sample.i

在数据集上运行例如cv.glmnet(默认情况下)可以提供100种不同的模型。现在,如果我的数据集缺少数据,我可以进行多次插补(比如说10次插补)并对每个插补运行cv.glmnet

如果我忽略每个模型的实际系数值,只查看选定的特征(即列名集),则某些模型是其他模型的子模型

这样的代码在某种程度上模拟了结果:

usevars<-paste("var", 1:100, sep="")
mdls<-replicate(1000, {
        numVars<-sample.int(length(usevars), 1)
        sample(usevars, numVars)
    })
names(mdls)<-paste("mdl", 1:1000, sep="")

usevarsigraph开发版本中的Fruchterman-Reingold布局算法(即0.6,尚未正式发布,但您可以在上要求Gábor向您发送副本)有两个隐藏(即尚未记录)参数:
miny
maxy
。它们允许您在一个范围内约束节点的Y坐标,因此您可以使用它来创建层


或者,我现在正在为igraph开发Sugiyama分层图布局方法的实现,我将在一两天内将其合并到开发树中(如果进展顺利),然后您可以尝试。

您可以使用该选项来约束qgraph中的fruchterman-reingold算法。为了说明这一点,我首先创建一个嵌套模型的小邻接矩阵:

adj <- matrix(0,9,9)

adj[1,2:4] <- 1
adj[2:4,5:7] <- 1
adj[5:7,8] <- 1
adj[8,9] <- 1 

mod <- c(1,rep(2,3),rep(3,3),4,5)
在这里,我们还将布局保存在对象
L
中,该对象也可以用作
igraph
中的布局


Thx。幸运的是,我的问题并不紧急(我有一个可行的解决方案,我只想在我的最终结果中有更漂亮的东西),所以我会等到新版本正式发布。那可能是一个月或两个月后,所以如果你不想等那么久,就在邮件列表中删除一封电子邮件。
library("qgraph")
Lpar <- list(constraints = cbind(NA,nrow(adj)*mod))
L <- qgraph(adj,layout="spring",layout.par=Lpar)$layout