予測の話
目次
1.予測は当たらない
2.なぜ予測するのか
3.当たる予測・当たらない予測
4.「良い」予測とは何か ~一般論としての~
5.「良い」予測とは何か ~あなたにとって~
6.知っとくと便利かもしれない統計用語
6-1.期待値・分散
6-2.2SDルール・2SEルール
6-3.信頼区間・予測区間
6-4.情報を捨てることは情報を得ること
1.予測は当たらない
『お客様から次のような質問を受けることがよくあります「需要予測って当たるんですか?」その時我々は笑顔で次のように答えます。「もちろん当たりませんよ。」』
すごい会話ですよね。でも、これは真実で、予測は当たりません。私はまだ数年しか予測の研究をしてないんですが、それでも「あぁ、予測って当たらないものな んだな」という実感を持つに至っています。いろんな論文や研究成果報告書のようなものを読んでいると、3回のうち2回当たったから精度が高いとか平気で書かれています。
予測は当たりません。
それでも、予測を作っている人、予測の研究している人、予測をビジネスにしている人は「予測は役に立つ」と口をそろえて主張します(もちろん私も)。
なぜでしょうか。
2.なぜ予測するのか
予測とは「将来」のことを気にして出すものではありません。
予測とは「現在」私たちがどのように行動すべきかの指針を与えるためのものです。
ですから、極論を言えば、「将来」の予測はすべてはずれでも構いません。そのはずれ予測を使って「現在」最適な行動をとることができるのであるならば。
逆に言うと、完璧にあたる予測であっても、現在、この時間にいる私たちの行動を良い方向に変化させることがないのであれば、そんな予測に価値などありません。
このことを、もうちょっと具体的に説明します。
3.当たる予測・当たらない予測
先ほど予測は当たらないと書きました。けれども、100%当たる予測を出すことは意外と簡単です。
絶対当たる天気予報を出してみます。
「明日の天気は、雨が降るか降らないかのどちらかでしょう」
この世界には、「雨が降る」か「雨が降らない」かのどちらかしか存在しません(曇りでも雨は降ってない)。
だから、こういっておけば、的中率100%は簡単に達成できます。
当然、こんな予測を出されても何の役にも立ちません。予測が当たる、当たらない、ということと、予測が役に立つ、役に立たない、ということは別モノなんですね。
こんなバカな予測を出す人は少ないでしょうが、似たような話はほかにもあります。
たとえばアメリカのロサンゼルスで「明日は晴れでしょう」といい続ければ、的中率は98%になるそうです(文献2)。下手に難しい計算をするよりも、テキトーに「明日は晴れだよ」といってたほうが的中率が高くなるんですね。
水産にも似たような話があります(文献3)。ブリって定置網に入ってくるんですが、これは一年のうちほんの短い時期しか網に入らないそうです。だから一年365日ずっと「ブリなんか来ねーよ」といい続けていれば的中率は飛躍的に高くなります。
逆に、たとえ外れても役に立つ予測もあります。
なぞなぞです。予測をやってる人は一瞬で解けます。
『的中率60%の占い師と、的中率30%の占い師がいました。くじが二つあります。片方が当たり、もう片方がはずれです。あなたはどちらの占い師に占ってもらいますか?』
わかりますよね。的中率30%の占い師に占ってもらって、その占い師が選んだものと別のくじを引けばいいんです。そうしたら70%の確率で当たる。
これはちょっとやりすぎかもしれませんが、少なくと も「どーせ明日は晴れる」といい続けて的中率98%を出す予測より、外れるかもしれないという危険を冒しつつ「明日こそは雨だよ!気を付けてね!ちゃんと 傘持っていくんだよ!」って言ってくれる予測のほうが役に立つのは間違いありません。
でも、的中率が悪ければ悪いほうが良いっていうわけでもありませんよね。
よい予測ってなんでしょうか。
4.「良い」予測とは何か ~一般論としての~
情報理論を用いた一般的なる予測能力の定義に関する研究論文が(主に気象予報関連の論文に)あるにはあります。本気で書くと一冊の本になっちゃうくらいなので、ほんのちょっとだけ解説します。知っていると少しだけ、モノの見方が変わるかもしれませ ん。
「明日の天気は、雨が降るか降らないかのどちらかでしょう」という予測が役に立たないことから、もともと不確実性が存在しない(少ない)場合に予測を出しても、価値は生まれないことがわかります。
事実を知るだけでは情報として不十分。「今までわからなかったこと」がわかった時に、それを初めて情報と呼ぶのです。
「今予測しようとしているモノは、将来何が起こるかわからないと考えてよいか」ということを常に意識していなければなりません。将来どうなるかがわかりきっている 場合には予測をしても無駄。もちろん、何をどうやっても将来のことは1ミリもわからないということであっても、予測は無駄です。その中間に位置する事象を予測することに価値がある。というのが一つの考え方です。
例の「予測なんて当たりませんよ」と書いていた本(文献1)には、「なくすことのできない誤差」はあきらめて「なくすことができる誤差」を小さくしようと 書かれてありました。大概の予測本にはこういうことが書かれてあります。けれども、これはちょっと飛躍した意見だなと私は感じます。
極めて重要な問題であると私が思うのが、無くせる誤差となくせない誤差の両方があるというこの事実です。
将来どうなるかがわかりきっている場合には予測をしても無駄。もちろん、何をどうやっても将来のことは1ミリもわからないということであっても、予測は無駄です。「無くせる誤差となくせない誤差の両方がある」ということが前提で、そのうえでなくせる誤差を減らしていくのが予測ってものです。
予測をすることに価値をみいだすことができない場合は十分にあり得ます。「なくすことができる誤差」をなくせたかどうかというだけでなく「なくすことができる誤差」がどれくらいあるか、も非常に重要だということです。この点は、絶対当たるけれども役に立たない予測を排除する意味でも、気を付けないといけない点ではないかなと思います。
ビッグデータを使おうが、最新式の予測アルゴリズムを使おうが、すべて無駄。予測することにそもそも「意味」を見出すことができないものがこの世界に(多分たくさん)存在するというこの事実は、なんだか示唆的ですね。
他には、先ほどのものとちょっと似ているかもしれませんが、こういう考えもあります。日本全国雨が降る確率はだいたい17%なんだそうです。だから降水確率17%といい続けていたら一応「正しい」予測を していることになります。でもこんな予測も役に立ちません。ここは勢いよく確率100%で雨が降るって予測したいところ。すなわち「今までとは違う将来」になるということを予測できた時のほうが良い予測になるという考え方です。
いろいろ書いてみましたが、どんな場合にでもあてはまる「一般的なる良い予測」を定義するのは一筋縄ではいかなさそうですね。ですが、ちょっと盲点になってしまう、もっと簡単で明瞭な「良い予測・悪い予測の見分け方」があります。
5.「良い」予測とは何か ~あなたにとっての~
良い予測とは何か、それは「人による」と考えるとすごく楽です。
予測は先ほど書いたように、現在私たちがどのように行動すべきかの指針を与えるためのものです。
私はこんな風に考えています。
予測 × 意思決定 = 価値
予測の精度を高めることだけでなく、その予測をどのように使うか、ということによっても予測の持つ価値は大きく変わります。
精度が高いというだけでなく、使いやすい(予測を用いて「何をするか」という「意思決定」がしやすい)という点も重要なのでしょう。ここら辺は気象予報の分野で研究が進んでいるような気がします(たとえば文献2がすごくわかりやすい)。
この考えを使って具体的にどうやって予測の良さを見積もるか、というのは簡単です。
実際に予測を使ってみるんですね。あるいは予測を使った時の成果をシミュレーションする。で、予測を使わなかった時と比べてどれだけ得できたかを見積もればよいわけです。
これが一番簡単で実用的な「良さ」の測定方法かもしれません。とはいえ、ユーザーを指定しなければそもそも良い予測かどうかが判別できないという欠点はあります。情報理論を使ったやり方と併用する方法が(個人的には)ベストだと思っています。
結論を書きます。
予測は当たりません。でも、予測には価値があります。それは予測をうまく「使う」ことによってもたらされるものです。
予測ユーザーは今ある予測をよりうまく活用すべきですし、予測を出す人が最初から「予測の使い方」を提示するのも重要じゃないのかなと思います。
ただし、予測の精度もどうでもいいってわけではありません。よく当たるならそれだけ意思決定(たとえば傘を持っていくかどうか、とか)が楽になります。予測を 作る側は予測の精度を高めることを目標にして、予測を使う側(あるいは作る人と使う人の間に入る説明役の人)は予測の使い方に注意を向けるのが筋なんでしょう。
6.知っとくと便利かもしれない統計用語
統計の理論について長々書くことは控えます。素晴らしい書籍やサイトが他にたくさんあるので。予測に良く使われる用語だけをごく簡単にまとめてみました。
このサイトにはいろいろな統計的予測の理論や方法を載せています。ですが、そもそも統計的な予測ってなんなんでしょうか。
統計的な予測は、「平均値(期待値)」を予測することが多いです(すべてではありませんが)。
「ビールの売り上げは気温によって変化するだろう。気温が25度の時のビールの売り上げはいくらだろうか」ということを考えた場合、統計的な予測とはたとえば「25度の時のビールの売り上げを100回くらい記録して、その時の平均値を予測値とする」というようなものになります。
なんだかとっても地味ですが、でもわかりやすくてかつ説得力もありますよね。
もちろん「2013年6月24日の気温25度の時の○○町△△店における売り上げ」をドンピシャで当てるなんてことはできません。でも、平均的には大体 これくらいになるよ、というこ とが予測できれば、それはそれで結構なことでしょう。
しかし、この問題には欠点があります。気温25度の時のデータがたくさん必要になってきてしまうんですね。新しく開店したばかりのお店なんかではピンチ です。
もちろんデータ数は多ければ多いほうがよいのですが、ちょっと少なめのデータ数でも何とか予測をするための手法が、たとえば回帰分析になるのでしょう。
統計的予測手法と聞くとなんだかすごそうな気がしてしまうんですが、基本的な考えはこういうところにあるんじゃないのかなと思っています。
6-1.期待値・分散
期待値とは、 「確率×その時の値」の合計 で求まる物です。コインを投げて表なら1、裏なら0だとすると、期待値は 1/2×1 + 1/2×0 = 1/2 と言うことになります。
一方の分散ですが、実際のデータが期待値からどれだけ離れているかを表すことができます。さっきのコインの例では期待値1/2でした。ここで、 表なら 10 裏なら-9 という風に仮定しても期待値は1/2ですが、こちらの方がばらつき(変化の度合い)は大きそうです。で、このばらつきを表すのが分散という訳です。
期待値を予測するのだとしたら、その予測値がどれだけ不確かかを評価するのが分散といえると思います。
6-2.2SDルール・2SEルール
SDとは標準偏差。SEとは標準誤差の意味です。
『正規分布する変数が平均値から正負を問わずに2標準偏差内にある確率は95%である』
イアン・エアーズ:その数学が戦略を決める、第8章 直感 と専門性の未来 p327 より引用
同書において紹介されているのが2SDルール。標準偏差とは分散の平方根なのですが、細かい話は置いといて、便利な基準です。(正規分布という言葉はとりあえずスルーしておきます)
標準偏差とはばらつきの指標です。ばらつきが大きいほど、期待値は信用し難い(期待値で10万円もらえる賭けがあったとします。けれども90万円損する か100万円得するかという大ばくちだった時、期待値10万円と言う数字はかすんでしまいます)。
で、平均値±2SDの範囲内(厳密には2では無くて1.96くらいになる)に95%が内包されているとしたら、そ の予測の「役に立つ度 合い」が分かろうと言うものです。この95%区間(要するに平均値±2SD区間)が余りにも広ければ、その時の期待値もそれほど役 には立た なさそうだということになるわけです。
回帰分析などで予測された結果も同じです。平均を予測するだけでなくSD(標準偏差)も考慮して、「温度が25度の時ビールの売 り上げが100万円以下になることはめったにない」という結論が得られた方がリスク管理には大変有用です。
とりあえず計算しておしまい、ではなくって、予報結果をどのように使いたいかを考えながら予報を出すのが肝心です。
つぎは2SEルールについて説明します。
SEとは標準誤差の略です。2SEルールは私の造語なのですが、考え方は大体似てます。ただし、こちらは扱う対象が少し違います。
2SEルールをイアン・エアーズ風に書くとこうなります。
『正規分布する変数のサンプル平均が真の平均値から正負を問わずに2標準誤差内にある確率は95%である』
変数の”平均値”の範囲を見たいときには2SEルールを使うことになります。
ちなみにSE(標準誤差)とSD(標準偏差)には次の関係があります。
SD÷サンプル数の平方根=SE
サンプル数が100ならば、SEはSDより10倍小さな値になります。当たり前ですが「データのばらつき」よりも「データの平均値のばらつき」の方が小さくなります。
●例
エレベーターが耐えられる重量を何kgにしようかで迷っています。
・そのエレベータは9人乗りです。
・日本人の平均体重は60kgで、SD=10 とします
エレベータに9人が乗り込んだ時、9人の合計体重は95%の確率で何kgから何kgの範囲に収まるでしょうか?
●答え
× 一人ひとりの体重の95%区間は2SD区間より 60±20なので、40×9~80×9
よって、360kg~720kg
↑これは誤りです。なぜならば、9人もエレベータに乗るのだから、重い人も軽い人も皆乗り込んで来ると考えなければならないか らです。重い人と軽い人で相殺されるはずだから、もっと範囲は狭くてよいということになります。
ここで2SEルールが登場します。
○ 9人の平均体重の95%区間は2SE区間より 60±20÷3=60±6.7 なので
53.3×9~66.7×9の範囲内
よって479.7kg~600.3kg
↑こちらが正解。9人乗りこむのでサンプル数は9。その平方根で3。SEはSD÷3=3.33と求まりま す。で2SEルールを適用して±6.7になるというわけ。
だいぶ予測範囲が狭くなりました。この差はエレベータを作る際にとても重大な差になってきそうです。
単純なルールですが、知ってると便利です。
6-3.信頼区間・予測区間
SD・SEルールに似たようなもので、信頼区間と予測区間というものがあります。これは、予測とは何らかのモデルを組み立ててから 将来を当てるわけですが、その時、
信頼区間 : モデルの信頼幅 ⇒ 2SEルールと同じような感じ
予測区間 : 予測されるデータのとりうる幅 ⇒ 2SDルールと同じような感じ
ということになります。厳密にはちょっと違うのですが、こう覚えとくと分かりやすいかなと思います
平均値を予測したんだけど、その予測された平均値がどれだけ確からしいかを表すのが信頼区間。たとえ平均値を精度良く推定できたとしても、実際のデータ (売り上げとか)は平均値ぴったりにはなっていないはず、ということで実データのばらつきも加味したのが予測区間です。だから、どれだけ一所懸命たくさん のデータを集めて予測したとしても、予測区間は広いままだったりします(信頼区間はデータが増えれば小さくなります)。先のエレベータの例は直接は当てはまらないので注意してください。
ここら辺の話は「単回帰分析」で例を挙げて触れています。
6-4.情報を捨てることは情報を得ること
取捨選択という言葉は同義反復だと思います。捨てること=取ることですから。
温度からビールの売り上げを予測する、なんてのよりも、温度と天気と株価と人口密度と配ったチラシの枚数からビールの売り上げを予測したほうが予測精度は高くなりそうです。
このついでに、我が家の猫の体重データも入れてみましょう。猫がダイエットしたらビールの売り上げが下がるという結果が出ました。
でましたが、この結果を信じる人はいないと思います。猫の体重とビールの売り上げが関係しているなんてことはありえないので。
こんなバカなことする人はいないって思われるかもしれませんが、結構よくやられています。
今回は『猫の体重とビールの売り上げが関係しているなんてことはありえない』と、さくっとわかってしまいましたが、ふつうはこんなことわかりません。関係しているのか関係していないのか怪しいなと思うデータだけを使って解析するはずです。温度と湿度を両方入れて予測モデルを組んだとき、湿度のデータはかならず必要だと断言できるか、という問題ですね。
で、本当は全然関係ないデータも使ってしまうということも十分考えられます。
この場合、モデルを作った当人が「多くのデータを使って複雑なモデルを作ったから良いモデルができた」と勘違いしているだけで、猫の体重を入れたときと同じ過ちを実は犯しているわけです。いらないデータを削除して、より簡単なモデルを作ることで、予測精度が上がることはよくあることなんですね。
これはよくないですよね。そこで、「いらないデータは切る」という作業が必要になってきます。これが変数選択です。
「このデータは予測の役に立たない」とわかれば、逆に「それ以外は予測に役立つ大事なデータだ」ということももちろんわかります。これにより新たな知見が得られるかもしれません。
統計モデルを使っていらない変数をちょん切るのは「変数選択」という作業をつかって実装することができます。Rを使えば簡単にできます。
これについては
・モデル選択_理論編 (変数選択のしくみの説明)
・モデル選択_実践編 (変数選択の実践)
・重回帰分析 (変数選択の実践)
などで説明しています。
このサイトでは統計解析ができるフリーソフト「R」を用いたいろいろな予測手法について解説しています。個別のページに載っている解説を読んだ際に、ここに載っている内容をちょっと頭の片隅においておいていただけると幸いです。
記載している内容やプログラムに関しては細心の注意を払って確認しておりますが、誤りのある可能性も否定できません。自己責任でお使 いください。
誤りのご指摘やご意見、ご質問等ございましたら、掲示板やメールにてご一報ください。
参考文献
文献1 淺田 克暢, 岩崎 哲也, 青山 行宏:在庫管理のための需要予測入門
文献2 立平良三:気象予報による意思決定
文献3 土井長之:漁況予報の理論と方法
文献4 イアン・エアーズ:その数学が戦略を決める
初心者にもわかりやすく説明してもらいましてありがとうございます。RだけではなくPYTHONもあればいいなー。頑張ってPYTHONで書いてみます。
okada様
コメントありがとうございます。
管理人の馬場です。
返信が遅れて失礼いたしました。
Pythonコードもこれからは増やしていこうと思います。
今後ともよろしくお願いいたします。
はじめまして。
以前、他人様のブログではありますが、ニセ科学によるビジネスを批判した文章を書いたことがあるBD3と申します。
「高度なニセ科学の数々の手口に当てはまる村井俊治氏の地震予測ビジネス手法」
https://blog.goo.ne.jp/geophysics_lab/e/9fc1330be58fde4f505f91b99ac23623
この度、こちらを拝見し
「予測 × 意思決定 = 価値」
という馬場様の説明になるほど、と膝を打ちました。
ニセ科学を弄した自称地震予知/予測の専門家が誇る「80某%の驚異の的中率」のトリックの正体は、地震予測の三要素:
・いつ
・どこで
・どんな規模
を、地震多発国日本なら外れようのないくらい緩々に拡げている点にあります。
彼らが発信する
「注意を怠らないようにして下さい」
「要警戒」
「要注意」
「要注視」
とする「当たって当然の予測」には、「地震防災の意識が高い系の人」の気分をなんとなく高める効果こそあれ、「地震防災の意識が高い人」の意思決定には一切役に立ちません。
冒頭に引用させていただいた一行は、この真理を最もシンプルに表現する美しい数式だと感銘いたしました。
的中率のカラクリを暴く続編の作成にあたり、これを平易に説明する導入部を構想していたところ、馬場様のこの記事に辿り着きました。前半部は、計算式なしに具体例で紹介されているため、一般の方々にもわかりやすいですね。
もし馬場様の許可を頂けるようでしたら、上記記事の続編に、このページのURLをそっくりそのまま紹介させていただきたく希望する次第ですが、いかがでしょうか。
ご検討のほど、よろしくお願い申し上げます。
BD3様
コメントありがとうございます。
管理人の馬場です。
返信が遅れて失礼いたしました。
2点申し上げます。
1つが一般論としての引用およびWebサイトのリンクの考え方です。
2つ目がBD3様の記事に対する当方の個別の意見となります。
一般論として、著作物の「引用」を拒否することはございません。
(あくまでも引用の範囲内での話です。全文書き写しなどは不可です)
ブログのリンクを張ることに関しても同様です。
続いて、今回のBD3様の書きたい記事に関してです。
当ブログでは、基本的に、特定の個人や組織を批判する意図のある文章を書きません。
(批判をすることの是非についての言及ではなく、
あくまでも、当方と当ブログでの方針であることに留意してください)
そのため、BD3様が書こうと思われている記事を、
当ブログが積極的に支援・支持することはございません。
現在の地震予知には、問題が多々あると当方も思います。
BD3様のご指摘に、合意できる点もあります。
しかしながら、あたらしい概念について解説をする際に、
特定の個人や組織を批判する必要性はないと(当方は)考える次第です。
お気を悪くされたならば恐縮ですが、
上記の点をご留意いただけますと幸いです。
馬場様
この度は、お忙しい中をご丁寧な返信を賜り、ありがとうございました
返信をいただいていることに気づくのが遅くなり、大変失礼いたしました。
公正中立であること、という前提の上にさらにきめ細やかな配慮をされる
馬場様のスタンスに感銘を受けました。お言葉を肝に銘じて精進いたします。
今後、さまざまな分野におかれまして、さらなるご活躍をお祈り申し上げる次第です。
BD3