【发布时间】:2021-08-11 20:14:14
【问题描述】:
是否有 R 函数用于生成边缘概率的无向图?我试图通过构造邻接矩阵(精度矩阵)来生成一个非超自然数据集[见附录]。首先,我应该生成一个随机图,它的成对边 (i,j) 遵循正态概率密度函数。 'igraph' 包引入了 'sample_fitness' 和 'sample_degseq' 函数,它们将概率应用于每个顶点的度数,但不适用于 i 和 j 顶点之间是否存在边。 谢谢大家
.
library(MASS)
library(Matrix)
library(philentropy)
library(qgraph)
library(igraph)
library(huge)
d=10
tmp=matrix(runif(2*d,0,0.5),d,2)
tmp=2*tmp
L=distance(tmp,method="euclidean")
s=0.125
prob=(1/sqrt(2*pi))*exp(-(L^2)/2*s)
prob=mat2vec(prob)
degs<-sample(0:(length(prob)-1),d,replace=TRUE,prob=prob)
for(i in 1:d){
if (degs[i]>4){degs[i]=4}
}
degs
if(sum(degs)%%2!=0){degs[1]<-degs[1]+1}
degs
g4 <-sample_degseq(degs,method="vl")
all(degree(g4)==degs)
plot(g4)
theta=as_adjacency_matrix(g4,type="both")
for(j in 1:d){
for(i in 1:d){
if(theta[i,j]==0)
omega[i,j]=0
else
omega[i,j]=0.245
}
}
diag(omega)=1
【问题讨论】:
标签: graphics igraph graph-theory