提问人:Ana Paula Castro 提问时间:11/10/2023 最后编辑:Ana Paula Castro 更新时间:11/11/2023 访问量:46
矩阵网络中的 Bootstrap
Bootstrap in matrix network
问:
我对 igraph 包有几个问题: 1- 如何通过随机排列每个感兴趣区域内的值顺序来计算引导相关矩阵,然后计算每个引导矩阵的图形值。 2- 如果我引导一个矩阵,它总是会给我不同的结果吗?对于随机生成的图形并对其应用引导程序,是否也会发生同样的情况?每次我运行来自这些引导程序的这些网络的分析时,统计结果都不同。
这样我就可以有一个分布,原始图形值可以与之进行比较。最后,在感兴趣区域将有 100 个具有相同原始值的矩阵,但打破了跨学科组相关性一致性的规律性。
下面的数据只是运行代码的示例,我的原始数据没有相同的特征。
###DADOSEXEMPLO##
vetor <- c(1, 5, 3, 8, 2, 9, 3, 2:15, 1, 5, 3, 6, 5, 9, 3 )
matrixnet<-matrix(vetor, 7, 7)
matcor <- cor(matrixnet, method = "spearman")
matrixnetwork = graph.adjacency(matcor, mode="undirected",
weighted
= TRUE,
add.colnames=NULL, diag=FALSE)
plot(matrixnetwork)
在这里,我将排列“更改顶点值”与我要应用的特定函数结合使用,在本例中为 Betw
set.seed(123
bootcentr_Betw <- lapply(seq_len(Nperm), function(x){
randomnet <- rewire(matrixnetwork, with=each_edge(0.5)) #rewire 顶点
概率
E(randomnet)$weight <- sample(E(matrixnetwork)$weight) #shuffle 初始权重并分配
它们随机到边缘
返回(centr_betw(随机网络)$res)
})
#################
# Random network#
#################
Randon_network <- sample_gnm(7, 17)
Randon_network$name <- "Random graph, Gnm, 7, 17"
set.seed(123)
Rbootcentr_Betw <- lapply(seq_len(Nperm), function(x){
randomnet <- rewire(Randon_network, with=each_edge(0.5)) #rewire
vertices with constant
probability
E(randomnet)$weight <- sample(ecount(Randon_network), replace =
TRUE) #shuffle initial
weights and assign them randomly to edges
return(centr_betw(randomnet)$res)
})
# Converter
Rcentr_Betw_coll <- do.call("rbind", Rbootcentr_Betw)
centr_Betw_coll <- do.call("rbind", bootcentr_Betw)
#Centrality
t.test(centr_Betw_coll[,1], Rcentr_Betw_coll[,1])
t.test(centr_Betw_coll[,2], Rcentr_Betw_coll[,2])
t.test(centr_Betw_coll[,3], Rcentr_Betw_coll[,3])
t.test(centr_Betw_coll[,4], Rcentr_Betw_coll[,4])
t.test(centr_Betw_coll[,5], Rcentr_Betw_coll[,5])
t.test(centr_Betw_coll[,6], Rcentr_Betw_coll[,6])
t.test(centr_Betw_coll[,7], Rcentr_Betw_coll[,7])
最后,每次我运行分析时,它都会给我不同的统计值,我怀疑这对统计的正确性和可靠性有多好。
答: 暂无答案
评论