ガウス分布の平均と精度パラメータの推論は、共役事前分布であるガウス・ガンマ分布を利用することで解析的に求めることができます。ここでは、MCMCアルゴリズムを利用した近似解を求めます。解析解については、「ベイズ推論による機械学習入門」などを参照ください。MCMCアルゴリズムについては、「PRML(下)」などを参照ください。MCMCアルゴリズムを利用した推論の実装については、今回はPyMC3というフレームワークを利用します。PyMC3については、公式ドキュメントや「Pythonによるベイズ統計モデリング」などを参照ください。今回実装したコード全体は「実装コード」にnotebookを貼っているので参照ください。重要なところは以下の部分です。これで上述のモデルを定義しています。事前分布はパッケージ記載の内容量である28gを平均値としたガウス分布です。observed=data.net_weight.values)このようにモデルを定義すれば、あとはMCMCアルゴリズムを利用して事後分布からサンプリングをします。PyMC3では以下のように書きます。chains=4)サンプルは5,000点で、このサンプルを4セット繰り返します*5。推論結果は次のようになりました。サンプル点の傾向.上段が平均パラメータ、下段が精度パラメータ.左がサンプルのヒストグラム(KDE),右がサンプル系列のプロット.右のヒストグラムを見ると4セットのサンプルがほぼ重なっています。右のサンプル系列のプロットを見ると、トレンドのないランダムなサンプルのように見えます。いうことで、求めたい事後分布からサンプルを得られていると見て良さそうです。事後分布の推論結果は以下のとおりです。平均パラメータの推論結果.青の分布が2020年1月より前のデータ群,オレンジの分布が2020年1月以降のデータ群.赤線が仕様上の内容量.この結果から、明らかに平均値が下がったことがわかります。どのくらい下がったのかについては以下の分布となります。2つのデータ群の平均値の差の分布.横軸は2群の差の重量(g).ということで、2020年1月以降の商品はそれ以前の商品と比較して0.6g~0.75g程度軽くなっているという推論結果となりました。【トップに戻る】おわりに以上の推論結果より、2020年以降が賞味期限の商品の平均重量が下がったことはデータとしてほぼ確信できるということがわかりました。パッケージ記載の内容量に近い商品が多くなったということです(内容量を下回る商品は確認されていません)。公表されている内容量に実際の量が近づいている、また、精度も向上(分散が低下)していることから、製造装置の精度が向上し、余分なマージンを取らなくても良くなったということが考えられます。2019年までの内容量傾向を見ると歪んだ正規分布状です。これは、29gくらいの量でしきい値を設定し、下回る商品は出荷しないとしているように見えます。2020年以降の商品は、平均値が下がっていることから、単純にしきい値を変えただけではないことは明らかです。分散が低くなっていることからも、製造ラインに何らかの変化が起きたことは明らかであろうと考えています。何が起きているのかの真相は不明ではありますが、データからこのような事情を推察するのは楽しいものですね。検証が甘い点がいくつかあります。次回以降、これらの点について検証を進めていこうと思います。単行本pymc3を使った入門書。理論面も多少書かれており、こちらで手を動かしながら学習するのが良いと思う。広告Amazonの欲しいものリスト作りました。チョコボールのカンパ募集中です。週間)おもちゃのカンヅメ欲しい内容に間違いや気づいたことがありましたら、お気軽にツッコミお願いします。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。