注)かなり仮定に仮定を重ねた話ですので,あまり真面目に受け取らないでくださいね.
ことの発端は,3.11以後の「地震」をキーワードにして検索したGoogle Realtimeのタイムラインが「減衰」を示しているのをみたところにはじまります.(不謹慎な話でごめんなさい.)
これがいわゆる,「システムのインパルス応答」に似ているなぁ,と思ったわけです.
インパルス応答の詳しい説明はwikipediaをみていただくとして,ざっくりといえば,対象(壺とか)を指でピンと弾いて [インパルス入力],その音の響き[応答]から対象がどういう特性を持っているか判断する,というもの.つまり,インパルス応答を定式化することが出来れば,システム自体の特性が把握できる,ということになります.数学的にいうと,入力はデルタ関数で,厳密にはこの関係は線形時不変システムで成立します.
今回の問題の場合,直接の入力のデルタ関数(もどき)は地震で,それが日本におけるTwitterユーザにつたわり,何らかのかたちでそれぞれのユーザーがつぶやくことで出力になるわけです.システムとしては,
(入力x(t):「地震」を体感した人数)--->[ (社会)システム ]--->(出力y(t):投稿の数)
という按配でしょうか.おそらくシステムの内部には友人間のネットワークや報道,それを投稿するかどうかの個人的な閾値などなど,その線形性についてはいろいろと議論もあるでしょうが,ここはそうだと見なしてしまいましょう.
制御工学的には,インパルス応答をラプラス変換したものがまさにそのシステムの伝達関数にあたります.(インパルス入力の場合 X(s) = 1なので,出力 Y(s) = X(s)G(s) = G(s),G(s)が伝達関数)さらにこのときs=jωとおけば,周波数領域での特性を示すことになるわけです.(またまたざっくりですが,結局のところ,時間軸での話をフーリエ変換している.)
ここでいう周波数は,結局それぞれのひとが「どれくらいの頻度で投稿するか」と対応していると考えられます.たくさん投稿するようなヒトは周波数大,たまにしかしないひとは周波数小,という発想.
ここで問題なのは,出力として出てきた波形をどのような関数でフィッティングしたらいいのかという点ですが,今回は制御系ではよくある例として指数関数(e^(nx)),あと似たような形を示すべき関数を試してみました(x^(n)).
本来ならばキチンと計算するのが筋なのですが,ここから先はWolfram Alphaをつかって楽しちゃいましょう.(ラプラス変換まで出来るだなんて,この時まで知らなかった!)
応答が指数の場合
いわゆるよくある一次遅れの系です.
ここでs=jωとおき,周波数表現の絶対値(位相のズレはこの場合何に対応するかよくわからない)をみてみると,
といった感じの分布になります.低い頻度で投稿する人の数が頭打ちになっているかたちですね.実際の分布がこうなっているかと言われれば,ちと怪しい.
応答がべきの場合
同様に周波数表現の絶対値をとってみると,
となります.
(ここにくるまで気づかなかったのですが,時間表現でべきなら周波数表現でもべきになるのですね.学部の時にべき関数のラプラス変換ってやったとしても試験とかで出てきた記憶がないので,制御的にはあまりでてこない例なのでしょうか.まあ忘れているだけかもしれませんが.)
このようなヒトの頻度の分布はいわゆるジップ則にのっていると考えられるだけに,たくさんのひとが一気に影響を受けたであろう今回の地震では,こちらの形のほうがもっともらしいかたちなんじゃないかな,という気はしますね.
結論
いろいろな仮定がまあ成立しているとして,ある出来事が多くのヒトに一気・一様に影響し,その結果時間軸上での反応がべき関数的な挙動を示しているとき,そのヒトの活動の分布もべき関数に乗る.(あくまで変換の話なので,逆もまたしかり.ベキ的な活動分布をもつ人々にインパルス的な入力が入ったときのみ,時間軸上の対応もべき関数に乗る)...のかもしれません.
もしかするとこの関数のフィッティングがきちんと出来れば,投稿数から逆算することでどれくらいのユーザーが実際に地震の影響を受けたのか,だとか,そこからどれくらいの被害総額になるのかの迅速な算定といったことが出来るようになるのかもしれません.また,これでいわゆるシステムの特性がわかったとすれば,異なるタイプの入力があったときのタイムライン上の反応も推定できる(逆も)わけで,そのあたりにも意義のある分析方法がころがっているのかもなぁ,というぼんやりとしたまとめで今日は終わり.