[ド素人]Alteryxで単回帰分析を勉強してみた #Alteryx
はじめに
どうも。DI部@大阪オフィスの玉井です。
家の本棚を漁っていたら、こんな本が見つかりました。
………数年前に買ったものの、ほとんど読まずに本棚に封印していました。
もう一度、ページをペラペラめくってみると、データ分析に役立ちそうなことが沢山書かれています。これは改めて読み直すいい機会な気がしてきました。
しかし、この本はExcelを使用することが前提となっています。ぶっちゃけ、いまさらExcelでデータ分析とか耐えられない…。というわけで、この本の内容をAlteryxでやりつつ、今回は単回帰分析について勉強したいと思います。
※この書籍にはサンプルデータが付属しているので、基本的にそれを使用します。
これまでの回帰分析エントリ
実は、すでに偉大なる先人たちがAlteryx×回帰分析という切り口のエントリを執筆しています。
- 線形回帰をしてみる #alteryx #07 | Alteryx Advent Calendar 2016 | DevelopersIO
- Linear Regression(線形回帰) | Alteryx Predictive Tools 道場 Advent Calendar 2018 #08 | DevelopersIO
- AlteryxでRツールを使わずに線形回帰を実装する | DevelopersIO
本エントリは、どっちかというと「分析とかド素人だけど、本とAlteryxで頑張って分析してみたぞい」程度のノリでいきたいと思います。より高度な知見を求められている方は上記エントリをどうぞ。
単回帰分析とは
2つの変化するデータの関係を、直線で説明する
こちらは月別のビール販売量のデータです(あくまでサンプル)。加えて、その月の平均気温もくっついています。
これを散布図として表すと、下記の通りとなります。ちなみに散布図は、「横軸に原因」「縦軸に結果」を表します。
この散布図を見ていると、何となーく、あくまで何となーく、点の分布が右肩上がりになっている気がしないでしょうか。このなんとなく感じた気持ちを、もう少し正確に表現するため、線を引いてみたいと思います。それがこちら。
これは、直線によってこの分布を説明しようとしています。この線は、「温度(横軸)が1度上がれば(右に行けば)、○○だけビール販売量(縦軸)が増える」という線です。ちなみに、横軸(x)を説明変数、縦軸(y)を目的変数と呼称します。
この、x(説明変数)でy(目的変数)を説明する関係を求めることを回帰分析と言います。上記の例は、説明変数は1つ(平均気温)なので、単回帰分析となります。この説明変数が複数ある場合は重回帰分析となります。
単回帰分析を行う理由(目的)
ものっすごいシンプルに言うと、下記の通りではないでしょうか。
- 異なるデータ間に関係性(相関)があるかどうか知りたい
- あるデータをもとに別データ(の未来)を予測したい
今回のデータでいえば「気温からビールの販売量を予測したい」となります。これがわかれば、天気予報で気温を確認して、販売量を予測することができます。販売量の多い少ないが予測できれば、それに対する施策(キャンペーンセールを行うとか)を打つことが可能です。
「そんな単純なビジネスの話があるかいな!!」っていうツッコミがありそうですが、ここは単回帰分析のために簡単に説明しているので、どうか一旦落ち着いてくださいね。
この直線を求めたい
この散布図に直線を引くことができれば、2つのデータ(xとy)の関係を見ることができます。直線を引くということは、すなわち数式を求めることになります。
こちらの画像は下記を参考に作成しました。
直線の公式
上記を見ればわかりますが、求めたい直線の数式は下記の通りとなります(数学の時間でやったような気がしますね)。
β1の公式
上記のβ1は、下記の式で求めることができます(この式に至るまでの細かい話は本エントリではぶっ飛ばします)。
β0の公式
β0は、下記の式で求めることができます(ここに至るまで細かい話はぶっ飛ばします)。
Alteryxで計算してみる
ExcelではなくAlteryxで
今回参考にしている書籍中では、ひとまず上記の公式を愚直に計算しようということで、Excelを用いた計算例が紹介されています。しかし、冒頭でもいったように、今回はExcelではなくAlteryxを使用します。
というわけで作成したワークフローがこちら。
やってることは、書籍のExcelと全く同じです。後は上記ワークフローのツールの備考欄を御覧ください(公式をそのまんま計算してるだけです)。
求めていた直線の式が出た
Alteryxで計算した結果、下記の結果が出ました。
式にすると、下記の通りとなります。
この式のx(気温)に値を代入すれば、自ずとy(販売量)を計算することができる、という寸法ですね。この方程式のことを回帰方程式といいます。
この方程式はどれくらい信用できるのか?
「これで未来のビール販売量が予測できるぜ」と思っちゃいますが、ちょっと落ち着きましょう。
上記の数式、一体どれくらい信じていいものか、気になりませんか?
何度も言うように、この数式は直線です。この式で出した販売量は、全部、グラフでいうところの、この直線上にプロットされたものになります。しかし、過去のデータはすべてキレイに直線上に並んでいたでしょうか。傾向こそあれど、全部が全部右肩上がりに整列しているわけではありません。つまり、この直線と実際のデータの間には(ほとんど)誤差があるはずです。
実は、数式を求めるために利用した先ほどの公式は最小二乗法と呼ばれるものです。細かい説明はぶっ飛ばしますが、この誤差(ズレ)の総和が最小になるように計算するものです。
ですので、この数式から予測して算出する値も、ほぼ必ず誤差が生じると考えていいでしょう。じゃあその誤差はどの程度のもので、どのくらいの確率で発生するのか?
これをまともに計算しようとするのは無理ゲーなので、Alteryxに頼りましょう。
Alteryxで単回帰分析を行う
使用するツール
線形回帰ツールを使いましょうね。
ワークフロー
元データを線形回帰ツールに繋げるだけです(選択ツールで項目名を英字にしています)。
線形回帰ツールの設定は項目の指定のみ。他の設定は何もしません。
結果
線形回帰の結果は、RアンカーとIアンカーに閲覧ツールをつなぐことで確認できます。今回は最低限の解説をするため、Rアンカーのレポートだけ見ます。
このレポートで「これだけは見とけ」という部分は8行目の2つの値です(他の値は本エントリではぶっ飛ばします)。
p値
8行目の最後に記載されている数値です。これは別名有意確率といいます。結論だけ先にいうと、低いほど良いです。
今回の結果は8.288e-07
となってます。これは8.288(8.29とします)のマイナス7乗という意味なので、p値は0.000000829
となり、かなり低い(良い)といえます。
p値は、「本当は原因(今回でいう気温)は結果(今回でいう販売量)に影響を与えてはいないんじゃないか」という値です。シンプルにいうと「偶然じゃね?」っていう確率でしょうか。
逆にいえば、p値が低いほど「この回帰式は偶然ではない」といえます。つまり、データ間に関係(法則)がある確率が高いということになります。
決定係数(R2乗)
8行目はp値以外に、「決定係数R2」という数値があります。
これは、簡単にいうと、今回求めた数式の精度を表します。0〜1の間をとるもの(つまり、1に近いほど、値が回帰方程式に当てはまりやすい)なので、今回の値はなかなかいい方だといえます。
(おまけ)Tableauで単回帰分析を行う
実は今回のような単回帰分析なら、Tableauでも簡単にできます。
本エントリ冒頭のような散布図を作成したあと、アナリティクスの傾向線をドラッグするだけで、回帰線が引けます。
さらに、線を右クリックして出てくるメニューから、傾向モデルの詳細を見ることができます。
Alteryxで行った分析と同じ数値ですね。
データが既に前処理されていて、後は単純な可視化だけ…という時はTableauでサクッとやるのも一つの手だと思います(見栄えも良い)。データの前処理も必要だったり、もっと複雑な分析も一緒に行うときは、Alteryxを使用するのがベストだと思います。
おわりに
次は重回帰分析をやりたいようなそうでもないような…。