矩阵网络中的 Bootstrap

Bootstrap in matrix network

提问人:Ana Paula Castro 提问时间:11/10/2023 最后编辑:Ana Paula Castro 更新时间:11/11/2023 访问量:46

问:

我对 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])

最后,每次我运行分析时,它都会给我不同的统计值,我怀疑这对统计的正确性和可靠性有多好。

R iGraph 示例 网络分析

评论


答: 暂无答案