gpt4 book ai didi

clojure - Incanter 样本均值和方差不接近分布均值和方差

转载 作者:行者123 更新时间:2023-12-01 01:01:17 26 4
gpt4 key购买 nike

answered a question 关于使用 NumPy 中的 Gamma 分布生成具有正支持和已知均值和方差的样本。我想我会在 Incanter 中尝试同样的方法。但与 results I got with 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)))

Incanter 计算分布的均值和方差
(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 有一个从 Parallel Colt 继承的 错误 。 Parallel Colt 中不同方法对参数的处理不一致。请参阅问题报告 https://github.com/incanter/incanter/issues/245

最佳答案

numpy.random.gamma相反它以形状 (k) 和尺度 (theta) 作为参数,
clojures gamma-distribution以形状 (k) 和速率 (1/theta) 作为参数。
(doc gamma-distribution)http://en.wikipedia.org/wiki/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.940867216122528

关于clojure - Incanter 样本均值和方差不接近分布均值和方差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23166883/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com