我尝试用Perl做我在R中成功但很难与下游需求结合。
在R中我做了以下library("MASS")
d <- rnegbin(100000, mu = 250, theta = 2)
hist(d, breaks=1000, xlim=c(0,1000))
生成我需要的漂亮图形,峰值为180-200,右侧为尾部。
有人可以帮我用 Math :: Random
编写perl等效代码我尝试了这个,但没有得到正确的形状
use Math::Random qw(random_negative_binomial);
# random_negative_binomial($n, $ne, $p)
# When called in an array context, returns an array of $n outcomes
# generated from the negative binomial distribution with number of
# events $ne and probability of an event in each trial $p.
# When called in a scalar context, generates and returns only one
# such outcome as a scalar, regardless of the value of $n.
# Argument restrictions: $ne is rounded using int(), the result must be positive.
# $p must be between 0 and 1 exclusive.
# I tried different variable values but never got the right shape
my @dist = random_negative_binomial($n, $ne, $p);
我需要什么值来模仿R结果? 我需要X上相同的值范围和相同的一般形状
感谢您的帮助,我没有找到该软件包的插图示例
的Stephane
答案 0 :(得分:1)
我对统计数据知之甚少,但由于没有其他人出现:我会使用Perl数据语言PDL(我用于其他事情)并获取PDL :: Stats :: Distr模块。您可以在http://pdl-stats.sourceforge.net/Distr.htm找到与您的相似的示例。该模块包括pmf_binomial(质量函数)和mme_binomial(分布)。您还需要PGPLOT模块。
您需要一些随机数据:
$data = pdl 1..100000; ## generate linear 1 - 100000
$data = $data->random; ## make them random between 0..1