柿の種中毒治療日記

Kobe→Manila→Guangzhou & Hong Kong→Seoul

統計的感覚を生かす

久しぶりに巨大なデータを相手に分析作業。Universeが50万件を超えるものをどうやって管理するのか。システムの改善がすぐには出来ないので、当面の間検品作業によってアウトプットの質を確保し、リスクを少なくすることが求められているのだ。まずはどういう切り口でやっていくか考える。

  • 定性的な分析(各国のレギュレーションや過去の事例などなど)と過去の結果を元に国別の優先順位を設定
  • フェルミ推定でざっくりといくらの話をしているのかを見当をつけ、結果に対するSensitivityの高そうなところを洗い出し。
  • リスクレベルをざっくり算定するために国別のエラー率が必要。ただ全ての国のエラー率は手元にない。プロセス的には各国そこまで差がない『はず』なのでざっくりレベルでは一つの国で既に得たデータを使えると仮定。
  • エラー率が仮に各国で異なるとリスクレベル・優先順位に大きな影響を与える。実際問題本当に各国でプロセスに差がないのか・エラー率に差がないのか分からないので平行して測定しておくことにする。既にある一カ国の元に期待エラー率を設定し、国別にエラー率をはじき出すために必要なサンプルサイズを統計的な手法で求めた(属性サンプリング)。これでサンプリングをしてエラー率をはじき、かつそのサンプリングで見いだされたエラーの原因分析をして行く予定。なお、10000件の母数であろうが5000件の母数であろうが約200個のサンプルをとれば95% confidence levelで検定できるからエラー率をはじくだけなら莫大な母数に対してサンプル数はかなり少なくてすむ。サンプリングに必要な人工(にんく)もはじき出した。
  • サンプリングしただけでは歩留まりをすぐには上げられない。マンパワーで歩留まりをあげることが短期的課題なのだ。上記属性サンプリングのサンプル数より多い件数をチェックしないといけないけれど、パレートの法則を使えると仮定すると全数チェックしなければいけないというわけではないはずだ。各国の件数データ、Value @ Risk(金額データx予想エラー率で概算)を並べ、パレート分析をやってリスクを許容レベルに抑えながら作業量を最少化するポイントを探す。これに基づいて必要人工数を算定。

調べてみると見事にパレートの法則に従う分布パターンをみせ、Valueの高い順に上から20%をチェックすることで全体の9割のValueをカバーできることが分かった。これと定性分析による優先順位とを組み合わせていく。50万件の全数検品なんて現実的に不可能だけれども、こうやって絞って行くと数人雇えばチェックできるレベルまで落とし込める。大体の数字をおさえたところで、今度は行程分析に基づいてなにをチェックすればアウトプットの品質が保証されるかの分析。
こういう分析はしっかりやっておくに限る。人は固定費的な部分もあるから無駄に雇いたくはない。実際に人を雇って管理作業を始めると、いくらパレートの法則に基づいて検品数を絞り込んでいるといってもすごいエフォートがかかるから、デザインのミスで無駄な作業をやりましたなんてことは許されない。ここは完璧主義でやるにこしたことはないところだ。ところが面白いのはこういう分析手順を見た人からけっこうナンセンスなインプットが出てくることだ。

  • 属性サンプリングなんて信じられない。エラー率で業績が計られるんだから全数チェックしてエラー率を算定した方がいい。
  • 90%のValue @ Riskをこのプロセスで消し込めているというだけでは不十分だ。99.9%でもダメだ。歩留まりは100%にしろ。
  • なぜこんなに『複雑な』分析に時間を使うのか(実際たった半日だけど)。そんな細かい分析などせずに全数チェックしろ。

こんなんじゃあ頭を使うべきところで"80-20"や”ガッツ”の名の下に適当なことをやって、結果80-20でできるところを無駄な労力を割くはめになりかねない。人に求めてもどうなるわけでもないけれどさ。100-0でいくべきところと80-20でいくべきところをどうキッチリ見極められるか、意識的にやって行こう。
ぼくの統計の知識は超初歩の初歩で、しかもほぼ完全に忘却の彼方だったのだけれども、やっぱもうちょっとリテラシーとして復習しとくか。