今回のEDAサロンは自転車のレンタル件数に関するデータだったので、データの中にある天候に関する変数、特に温度がレンタル件数に影響するのかどうかを調べてみた。
直感的な仮説として、暖かくなってくればより多くの人が自転車を借りようと思うはずではないか。
さらに、データの中には登録済みのユーザー(Registered)とそうでないユーザー(Casual)というふうにレンタル件数をわけた数字もあるが、この違いは天候がどう影響するかに関わってくるのではないか。
例えば、登録済みのユーザーは通勤などで使っているというのであれば、天候には左右されにくいかもしれない。逆に登録していないユーザーは、レジャーや観光のために使ったりするということかもしれないがそういう人たちこそ天候に影響されやすいのではないか?
以下がこうした質問に答えるための分析である。
まずは気温とレンタル件数の関係を散布図を使って可視化。
この2つの変数間の相関はあまり強くなさそうである。
トレンドラインを描いて相関係数を出してい見ると、わずか0.28ほど。
ところで、ここで一つ問題が。
元のデータは時間毎のレンタル件数である。しかしこのままだと同じ一日の間でも昼間のような温かい時間帯と夜のような寒い時間帯の間の差が影響してくる。つまり大げさにいうと、ここで見ているのは昼間と夜のレンタル件数の違いということになってしまう。
しかし、もともと知りたかったのは、人々は、今日は温かいから自転車を借りようと思ったり、その逆に今日は寒いから自転車に乗るのはやめようと思ったりすることで、レンタル件数に天気が影響を及ぼすかということだ。
つまり温かい日と寒い日でレンタル件数が違ってくるのかということなので、一度データを「日」単位で集計して、その結果を分析していったほうがよさそうだ。
以下が「日」毎に集計したレンタル件数と気温の関係を散布図を使って可視化したものである。
「時間」毎のデータに比べて若干相関が強くなったようだが、それでもまだ弱い。相関係数は0.32ほどである。
しかし、このチャートを見るとどうも2つのグループがありそうなのが見える。下の方に密集してる点の集まりと、上の方に散らばっている点の集まりだ。
色を使って登録済みユーザーとそうでないユーザー(カジュアルユーザー)を分けてみると、この2つのグループの間の違いは顕著である。
2つのグループに分けることで気温とレンタル件数の間の相関関係はより強くなっている。それぞれ0.54ほどである。
どうやらこの2つのグループの間にはやはりなんらかの相関関係がありそうだ。温度が暖かくなってくると自転車のレンタル件数は増えるということのようだ。
こうした関係は実は季節によって変わってくるのではないか。例えば、冬のように寒い季節では、温度が上がろうが下がろうが対して影響はないが、春や夏のような温かい季節は、温度が上がるとより多くの人が、「じゃあ、今日は自転車でも乗りに行くかー」といったかんじでレンタル件数が上がるのではないか。
そして、こういった動機というのは特にカジュアルユーザーに顕著なのかもしれない。
そこで季節ごとに分けたのが以下のチャートである。
ちなみにこれは単純に以下の4半期ごとに分けたものを「季節」として仮定している。
気温とレンタル件数の間の相関関係は季節によって違ってくるようだ。
春、秋、冬では気温が上がるとレンタル件数も上がるという関係がありそうだが、逆に夏ではあまり相関関係がないか、あったとしても負の相関関係、つまり気温が上がるとレンタル件数が下がるということのようだ。
さらに、冬(1月、2月、3月)では気温が上がるとレンタル件数が上がるといった相関関係は他の季節に比べてより強い。登録済みのユーザーに関しては相関係数は0.66、カジュアルユーザーに関しては、0.63ほどである。
実は、以下のように週毎のレンタル件数の推移を可視化すると、2011年と2012年では大きな差がある。2012年には大きくレンタル件数が上昇している。
この違いが何らかの形で分析に影響してしまわないように、年も分けて上記のチャートを生成してみよう。
すでに見た「季節ごとのレンタル件数と気温の関係」を表していたチャートをさらに年ごとの季節に分けたものが以下のチャートである。
2012年では季節によって天気がレンタル件数に与える影響が2011年に比べてさらに強そうだ。
例えば、冬、1月から3月、そして10月から12月の2つの季節では暖かくなると登録済みユーザーのレンタル件数が大きく上昇するようである。逆に、夏(7月から9月)では、気温が上がると登録済みユーザーのレンタル件数が下がるようである。
また、2011年は春、4月から6月の季節では気温が上昇すると登録済みユーザーのレンタル件数が上昇しているようだ。
それでは次に、線形回帰のアルゴリズムを使って予測モデルを作り、気温とレンタル件数の関係をさらに詳しく見てみよう。
今回は気温がレンタル件数に及ぼす影響を季節ごとに比べたかったので、レンタル件数、気温ともに値を平均を0とした標準化をした上で線形回帰のアルゴリズムを使ってモデルを作っている。
まずは天気と登録済みユーザーのレンタル件数の関係を見てみると、先ほどのチャートでみたように、2012年の冬(1月から3月)での相関係数がもっとも顕著である。
夏の負の相関関係は2012年のみ有意であるようだ。
次にカジュアルユーザーであるが、こちらは登録済みユーザーほどには気温によって影響されないようである。
例えば夏は両年とも気温による影響は有意ではない。
それでは最後に他の気候に関する湿度、風速に関する変数も入れた上で気候がレンタル件数にどのように影響しているのかを見てみよう。
今回は以下の変数が登録済みユーザーのレンタル件数にどう影響を及ぼすかを線形回帰のモデルを使って見てみた。
上記と同じように全ての変数を標準化してある。これによってレンタル件数への影響を変数間で比べやすくなっている。
湿度と風速が一定であるという条件であれば天気は全ての季節で登録済みユーザーのレンタル件数に影響を及ぼしているのがわかる。及ぼし方はこれまで見てきたように、夏のみが負の相関、つまり温度が上がるとレンタル件数は下がるという関係があるが、それ以外は正の相関である。さらに2012年の冬(1月から3月)では大きく影響するようである。
さらに興味深いのは湿度や風速なども特に冬には影響しているようだということである。
こちらはカジュアルユーザーへの影響であるが、こちらも寒い季節は気温が上がるとレンタル件数が上がる。
しかし興味深いのは、暖かい季節では気温よりも風速や湿度といったほうが影響するようである。
例えば2012年であれば、春(4月から6月)は湿度が上がるとレンタル件数が下がるといった関係がそれなりに有意と言えるほどあるようだ。
最初の質問は、天候に関する変数、特に温度がレンタル件数に影響するのかどうかであった。
結果としては、関係はあるということである。
しかし、それは季節によって影響の仕方が違う。
さらに登録済みユーザーとカジュアルユーザの間でも影響の仕方が違う。
登録済みユーザーの場合は寒い季節には気温が上がるとレンタル件数が上がるという関係が観察できるのに対して、暑い季節には気温が上がるとレンタル件数が下がるという関係が観察できる。これは湿度と風速が一定であるという条件でも同じような結果である。
カジュアルユーザーの場合も寒い季節では気温が上がるとレンタル件数が上がるという関係が観察できるが、逆に温かい季節(春、夏)には気温はあまり影響しないようである。逆にこうした季節では湿度や風速といった要素の方がレンタル件数の増減に影響しているようである。