読者です 読者をやめる 読者になる 読者になる

廿TT

譬如水怙牛過窓櫺 頭角四蹄都過了 因甚麼尾巴過不得

時系列データを可視化する折れ線グラフのピリオドの選び方、意外とむずかしい。

要旨

  • データを月次でみるか週次でみるか、というのは意外とむずかしい問題。時間の区切りを決めるのには、平滑化みたいな考え方が必要になる。
  • 会計的な考え方と統計的な考え方は、折り合いをつけるのがむずかしい。でも必要だ。
  • 家に帰るまでが遠足だし、稟議を通すまでが提案です。

免責事項

ぼくは時系列データの分析にはまったく詳しくありません。

というか、べつになににも詳しくありません。

今現在のぼくは研究者でも実務アナリストでもビジネスマンでもなんでもない人間(ほぼニート)です。

そんなぼくが折れ線グラフについて、以前からなんとなく気になっていたことがあり、まだ考えがまとまりきっていないのですが、備忘録的に書いてみます。

時系列データの見方

時系列データは周期的に変動することが多いです。
そのような周期性というのは気になるところです。

その周期的に上がったり下がったりを繰り返すことを把握した上で、長期的に見て上昇傾向にあるのか、下降傾向にあるのか、というトレンドを把握するというのは非常に興味があります。

また、イレギュラーな変動、不規則な変動もあるため、その異常値というか外れ値というか、特異な値を検出したりする必要もあります。

またある時期を境に系列の動きかたが変わっていたりするとしたら、その変化点も知りたいです。

ケーススタディ

以下はぼくの Google アナリティクスアカウントの画面キャプチャです。

直近30日間のセッション数を表示しています。

f:id:abrahamcow:20141210210500p:plain

「時間別」で見た場合、24時間ごとの周期性が目にとれます。

f:id:abrahamcow:20141210210621p:plain

「日」で見た場合、7日ごとの周期性が目にとれます。

f:id:abrahamcow:20141210210725p:plain

「週」で見た場合、そのような周期性は平滑化されますが、やや平滑化をし過ぎるようにも思われます。

f:id:abrahamcow:20141210210839p:plain

「月」で見た場合、明らかに下降傾向に見えますが、これは単に 2 点を結んだだけであり、トレンドを調べるにはどう考えても不適当でしょう。

「週次」でみるか、「月次」でみるかといったピリオド(区切り)の選び方は、平滑化の一種と捉えられます。

お仕事としてWeb解析担当者だったときは、「四半期比較」をすることが多かったのですが、これは会社が「決算」というものに合わせて動いているからであり、データを適切に平滑化するといった観点は含まれておりませんでした。

会社っていうところでは四半期単位で目標を立てて動いていました。

ビジネス用語で、目標とする指標をKGI、目標達成のための手段となる指標をKPIと呼んだりします。

KGIとKPIの違いについてはいろいろな説明がなされていますが、

google:kgi kpi 違い

ぼくとしては、単にKGIは目的変数、KPIは説明変数と捉えるのがわかりやすいと思います。(回帰分析 - Wikipedia

移動平均

このような平滑化の代表的な手法は、移動平均です。

移動平均は単純なようで、意外とむずかしい面もあります。

移動平均過程(MA過程;moving average process)というのは、ごく大雑把に言えば線形回帰(線形回帰 - Wikipedia)を自分自身に対してやっているようなものです。

実際、MA(1) 過程(一次の移動平均過程)は、

\displaystyle y_t = \mu + \varepsilon _t + \theta _1 \varepsilon _{t-1}
※ここで ε はそれぞれ独立に同一の正規分布に従う確率変数。正規分布の平均は 0 、等分散性の仮定を置く( N(0, \sigma^2))。

という形で表されます。これは線形単回帰のモデルと似たような形になっています。

線形単回帰を自分自身に対して行う? 言ってしまえばこれは、

「昨日体重60kgだった人は明日もだいたい体重60kg前後だろう」

というようなものです。

一瞬、そんなモデルになんか意味があるの? と思ってしまいます。それって結局なにを説明できてるの?

このモデルの意味は、ある変数を別の変数で説明するのではなく、ある変数の変化の動学的性質(ダイナミクス)を明らかにする点にあるのだと思います。

いろいろ上がったり下がったりする変数の、その「上がったり下がったりする」性質を説明できているのです。

さて、MA(1) 過程を拡張して、MA(q) 仮定(q次の移動平均過程)を考えます。

\displaystyle y_t = \mu + \varepsilon _t + \theta _1 \varepsilon _{t-1} + \cdots + \theta _q \varepsilon _{t-q}

これは、「昨日体重60kgだった人は明日もだいたい体重60kg前後だろう」の「昨日」を二日前、三日前、四日前、…… q 日前までさかのぼって考えてみよう、というものです。

実際、このモデルを現実のデータに当てはめて、q をいくつにするか決めるにはおそらくAIC赤池情報量規準 - Wikipedia)とかを使って検討することになるでしょう。
※ぼくは時系列データの分析したことないので、本当にAICでいいのかというのは未確認です。

AICというのはモデルのもっともらしさ(尤度)という指標と、パラメータの数を節約するケチの原理を両者総合して、適切にモデルを選択するために導出されたものです。

ウィキペディアAICの項目にはオッカムの剃刀オッカムの剃刀 - Wikipedia)が挙げられるています。

オッカムの剃刀とは、「単純に説明できることをわざわざ複雑にすることはない」という哲学者オッカムの考え方のことです。

極端に単純化した言い方ですが、AICとはオッカムの剃刀という概念をはじめて数学的に定式化したものとも捉えられます。

で、話はやっと冒頭の折れ線グラフのところに戻りますが、仮にですよ、
AICで選択したところ四半期比較よりも、q日ごとの移動平均で比較したほうが優れています」
と会社で提案したところで、四半期決算をやめるわけにはいかないので、こんな提案は通りません。

学生時代は提案手法(proposal method)と従来法(conventional method)をAICで比較して、提案したモデルが優れていたら「よくがんばったね」と先生から褒められました。

しかし、会社に入ったら「はい論破」みたいなことやったって、稟議が通らなければ意味がないわけです。

これは会社組織の考え方の頭が固いとか言いたい訳では決してありません。

決算は、株主とかステークホルダーステークホルダー - Wikipedia)とか呼ばれる人たちに対する説明責任(アカウンタビリティ)を担保するために、なくてはならない重要なものです。

会計の価値観と統計の価値観の折り合いをなんとかしてつけなければ、Webアクセス解析は不十分なものになってしまうのです。

推測統計と記述統計は不可分なもの

折れ線グラフを書いたり、棒グラフ(柱上グラフ)を書いたりするのは記述統計、パラメータを推定したりするのは推測統計とか呼ばれます。

記述統計は推測統計のためのデータを提供する下処理のようなもの、という捉え方もできますが、ぼくは推測統計と記述統計は本来不可分なものと考えます。

適当な統計学の教科書を手にとって頂ければ、おそらく序盤にヒストグラムという柱上グラフが出てくるでしょう。

ヒストグラムというのは、下のキャプチャのようなものです。

f:id:abrahamcow:20141211101945p:plain

Google アナリティクスでは、「18-24、25-34、35-44、45-54、55-64、65+」と年齢層を区切っています。

しかし、このようなヒストグラムの階級の幅の決め方というのは、意外とむずかしい問題です。

ヒストグラムが大事なのは、それが密度の推定量の一種ともいうべきものだからです。

R-tips では、ヒストグラムの階級の幅の決め方によって、密度の印象が大きく変わるという、おもしろいシミュレーションがなされています。

ヒストグラムの階級の幅の決め方には主に、

  • スタージェスの公式
  • スコットの選択
  • フリードマン=ダイアコニスの方法

などの基準があります。

ヒストグラム - Wikipedia

これらは数学的にけっこうむずかしい議論の上で作られたもので、これらがどうやって導出されたのかは、ちょっと論文ながめたくらいではわからないです(というか、単にぼくがわからなかった)。

折れ線グラフのピリオドの選び方もこのような基準があるのか、不勉強なのでぼくは知りませんが一回ちゃんと考えてみる価値はあると思います。

昨今ビッグデータとか、データマイニングとかの言葉をよく聞くようになりましたが、このような探索的データ解析の開祖ともいうべき統計学者は、テューキーです。

ジョン・テューキー - Wikipedia

彼はきちんと仮説を立て実験計画に従い検定などを行う演繹的な統計手法に対して、データから帰納的に考える探索的データ解析も必要だと主張しました。

また探索的データ解析においては視覚化が大事だと述べ、箱ひげ図等を考案しました。

箱ひげ図 - Wikipedia

会社という場所で「中期経営計画」などの目標(KGI)を立て、そのためにKPIを棒グラフ、折れ線グラフ等で定点観測するという行為は会計的な考え方ですが、極論すればKGIという目的変数を、KPIという説明変数によってモデリングする、数理モデルの一種とも捉えられます。

そのため、会計的な考えかたと、統計的な考えかたの折り合いをつける方法は、なんとかして見つけいく必要があると思います。

経緯

ぼくがこのような考え方に至ったのは、Web系企業に新卒で入社して、Web解析のアナリストとかコンサルタントとかいうご大層な肩書を頂戴し、実際やってい仕事が、決算早期化とかでサーバーコール数から原価と粗利出して、みなし売上を報告しろとかいわれ、睡眠時間を削ってとにかく与えらた方眼紙エクセルを埋めまくることだったからです。

そもそも言われている意味がわからなかった。みなし売上ってなにそれ? 売上確定してないのに報告すんの? それホリエモンとかがめっちゃ怒られてた粉飾決算とかにならないの? っていうか決算早期化ってなんだよ。なんでそんなことすんの? これ適当にやったら公認会計士とかいう人にめっちゃ怒られるんだろうな、などと悩みまくった結果、

会計的な考え方と統計的な考え方の止揚が必要なんだ!

という結論に至りました。

いやーしかし、仕事って本当にきつかった。

まあ就職とか本当はしたくないけど、当時好きだった女子(いまでも実はちょっと好きだけど)から、「就職はちゃんとしないとダメだよ」っていわれて、とりあえずWeb系企業のコンサルタントとかだったら、多少は数学とか統計の話も通じるだろうし、勤務態度もゆるそうだし、いいかなーくらいの軽い気持ちで入社したおれが甘かった…。

勤務態度ゆるいっちゃゆるかったけど、休日出勤しようが深夜残業しようがひとりぼっちになることはまずないアットホームな職場だったため、結局睡眠時間けずってめっちゃ働くはめになった。

でも睡眠時間削って働いてると心身のバランスを崩し、ぼくみたいに速攻で会社やめて返って周囲に迷惑をかけるため、多少怒られようがなにしようが、開き直って寝たほうがいいです。

っていうかそんな会社、ふつうに労働基準法違反してるんで、仕事サボって怒られてむかついても裁判やったらたぶん勝てます。

で、実際心身のバランスを崩しそうな方は、はじめての人のための精神科受診ガイド - 廿TT をご覧いただければと思います。

しかし、あの会計用社内システムはひどかったなー。なんかまずインターネット・エクスプローラーの古いバージョンでしか開けないし、虫眼鏡アイコン押しても検索できないしテキストボックスにも入力できないけど一回アイコンおしてからテキストボックス選択して矢印キー押すと検索できるとか、インターフェイスが謎すぎた。

その辺の大学生が Visual Basic とかで作ってもあんなひどくすんの逆にむずかしいんじゃないの? って思った。

まあデスマーチの中で継ぎ足し継ぎ足し作られたうなぎ屋の秘伝のタレみたいなソースコードになってんだろうなあ。お察し致します。

みなさま、どうぞ健やかに。

参考文献

Rによる時系列分析入門

Rによる時系列分析入門

経済・ファイナンスデータの計量時系列分析 (統計ライブラリー)

経済・ファイナンスデータの計量時系列分析 (統計ライブラリー)

エンジニアのための データ可視化[実践]入門 ~D3.jsによるWebの可視化 (Software Design plus)

エンジニアのための データ可視化[実践]入門 ~D3.jsによるWebの可視化 (Software Design plus)

ニートの歩き方 ――お金がなくても楽しく暮らすためのインターネット活用法

ニートの歩き方 ――お金がなくても楽しく暮らすためのインターネット活用法