鄂尔多斯人一随机图模型的概率如何确定
How to decide probability of Erdos renyi random graph model
我正在理解 erdos ranyi 随机图背后的逻辑 model.I 我正在使用 R studio 生成这个随机图。该模型有两个子部分,一个是 G(n,p),其中,n = 节点总数,p = 任意两个节点共享一条边的概率。我们必须将概率作为输入才能通过。假设如果我进行随机掷硬币实验,那么如果有正面,我将连接两个节点,如果有反面,我将不连接概率为 0.5 的两个节点。当假设我将提供概率 p = 0.3 并且节点数为 5 那么节点将如何根据 0.3 概率连接时,我没有得到。我的r脚本如下。
library(igraph)
g10 <- erdos.renyi.game(5,0.3)
如果你有 5 个节点,那么你在无向图中有 5*4/2 = 10 条可能的边。如果每条边的存在概率为 0.3,则这些图的多个实例上的边数分布为二项分布,概率为 0.3,大小为 10。
让我们来试验一下。生成1000张图并统计节点数:
> g3_edges = table(replicate(1000,length(E(erdos.renyi.game(5,.3)))))
> g3_edges
0 1 2 3 4 5 6 7 8
34 132 230 266 194 100 31 12 1
p=0.3 的 10 到 8 条边的理论分布由 dbinom
给出,我将乘以我的 1000 次模拟计数并取整数与我的模拟进行比较 table:
> p3_edges = as.integer(dbinom(0:8, size=10, p=0.3)*1000)
> p3_edges
[1] 28 121 233 266 200 102 36 9 1
看起来非常接近,并且可能在随机抽样变化范围内。此外,我们没有生成任何具有 9 条或 10 条边的图,并且理论分布已经下降到 8 条边时的 1,所以这也不足为奇。
> cbind(g3_edges, p3_edges)
g3_edges p3_edges
0 34 28
1 132 121
2 230 233
3 266 266
4 194 200
5 100 102
6 31 36
7 12 9
8 1 1
如果需要,请重复 p=0.5。在这种情况下,我得到了最多 9 个边的图形:
> g5_edges = table(replicate(1000,length(E(erdos.renyi.game(5,.5)))))
> p5_edges = as.integer(dbinom(0:9, size=10, p=0.5)*1000)
> cbind(g5_edges, p5_edges)
g5_edges p5_edges
0 2 0
1 14 9
2 53 43
3 102 117
4 216 205
5 266 246
6 199 205
7 91 117
8 39 43
9 18 9
那么你的问题在哪里?
我正在理解 erdos ranyi 随机图背后的逻辑 model.I 我正在使用 R studio 生成这个随机图。该模型有两个子部分,一个是 G(n,p),其中,n = 节点总数,p = 任意两个节点共享一条边的概率。我们必须将概率作为输入才能通过。假设如果我进行随机掷硬币实验,那么如果有正面,我将连接两个节点,如果有反面,我将不连接概率为 0.5 的两个节点。当假设我将提供概率 p = 0.3 并且节点数为 5 那么节点将如何根据 0.3 概率连接时,我没有得到。我的r脚本如下。
library(igraph)
g10 <- erdos.renyi.game(5,0.3)
如果你有 5 个节点,那么你在无向图中有 5*4/2 = 10 条可能的边。如果每条边的存在概率为 0.3,则这些图的多个实例上的边数分布为二项分布,概率为 0.3,大小为 10。
让我们来试验一下。生成1000张图并统计节点数:
> g3_edges = table(replicate(1000,length(E(erdos.renyi.game(5,.3)))))
> g3_edges
0 1 2 3 4 5 6 7 8
34 132 230 266 194 100 31 12 1
p=0.3 的 10 到 8 条边的理论分布由 dbinom
给出,我将乘以我的 1000 次模拟计数并取整数与我的模拟进行比较 table:
> p3_edges = as.integer(dbinom(0:8, size=10, p=0.3)*1000)
> p3_edges
[1] 28 121 233 266 200 102 36 9 1
看起来非常接近,并且可能在随机抽样变化范围内。此外,我们没有生成任何具有 9 条或 10 条边的图,并且理论分布已经下降到 8 条边时的 1,所以这也不足为奇。
> cbind(g3_edges, p3_edges)
g3_edges p3_edges
0 34 28
1 132 121
2 230 233
3 266 266
4 194 200
5 100 102
6 31 36
7 12 9
8 1 1
如果需要,请重复 p=0.5。在这种情况下,我得到了最多 9 个边的图形:
> g5_edges = table(replicate(1000,length(E(erdos.renyi.game(5,.5)))))
> p5_edges = as.integer(dbinom(0:9, size=10, p=0.5)*1000)
> cbind(g5_edges, p5_edges)
g5_edges p5_edges
0 2 0
1 14 9
2 53 43
3 102 117
4 216 205
5 266 246
6 199 205
7 91 117
8 39 43
9 18 9
那么你的问题在哪里?