I,已应答,a,问题,关于用NumPy中的伽马分布生成具有正支持度和已知均值和方差的样本。我想我也会在领队上尝试同样的方法。但与我和NumPy取得的结果不同的是,我无法得到接近分布均值和方差的样本均值和方差。
(defproject incanter-repl "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.6.0"]
[incanter "1.5.4"]])(require '[incanter
[core]
[distributions :refer [gamma-distribution mean variance draw]]
[stats :as stats]])
(def dist
(let [mean 0.71
variance 2.89
theta (/ variance mean)
k (/ mean theta) ]
(gamma-distribution k theta)))计算分布的均值和方差。
(mean dist) ;=> 0.71
(variance dist) ;=> 2.89我根据从该分布中提取的数据来计算样本的均值和方差。
(def samples (repeatedly 10000 #(draw dist)))
(stats/mean samples) ;=> 0.04595208774029654
(stats/variance samples) ;=> 0.01223348345651905我预计在样本上计算的这些统计数据将更接近分布的均值和方差。我遗漏了什么?
回答
Incanter从并行Colt继承了一个bug。在并行Colt中,参数的处理是不一致的。参见问题报告https://github.com/incanter/incanter/issues/245。
发布于 2014-04-19 09:27:03
与以形状(k)和尺度(θ)为参数的numpy.random.gamma相反,gamma-distribution以形状(k)和速率(1/θ)为参数。见(doc gamma-distribution)和分布
因此,要获得所需的结果,可以将dist定义为
(def dist
(let [mean 0.71
variance 2.89
r (/ mean variance)
k (* mean r) ]
(gamma-distribution k r)))然后是一个样本结果。
(def samples (repeatedly 10000 #(draw dist)))
#'incanter-test.core/samples
incanter-test.core=> (stats/mean samples)
0.7163908381930312
incanter-test.core=> (stats/variance samples)
2.940867216122528https://stackoverflow.com/questions/23166883
复制相似问题