在Julia中找到负二项分布的函数

时间:2015-01-02 05:54:01

标签: r julia

我使用下面的代码在R

中查找负二项分布
dnbinom(n11, size=p[1], prob=p[2]/(p[2]+E))

其中dnbinom是用于查找负二项分布的函数 n11& E是整数的向量。

现在我想在Julia中运行相同的代码,我应该使用哪个函数来代替dnbinom

该函数的参数必须为(x,size,prob)

其中 x =概率向量。

大小 =成功试验次数的目标或扩散参数(伽马混合分布的形状参数)。必须严格为正,不必是整数。

概率 =每次试验成功的概率。 0<概率< = 1。

以下是我的完整代码(根据给出的答案进行了更新,但仍无效)

using Distributions  
data = query("Select count_a,EXP_COUNT from SM_STAT_ALGO_LOCALTRADE_SOC;")  
f([0.2,0.06,1.4,1.8,0.1],data[:,1],data[:,2])  

function f(x::Vector,n11,E)  
    return sum(-log(x[5] * pdf(NegativeBinomial(x[1], x[2]/(x[2]+E), n11)) + (1-x[5]) * pdf(NegativeBinomial(x[3], x[4]/(x[4]+E),n11))))  
end

2 个答案:

答案 0 :(得分:2)

假设您想要结果向量的概率,您可以

using Distributions
function dnbinom(x, size, prob)
    dist = NegativeBinomial(size,prob)
    map(y->pdf(dist,y), x)
end
@show dnbinom([3,5], 10, 0.1)

答案 1 :(得分:2)

要在R

中获得相等的dbinom
dnbinom(1, 1, 0.5)
# [1] 0.25

你可以使用

using Distributions
pdf(NegativeBinomial(), 1)
# 0.25000000000000006

在朱莉娅。