R中的指数分布模拟

时间:2018-03-20 11:03:44

标签: r statistics simulation probability exponential-distribution

我有以下图表:

enter image description here

我被告知以下信息:

(1)顶点A到顶点X由指数分布描述,λ= 4;

(2)顶点A到顶点Y由指数分布描述,λ= 2.5;

(3)顶点X到顶点Y与顶点Y相同,到顶点X,并用lambda = 10的指数分布描述;

(4)顶点X到顶点B由指数分布描述,λ= 3;最后,

(5)顶点Y到顶点B由指数分布描述,λ= 5。

让我们假设我在每次模拟时都采用顶点之间的最快路径。

我现在想知道从顶点A到顶点B的平均时间。

我的R代码如下:

$('.js_show_alltypes').click(function (e) {
    e.preventDefault();
    $(this).parent().find('.js_item').slideDown();
    $(this).hide();
});

这看起来是否正确?如果人们可以请花时间查看我的代码来解决这个问题,我将不胜感激。

1 个答案:

答案 0 :(得分:3)

  1. 这取决于解释,但我要说你需要分别模拟从X到Y和从Y到X的时间,尽管速率相同。如果火车双向行驶且平均速度相同,则并不意味着从X和Y出发的两列火车将在同一时间到达另一点。

  2. 您没有使用

    AYX <- AtoY + XtoY
    AXY <- AtoX + XtoY
    

    所以他们是多余的。

  3. minAXB <- min(AXB)并没有多大意义。您为每条边模拟了1000次旅行时间,AXB是路线AXB的1000倍矢量,现在您选择的是最短的一次..

  4. 同样,averageTravelTime没有意义,因为minAXB + minAYB + minAXYB + minAYXB只是一个数字,而不是矢量。

  5. 因此,我认为代码应该是

    set.seed(1)
    AtoX <- rexp(1000, 4)
    AtoY <- rexp(1000, 2.5)
    XtoY <- rexp(1000, 10)
    YtoX <- rexp(1000, 10) # added
    XtoB <- rexp(1000, 3)
    YtoB <- rexp(1000, 5)
    
    AXB <- AtoX + XtoB
    AYB <- AtoY + YtoB
    AXYB <- AtoX + XtoY + YtoB
    AYXB <- AtoY + YtoX + XtoB # changed XtoY to YtoX
    
    TravelTimes <- pmin(AXB, AYB, AXYB, AYXB)
    averageTravelTime <- mean(TravelTimes)
    

    请参阅?pmin。每天它选择最快的旅行时间并返回长度为1000的矢量。

    作为奖励,以下显示哪条路线最快的次数

    table(apply(cbind(AXB, AYB, AXYB, AYXB), 1, which.min))
    #   1   2   3   4 
    # 317 370 240  73