对数logistic和Burr分布的随机数生成
我试图从真实数据生成分布。我使用R包tdistrplus来获得分布的参数。R包的分布为:帕累托分布、对数正态分布、对数逻辑分布和布尔分布。但是,我在NetLogo中找不到这些发行版。我需要为它们编写一个函数。我已经在其他论坛上找到了帕累托分布和对数正态分布:对数logistic和Burr分布的随机数生成,r,random,netlogo,distribution,R,Random,Netlogo,Distribution,我试图从真实数据生成分布。我使用R包tdistrplus来获得分布的参数。R包的分布为:帕累托分布、对数正态分布、对数逻辑分布和布尔分布。但是,我在NetLogo中找不到这些发行版。我需要为它们编写一个函数。我已经在其他论坛上找到了帕累托分布和对数正态分布: ;; Pareto distribution (Pareto from R package: tdistrplus) to-report random-pareto [alpha mm] report mm / ( random-float
;; Pareto distribution (Pareto from R package: tdistrplus)
to-report random-pareto [alpha mm]
report mm / ( random-float 1 ^ (1 / alpha) )
end
;; lognormal distribution (lnorm from R package: tdistrplus)
to-report log-normal [mu sigma]
let beta ln (1 + ((sigma ^ 2) / (mu ^ 2)))
let x exp (random-normal (ln (mu) – (beta / 2)) sqrt beta)
report x
end
但是,我找不到对数logistic分布和Burr分布完整函数或随机数表达式,只有概率密度函数,我不知道如何从中表达X(Matchad找不到解决方案,或者我使用的方法不正确)
如有任何建议,我将不胜感激(我的博士论文需要基于真实数据进行模拟)
感谢您在高级Wrt日志物流中,反向CDF方法应该可以很好地工作。依照公约 我很快研究了毛刺的取样——也可以通过反向CDF进行。跟随 更新 我的NetLogo很久以前就被使用过,所以让我们写一些公式,你可以重写代码 原木物流 CDF(x |α,β)=(x/α)β/(1+(x/α)β) 反向CDF表示样本
x
使用
x=CDF-1(r),其中r
为随机均匀U(0,1)
因此,(x/α)β=q=r/(1-r),和
x=αq1/β
毛刺
CDF(x | c,k)=1-(1+xc)-k
反向CDF表示样本x
使用
x=CDF-1(r),其中r
为随机均匀U(0,1)
(1+xc)-k=r
(1+xc)=(1/r)1/k
x=((1/r)1/k-1)1/c
请检查我的数学,代码中所有的幂都是通过
exp
和ln
表示的。约定是根据wiki而定的您具体想要什么?从R?中的分布生成随机数据?我想通过使用真实数据拟合的分布来模拟需求变化,在NetLogo中对供应链进行建模。在R中,我使用包装tdistrplus获得了毛刺和原木物流分布的系数。我想在NetLogo中输入这些系数来模拟我的真实数据。但是,我不知道Burr和Log logistics在Netlogo中生成随机数据的功能,因为它们是内置的。例如,R的输出:burr(shape1=0.9283009,shape2=2.3864253,rate=1.0484444)log logistics(2.3224812=0.559 4916,scale=0.9898947)使用burr和log logistics Distributions在NetLogo中生成随机数据我没有使用NetLogo。你能用R做所有的事情吗?是的,这是可能的,但NetLogo更方便用户,更适合模拟。非常感谢你的帮助我还有一个问题。随机浮点需要一个输入,一个数字。我应该设置什么?我认为这很重要,因为有时我会在burr分布中不断得到一个错误,指出“不能取-0.008的对数。”@ValentasGruzauskas抱歉,很久以前曾经使用过NetLogo。应该是随机浮点1
。感谢您的更正。你为我的模拟带来了巨大的附加值。谢谢:)谢谢你的帮助和解释,需要更新我的数学知识:)
to-report random-loglogistics [alpha beta]
let r random-float 1
let q r/(1-r)
let x alpha exp (ln (q) / beta)
report x
end
to-report random-burr [c k]
let r random-float 1
let q exp ( - ln(r) / k) - 1
let x exp ( ln(q) / c )
report x
end