计算R

时间:2018-03-20 16:29:38

标签: r statistics simulation probability exponential

我有以下图表:

enter image description here

我需要从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)

我现在正试图每天都找到以下内容:

  1. 从A到B的四条可能路线中,每条路线的概率是多少?

  2. 我出差超过半小时的概率是多少?

  3. 对于(1),我理解我需要为每条路线采用累积分布函数(CDF)P(x <= X)。

    对于(2),我理解我需要采用累积分布函数(CDF)P(0.5 =&gt; X),其中0.5表示半小时。

    我刚开始学习R,我不确定如何去做。

    阅读文档,似乎我可能需要执行以下操作来计算CDF:

    pexp()
    
    1 - pexp()
    

    但是,正如我所说,我不确定如何做到这一点。

    如果有人愿意花点时间解释一下,我将不胜感激。

1 个答案:

答案 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快速工作),可以使这些估计更精确。