我有以下图表:
我需要从A到B旅行。我还假设我从A到最快的路线每天。
节点之间的传播时间(以小时为单位)呈指数分布。我用R中的相关lambda值模拟了它们,如下所示:
AtoX <- rexp(1000, 4)
AtoY <- rexp(1000, 2.5)
XtoY <- rexp(1000, 10)
YtoX <- rexp(1000, 10)
XtoB <- rexp(1000, 3)
YtoB <- rexp(1000, 5)
我每天计算R中的平均旅行时间如下:
AXB <- AtoX + XtoB
AYB <- AtoY + YtoB
AXYB <- AtoX + XtoY + YtoB
AYXB <- AtoY + YtoX + XtoB
TravelTimes <- pmin(AXB, AYB, AXYB, AYXB)
averageTravelTime <- mean(TravelTimes)
我现在正试图每天都找到以下内容:
从A到B的四条可能路线中,每条路线的概率是多少?
我出差超过半小时的概率是多少?
对于(1),我理解我需要为每条路线采用累积分布函数(CDF)P(x <= X)。
对于(2),我理解我需要采用累积分布函数(CDF)P(0.5 =&gt; X),其中0.5表示半小时。
我刚开始学习R,我不确定如何去做。
阅读文档,似乎我可能需要执行以下操作来计算CDF:
pexp()
1 - pexp()
但是,正如我所说,我不确定如何做到这一点。
如果有人愿意花点时间解释一下,我将不胜感激。
答案 0 :(得分:1)
令R1,R2,R3,R4按某种顺序为对应于四条路线总时间的随机变量。然后,作为独立指数随机变量的总和,它们中的每一个都遵循Erlang或Gamma分布(参见here)。
要回答1,您希望找到P(min {R1,R2,R3,R4} = R_i)i = 1,2,3,4。虽然独立指数随机变量的最小值是易处理的(见here),但据我所知,一般而言,Erlang / Gamma分布不是这种情况。因此,我认为你需要使用模拟以数字方式回答这个问题。
同样适用于要求找到P的第二个问题(min {R1,R2,R3,R4}> = 1/2)。
因此,我们有
table(apply(cbind(AXB, AYB, AXYB, AYXB), 1, which.min)) / 1000
# 1 2 3 4
# 0.312 0.348 0.264 0.076
和
mean(TravelTimes >= 0.5)
# [1] 0.145
作为我们的估计。通过将1000增加到更高的数字(例如,1e6快速工作),可以使这些估计更精确。