【書評】意思決定分析と予測の活用 基礎理論からPython実装まで
本記事について
著者の「Logics of Blue」馬場さんより、2021/02/25発売の「意思決定分析と予測の活用 基礎理論からPython実装まで」をご恵送いただきました。ありがとうございます!
経営工学やオペレーションズ・リサーチが専門の同僚がいるのですが、畑違いのためどういう専門領域なのかわかっておらず、理解したいなと思っていたところでした。本書の内容はまさにこれらの領域や、システム工学、決定科学などの領域で活用されるようです(本書p4より)。
初学者として拝読しましたが、非常に面白かったです。本書で取り上げられている例の一つに、「ベネフィットとコストを勘案すると、機械を何台稼働させればいいか」という意思決定問題があります。僕だったら漠然と「うーん、とりあえず、3台くらい動かしてみてから考えよっか」と決めたくなってしまいます。
でも好況不況や、それぞれの機械のランニングコスト、社会的需要などについての情報があれば、ある基準を最適化するような予測が導ける、ということが本書で解説されています。
考えてみればそりゃあそうで、僕自身の日常生活では意思決定のミスが起こっても、そこで生まれる金銭的損失はそんなに大きくありません。うっかり終電を逃してしまって、仕方ないからタクシー使うか、てへへ、くらいのもんです。
でも金融とか経営とか、動くお金が膨大になるような場面では、ほんの小さな選択肢の違いが、とんでもない利得/損失の違いに帰結することもありえますよね。そういった場面では感覚的に意思決定するわけにはいかないので、手元にある情報から計算して、ある基準を最適化する予測を導く必要があるということだと理解しました。
【追記】
「予測を導く」っていうのは、本書の内容を表す正確な表現じゃなかったかもしれません。色んな予測結果が得られているうえで、予測結果をどう活用するか、ということが本書の焦点のようです。
以下、簡単な書評です。
本書の特長
1. 簡単な事例で、豊富な理論を紹介
本書で解説されている内容は、基本的に「利得行列」と呼ばれる情報の一覧を手掛かりにしています。現実的な意思決定では、この利得行列が複雑になったり、状況を想像することが難しい場合もあるのだと思いますが、本書では非常にシンプルな事例を用いているため、本質的な部分が分かりやすいと思います。
本当に多くの理論や数式が紹介されるので、「この添え字jって何だっけ...」など混乱することもあると思いますが、事例がシンプルなのですぐに立ち戻って思い出すことができます。
対して、数式や理論は多く紹介され、かなり濃密な内容だという印象を受けました。例えば第2部のエントロピーの話などは難しい内容だと思います。この辺の内容は、(馬場さんの本ではありませんが)以下の書籍なども参考にするといいかもしれません。
第3部になると、さらに数式の難易度が上がります。数式だけを見ると、「ウッ...」と気後れしてしまう人もいるかもしれませんが、ちゃんと地の文を読むと、丁寧な解説が行われています。「この数式のこの部分、どういう意味なんだ...」と思ったらその近くには「これは~~という意味です」と解説がついています。数式パートは紙と鉛筆を用意して理解し、後述するプログラミングパートではPCで実装する、という学び分けが良いのではないでしょうか。
馬場さんは、他の書籍でもそうですし、実際に講演を拝聴したこともあるのですが、本当に読者/聴衆を置いてきぼりにすることがありません。躓きそうな石があったらちゃんと除いてくれる、そんな気遣いを感じます。
2. Pythonコード
馬場さんの本といえば、事例、数式、そしてプログラミングコードの3点セットでお馴染みです。恐らく本書で紹介されている全ての計算において、Pythonコードが掲載されていると思います。実際に手を動かしながら学べるので、自分が今何をやっているのか、理解しやすいと思います。
多くのライブラリを使いこなして計算するのではなく、numpyとpandasを組み合わせて、時には関数を自作して、数式を実装していく感じです。馬場さんの著書「Pythonで学ぶあたらしい統計学の教科書」の進め方に近いですね。
注意が必要なのは、本書はPythonそのものの解説書ではないということです。初めてPythonを使う人を想定して、関数の定義方法や、numpyのndarray、pandasのDataFrameなどの簡単な説明はありますが、必要最低限にとどめられています。
また、本書はコードをJupyter Notebook上で実行することを想定していますが、Jupyter Notebook自体の説明はありません。
ただし、これらは説明が不十分と捉えるべきではないと思います。本書があくまで伝えたいのは理論の部分であり、それらを丁寧に解説した結果すでに400ページ近くの分量になっています。ここでPython自体の説明も紙面を割いてしまうと、本当に伝えたいところを削らざるを得ないという判断だと思います。
サポートページはしっかりと用意され、そのURLは本書内に記載されていますし、有益な参考図書も多く紹介されているので、全く心配はいりません。
Python自体を初めて触る人は、適宜、他の参考図書なども併用しながら読むと良いと思います。
まとめ
僕自身、この書籍がターゲットとする内容が専門ではないので、踏み込んだ書評ができませんでしたが、初学者目線では非常に勉強になりました。第4部では、選好や効用関数など、経済学でお馴染みの内容が紹介されるので、経済学に関心がある人は、この辺りの内容も役に立つかもしれません。
僕自身、これから何度もこの書籍を読み返し、勉強していきたいと思います。
Enjoy!