scipy.stats.bayes_mvs という関数があり、example を参考に試しに動かしてみました。
結果を記載します。


scipy.stats.bayes_mvs を実行する

Example を参考に関数を実行してみます。
3つの結果は、それぞれ平均 (mean)、分散 (var)、標準偏差 (std) になります。
data の値は 番号カードのみトランプ をイメージして設定しています。

from scipy import stats
data = [1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10]
mean, var, std = stats.bayes_mvs(data)
mean

Mean(statistic=5.5, minmax=(4.7250701539033066, 6.2749298460966934))

from scipy import stats
data = [1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10]
mean, var, std = stats.bayes_mvs(data)
var

Variance(statistic=8.9189189189189193, minmax=(6.0470318612919201, 12.842770429573273))

from scipy import stats
data = [1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10]
mean, var, std = stats.bayes_mvs(data)
std

Std_dev(statistic=2.9663476127494768, minmax=(2.4590713412367524, 3.5836811283334447))

alpha を指定して、scipy.stats.bayes_mvs を実行する

alphaを指定すると信頼区間が変更できます。デフォルトは0.9なっています。
alpha に0.95指定して実行してみます。

from scipy import stats
data = [1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10]
mean, var, std = stats.bayes_mvs(data,alpha=0.95)
std

Std_dev(statistic=2.9663476127494768, minmax=(2.3828348539854809, 3.7350953604573713))

若干、上限と下限の範囲が広がります。


ベイズ信頼区間とは

ベイズ信頼区間で検索すると、確信区間、信用区間という用語がヒットします。

信用区間の英訳は、Credible interval scipy のドキュメント上は、confidence intervals記載されていてあくまで別物かもしれません。
scipy のドキュメントには以下の論文がリンクされており、一応読んでみたものの、私には違いがよくわかりませんでした。


参考

以下、記事作成中に参考にしました。

以上です。

コメント