THE長文日記

長文とか短文とかのクレームは一切受け付けません

美女と統計と複雑系

http://gyazo.com/7716718d4452bf0e06ba5e38fdeae800.png

 美人は得である。


 美人に何か頼まれたら、忙しくともとりあえず話は聞いてやるか、という気がする。

 たとえそれが、ニガテ分野であろうとも。


 土日はとにかく忙しかった。

 イベントが二つ同時進行してて、品川女子学院の授業見学が一回、週末だから原稿執筆もせにゃならん。

 それぞれの会場を移動するだけでも大変だ。


 ただ、イベントって、空き時間が多いのよ。

 たとえば土曜のグローバルゲームジャムのニコ生なんて、4時に行って8時30分から放送だからね。4時間もやることない。しかしさりとてどこか遊びにでかけるわけにもいかない。


 そうした、身体だけはクソ忙しい週末の最中に、知人の美女が大学の卒業論文を書くのに必要だから統計分析教えてくれと言ってきた。彼女は古い友人で、一度大学を卒業したあと、別の大学の大学院に入り直した。


 統計学、僕はニガテだし、そもそも好きでもない。

 が、美女に頼まれて嫌だと即答するほど強靭な精神力は持ち合わせていない。

 時間はあるし。



 適当に集めたデータをExcelで集計して重回帰分析とかすればいんじゃね?と言ったんだけど、彼女は統計解析どころか、そもそもExcelも中学校以来使ってないのだという。


 「Excelは方眼紙としての使い方以外知らない」と言われ、さすがに絶望した。圧倒的にデジタル・ディバイド。


 まあなー、知らんわなー。文学部じゃなあ。なぜ経済のゼミを選んだのだ。統計に必要な基礎知識ないとか辛いぜー。


 だとすると、もうExcelで分析するというのは絶望的なのでデータだけ抽出してRでクラスター分析でもするしかない。


 Excelが使えない人間にRが使えるのかという問題はあるが、Rなら一行くらいでK平均クラスター分析が書けるだろうからExcelで重回帰分析するよりは簡単だろう。

kmeans(x, centers, iter.max = 10, nstart = 1,
       algorithm = c("Hartigan-Wong", "Lloyd", "Forgy",
                     "MacQueen"), trace=FALSE)

 

 けど実際の仕事であんまり統計解析使わないなあ。


 アスキー総研の遠藤さんが「結局、クライアントに報告するのは棒グラフと円グラフが一番解りやすい。重回帰分析や移動平均は見えないものが見えるようになるけど見えないものが見えたからと言って何かの役に立つことは稀。見えないんだから」って言ってたのを思い出す。



 棒グラフや円グラフ書くだけだったら統計解析しなくていいからなー。

 

 実際、このような統計解析って社会のどの分野で使われてるんだろうか。

 統計解析を現実の仕事に応用してる人と接点がないのでわからないだけだと思うけど、実際に見たのはアスキー総研の「モバイル&コンテンツサーベイ」くらいだし。あれだってアンケートだしなー。


 強いて言えば株価の変動とかは移動平均とか使うし、もしかするとビール指数とか天気予報とかに使える?あと実験データの分析とか。



 でも統計解析って結局「データを分析した結果、何かが解ったということはわかった。しかし、それを解って一体どうするのだ?」という疑問にはあまり答えられないんだよなあ。


統計学が最強の学問である

統計学が最強の学問である


 ベストセラーの「統計学が最強の学問である」はKindle版を読んだ。

 もともと「教養としてのプログラミング講座」を書く時に、「こういう本を作りたい」と編集の吉岡さんから渡されたんだけど、紙の本は読むのがしんどくてKindleで購入した。

 なるほどなかなか面白い。


 けれどもやっぱり「最強の学問」ってことは、つまり「知らないことを知ることが出来る」という意味で「最強の学問」なのであって、生きるための「最強のスキル」ではないのだよなあ。教養として統計学統計学の成果を知っておくことは得かもしれないけど、統計を取るにはまずその前段階でデータがあるわけだから。


 で、統計で実益といえばソーシャルゲームなどが真っ先に考えられるのだけれども、統計学のエンターテインメント分野への適用という意味で「最強」だったはずのZyngaもなんだかおかしくなってるし(最初からおかしかったという考え方もある)、各社が使用しているKPIも、「デイリーアクティブユーザー」とか「一週間後離脱率」とか、足し算と引き算とせいぜい割り算くらいしか出てこない単純な指標ばかりだ。


 本当に統計が役立つなら、むしろこういう分野にこそ適用されるべきだと思うし、実際、mixiGREEDeNAには東大卒の統計の専門家が何人も居るんだから、データもあるし、そういう統計解析はいの一番にやってるのではないかと思う。


 にもかかわらず、我々の見える範囲に出て来る指標であるKPIはやはり足し算と引き算で語られるごくごく単純なシロモノで、中学生くらいでも理解できる程度のものしかない。つまり足し算が最強の学問である、ということにならないのか。ならないか。


 僕は足し算というのは最強のスキルのひとつだと思っていて、足し算ができれば引き算もできるし、掛け算もできる。引き算ができるということは、割り算もできるということで、割り算ができるということは平方根を求めることもできるということになる。


 コンピュータを構成する論理回路も、基本的には加算回路まで作ったらあとは別にいいや、と言われる。足し算さえできればあとは繰り返しで何でもできることは解っているからだ。


 昔のCPUには掛け算と割り算の命令がなかった。

 じゃあどうするかというと、プログラマーが自分で工夫して掛け算と割り算をさせていたのだ。


 2の乗数の掛け算と割り算はビットシフトだけで出来る、とかね。そういうテクニックが沢山あった。それはそんなに恰好イイモノではないと僕は思っていたけど、ビットシフトを繰り返すと任意の数の掛け算や割り算ができるからこれを知らないとプログラミングそのものができなかったのだ。


 コンピュータは「繰り返す」という本質的な能力があるから、足し算さえできれば積分ができる。

 Σなんていう記号は、コンピュータから見れば不自由かつナンセンスな繰り返し処理だ。forループの方がずっと汎用性がある。


 回帰分析は例えばC = a + bYのような単純な式に還元し、定数を求めるという分析手法だ。

 しかし物事がこんな単純な線形の式にまとまることなどまずない。重回帰分析では独立変数が二つ以上になる。しかしそれでもそこまで複雑な振る舞いを表現することはできない。


 結局、回帰分析を行うためには、回帰分析できる程度に単純明快な関係性を持つデータ群を探しに行かなければならない。


 プログラマーからみると、回帰分析は実にナンセンスだ。これで何かがわかるわけがない。解ったような気がするだけだ。


 プログラミングの世界では、ほとんどのことは線形に推移しない。


 たとえば単純に、たかだか三つのエージェントが相互作用するようなモデルは回帰分析できない。これは三体問題と言われる。


 つまり、太陽、地球、月がそれぞれ重力を相互作用させて軌道を変化させる、という極めて単純なモデルでさえ、ひとつの数式で表すことはできない。


 強いて言えば、F=maと、F=G(mM)/(R^2)という二つの式で表すことが出来るけれども、p=∮∮aとした時のpの動きを線形の式で表現することはできない。なぜなら位置pを求めるには、aを求める必要があるが、aを求めるにはFが必要で、Fを求めるには他の二つの天体との距離、すなわち他の天体のpが必要になるからである。これは単一の数式として表すことが不可能なのでケプラーは本質的な要素、つまり重力の相互作用を無視して単純な楕円軌道を想定することで近似しようとした。これは実際の軌道に似てはいるが物事の本質を解明したことにはならない。


 実際の天体の動きは重力の相互作用によって決定されるので、近似するとしても単位時間ごとに重力の相互作用を計算しながらaを積分していかなければならない。


 ちなみに単純に太陽、地球、月の質量mを実物と同じように設定し、距離も実物と同じように設定して重力のシミュレーションを行うと、当然、重量に引かれて地球と月は太陽にまっすぐ落ちて行く。つまり数式だけを完全に再現しても天体の運動を理解することはできず、実際には今省略した初期の速度ベクトルvが必要になる。つまりp=∮∮aではあるが、実際にはv=∮a、p=∮vであり、初速度ベクトルvを適切に与えることでようやく地球は太陽を公転するようになる。


 こういうのを外野は「複雑系」と呼んで十把一絡げにする。彼らは「複雑系」って呼べばいいと思っているけど世の中は根本的に複雑系なのだ。


 だって天体は無数にあるし、人間だって何億人も居る。


 それぞれがそれぞれの立場を持って行動するわけだから、実際の行動を線形に予測しようなどとは傲慢な考えに思える。そんなに世の中が単純なら、人類はもっと倖せになってるはずだ。



 統計学が全くの役立たずであるとは思わないまでも、統計学によって世の中のことが全てわかるとは僕には思えない。


 少なくとも天体の運動をいくら統計学的に分析しても、天体の運動の本質は解らないのではないかと思う。観測データの中から仮説を導くのには使えるかもしれないが。

 それでもF=maのような単純かつ美しい数式さえ導きだすのは困難だろう。


 複雑なものごとを理解しようと思ったら、プログラミングをするしかないのだ。


 グローバルゲームジャムのお台場会場で、Microsoftインターンに来てるという学生が、「初めて買った本はゲームデザイン誇大妄想狂でした」と告白してくれた。

ゲームデザイン誇大妄想狂 (I・O BOOKS)

ゲームデザイン誇大妄想狂 (I・O BOOKS)


 いくら売れても僕に印税が入らないという絶望的なビジネスモデルの本ではあるが、この本の内容は個人的に気に入っているので読者に会えて嬉しかった。


 この本の中には「恋愛シミュレータを作る」という章があって、人間関係を数理モデル化して男女のドロドロの愛憎劇をプログラミングによって読み解く、という試みをしている。


 こうした試みは僕が最初ではなく、A.K.デュードニーがScientific American誌で連載していた「Computer Recreations」というコラムの中でも「男女の想いが交錯するダンスパーティのシミュレーション」として紹介していた。別冊日経サイエンス「コンピュータレクリエーション」に日本語訳がある。


 これは男女の関係を重力シミュレーションの応用として表現する数理モデルで、非常に面白く読んだ記憶がある。僕の「恋愛シミュレータ」はそれのパクリというわけだ。


 統計をとって分析するのもひとつの方法だと思うが、個人的にはものごとを数理モデル化してその振る舞いを観察するほうが、本質的は理解は早くできるという気がする。


 数理モデルの蓋然性は、実際に起きている現象と、コンピュータシミュレーションの差を見れば解るからだ。単純な数理モデルのみによって作られたboid(bird droid)が、見事な群体として動くアニメーションは有名だけれども、人間はシミュレーション結果を見て自分で「本物らしい」と納得するまでパラメータや数理モデルを修正することができる。


 今はまだこうした非線形なマルチエージェントシステムのプログラミングはそれほど簡単ではない(MOONBlockでもかなり難しい)が、いずれ簡単になっていくだろう。




 という話をしかけたら、彼女は顔をしかめて「何でもいいから私でもできる分析方法教えて」と言った。


 うーむ。Excelも使えない奴が取得する経済学の学位なんてなんの価値があるのか甚だ疑問だ。

 しかし美女に助言を求められて、気の利いた答えのひとつも言わなかったとなれば男がすたる。 


 「とりあえず棒グラフ書けば?」と言おうかと思ったけど、それもあんまりなのでかくかくしかじかのことを教授に聞いてみれば、と言った。結局、教授次第だからねーそういうの。



 「オッケー」と言って、美女は去った。


 せめてExcelは使えるようになれよ。

 後ろ姿を見送りながらそう思った。

 

 統計学の話をしてたので原稿が進まない。とりあえず慌てて2万字書いたところで力が尽きて、酒を呑みに行った。

http://gyazo.com/7aab306f014097852e811cc60cfdacaa.png