Chainer Meetup #09 でLT:チョコボール数の傾向を分析
【概要】
- 3/30に開催のChainer Meetupに参加してきました
- ただ参加するだけではつまらないので、LTしてきました
- 本記事ではLTの概要と資料をまとめます
【目次】
はじめに
今回で2回目の参加となりましたChainer Meetupですが、今回もとても興味深い話が聞けて良かったです。 Chainerの中の人の開発情報が聴けるというのはもちろん良かったのですが、 nVidiaの中の人の講演が今回もとても興味深かったです。 前回もパフォーマンスチューニングについてとても興味深く聞いていましたが、今回は自分でも取り組めそうな話で希望が持てました。 資料はconnpassのイベントページに公開されているので、興味ある方はご覧になられたらと思います。
本記事ですが、 前回に引き続き今回もLTをさせてもらったので、 どのような話をしたのか概要をまとめておくものです。
資料
当日使用した資料は以下です。
LT概要
今回のLTでは、チョコボールの個数を分析した話をしました。
チョコボール(ピーナッツ味)は、内容量が28gと定められています*1。 内容量(重量)が定められているのですが、 ピーナッツは自然のものであるため大きさや重さを厳密に一定にすることはできません*2。 そのため、一箱に入っているチョコボールの個数は箱ごとに異なります。
一方、せっかくチョコボールを買うなら美味しいものを食べたいのですが、 小さかったり形がいびつなチョコボールは味もいまいちな印象です(個人的な感想であり品質を保証するものではありません)。
そこで、チョコボールの粒が大きく揃っているものを購入するにはどのようにすれば良いのかについて、 個数の傾向から考察してみたという話です。
データと分析アプローチ
データ収集効率化の取り組み
(詳しくは上記の資料を参照ください)
個数の傾向を分析するには、各商品に個数がいくつ入っていたのかを計測し、 データを利用できる形に整理することが必要です。 しかし、一つ一つ数えるのはなかなかの手間です*3。
そこで、Faster R-CNNを使ってチョコボールを検出するWebサービスを開発しました。 これで、写真を撮るだけで個数が自動で計測できます! (ここまでは、前回のLTでお話ししたところです)
しかしながら実際のところ、 このシステムは計測の場面ではまだ実運用できておらず、 手で数えています*4。 ChainerのイベントでChainerについて一切触れないのはマズかろうということで(大人の事情)。
実験に利用したデータの概要
ということで手で数えて収集したデータですが、2017年11月から2019年3月まででピーナッツ味373箱分のデータを利用します。
このデータを賞味期限が同じチョコボールをひとまとめにして、個数の分布(箱ひげ図)を確認してみてみます。 なお、チョコボールには製造年月日の記載が無く、賞味期限が月単位で表示されています。 そのため、賞味期限が同じであれば、同じ時期に製造されたものであると仮定して、データを分析します。
上記の図からわかるように、2018年の8~10月の個数が少ないように見えますね。 また、2019年の8~10月もデータ数が少し少ないですが、同様に個数が少ないように見える気がします。
そのため今回は、賞味期限が8~10月の個数が他の期間と比べて有意に数が少ないのかを確認してみます。 この期間の数が少ないことが統計的に確認できたならば、 賞味期限が8~10月のチョコボールを狙って購入することで、粒の大きいチョコボールを手に入れられる可能性が高まる と期待できます。
他にも分析する軸は考えられますが、今回は時期による個数の変化にだけ注目します。
モデル
個数の傾向を分析するに当たって、下記の統計モデルを設定しました*5。
一箱に入っているチョコボールの個数yは、ポアソン分布に従う確率変数と考えます。
ポアソン分布のパラメータ
は各月
の平均個数を示すパラメータであり、
ガンマ分布
を事前分布とします。
ガンマ分布のパラメータ
は任意に設定するのではなく、
それぞれ階層事前分布を設定してデータから推定させることにします。
ガンマ分布のパラメータ
は、
平均
と標準偏差
を示すパラメータを使って以下のように算出されます。
今回は、8~10月の期間のデータから推定した事前分布()と、
その他の期間のデータから推定した事前分布(
)を比較し、
統計的に差があるのかを確認します。
結果
上記のモデルを使い、パラメータを推定しました。
パラメータは、MCMCアルゴリズム(NUTS)を利用して数値的に推定しました。
推定した二つのガンマ分布は以下のようなものです。
95%信用区間で分布の平均に差があるのかを確認するために、 平均のパラメータの事後分布の差の分布を以下に示します。
ということで、二つの分布に差がないことを示す0の位置が90%信用区間から外れているため、 二つの分布の平均には差があるであろうということがわかりました。
その差は、約1.3個。
以上の結果、賞味期限が8~10月のチョコボールは個数が少ないということがわかりました。
資料p.22にポアソン分布の各月のパラメータの事後分布を載せていますが、
2018年だけでなく、2019年の8~10月も同様に個数は少ないと言えそうです。
そのため、賞味期限が8~10月のチョコボールを狙って買えば、粒の大きいチョコボールを手に入れられそうです!
終わりに
ということでチョコボールの個数の傾向を分析し、 特定の月の個数に差がありそうだということまではわかりました。
しかし、今回は8~10月を予め切り分けてパラメータを推定したので、
8~10月だけが少ないのかはわからないです。
データから変化点を合わせて推定させることが必要と考えています*6。
(実は、変化点を推定する実験を最初にやってみたのですが、推定結果が安定せずでして、プログラム上に問題があるのか、モデルがまずいのか検討中の状態です。。。)
また、チョコボールの大きさが大きくて粒が揃っているというのは、 個数だけで特徴付けられるのかについて、はっきりとした確証はありません。 そのため、大きさのばらつきについても今後調査していきたいと考えています。
参考文献
データ解析のための統計モデリング入門
一般化線形モデルを軸に階層ベイズモデルまで丁寧に記載されている。 Rとstanを利用した実装例もあるが、実装部分は無視しても理解できる。データ解析のための統計モデリング入門――一般化線形モデル・階層ベイズモデル・MCMC (確率と情報の科学)
- 作者: 久保拓弥
- 出版社/メーカー: 岩波書店
- 発売日: 2012/05/19
- メディア: 単行本
- 購入: 16人 クリック: 163回
- この商品を含むブログ (29件) を見る
- pymc3を使った入門書。 理論面も多少書かれており、こちらで手を動かしながら学習するのが良いと思う。
Pythonによるベイズ統計モデリング: PyMCでのデータ分析実践ガイド
- 作者: オズワルドマーティン,Osvaldo Martin,金子武久
- 出版社/メーカー: 共立出版
- 発売日: 2018/06/22
- メディア: 単行本
- この商品を含むブログを見る
- pymcを利用した事例ベースの参考書。 事例が豊富で参考になるシーンは出てくるかもしれないが、階層モデルについては記載がない。 また、pymc2なので、pymc3と記法が少し違うので注意。
Pythonで体験するベイズ推論 PyMCによるMCMC入門
- 作者: キャメロンデビッドソン=ピロン,玉木徹
- 出版社/メーカー: 森北出版
- 発売日: 2017/04/06
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
広告
Amazonの欲しいものリスト作ってみました。
チョコボールのカンパ募集中です。
チョコボールをカンパする

- 出版社/メーカー: 森永製菓
- 発売日: 2016/03/01
- メディア: 食品&飲料
- この商品を含むブログを見る

SIMERST 改良版 携帯タイプはかり ポケットデジタルスケール(秤) 0.001g-100g精密 業務用(プロ用) デジタルスケール 電子天秤
- 出版社/メーカー: Simerst
- メディア:
- この商品を含むブログを見る
*1:設定値は28gですが、実際の重量傾向についてはこちらの記事を参照ください
*2:製造時のばらつきがあるため、どの味でも厳密に大きさを一定にすることはできません
*3:資料p.5の画像から16個だってすぐにはわからないですよね
*4:正直、手で数えた方が速い。僕の作りが悪いので改良していきます
*5:このモデルは階層ベイズモデルと呼ばれています。データ解析のための統計モデリング入門やPythonによるベイズ統計モデリングが参考になると思います。
*6:変化点検知については、Pythonで体験するベイズ推論に記載があります。