Linear Regression(線形回帰) | Alteryx Predictive Tools 道場 Advent Calendar 2018 #08
はじめに
データ加工・準備・分析からレポート作成までをワンストップで提供するデータ分析プラットフォーム「Alteryx」には250種類を超えるツールと様々なサンプルワークフローが提供されています。
今回はそのなかでも興味はあるものの、何をやっているのか理解し難いサンプルとして定評のある「Predictve Alanysis(予測分析)」のサンプルワークフロー25種を弊社データインテグレーション(DI)部のメンバーが、アドベントカレンダー形式で順番に紹介しています。
それが今回実施している『Alteyx Predictive Tools 道場 Advent Calendar』です。
- クラスメソッド Alteryx Predictive Tools 道場 Advent Calendar 2018 - Qiita
- Alteryx Predictive Tools 道場 Advent Calendar | シリーズ | DevelopersIO
当エントリはその8日目、Linear Regression(線形回帰)について紹介するエントリです。
実行環境とサンプル起動
本エントリには、以下の環境を使用しています。
- macOS Mojave バージョン10.14.1
- VMware Fusion 10.1.4
- Windows 10 Pro バージョン1803
- Alteryx Designer 2018.4 Admin Version 日本語インストール + Alteryx Predictive Tools
Alteryx Designerを起動して、 メニューから Help > Sample Workflows > Predictive Analysis > 8 Linear Regression を選択します。 Predictive Analysisのサンプルがない場合は、Windowsのアプリと起動メニューから、Alteryx Predictive Toolsのインストールが正しく完了できているかを確認してください。
サンプル概要
このサンプルワークフローでは、線形回帰、割当解析、およびネスト化したテストの各ツールを使用する方法を示しています。この例では、メジャーリーグの各野球チームの打撃統計データに線形回帰アルゴリズムを適用させて、試合毎の平均得点数を予測しています。
このサンプルでは以下のツールを使っています。
- Input(データ入力)
- Associate Analysis Macro(割当解析)
- Linear Regression Macro(線形回帰)
- Nested Test Macro(ネスト化したテスト)
- Browse(閲覧)
Input(データ入力)
入力ツールを使用して、分析のためのデータを入力します。メジャーリーグの各チームにおける成績のデータです。このデータは、米国野球研究協会(SABR)から提供されたもの、とのことです。
今回のサンプルで出てくる要素(カラム)の意味は以下になります。
カラム名 | 意味 |
---|---|
G | シーズン中実施試合数(Games) |
R | シーズン通算得点(Runs) |
R_G | 試合毎の平均得点(G/R) |
HR | ホームラン数(Home Run) |
RBI | 打点数(Runs Batted In) |
BB | 四球数(Bases on Balls) |
SO | 三振数(Strike Out) |
OBP | 出塁率(On Base Percentage) |
SLG | 長打率(SLuGging percentage) |
OPS | オーピーエス(OBP + SLG) |
Associate Analysis Macro(割当解析)
サンプルの入力データには沢山の要素があり、どの要素が得点に強く関係するかはわかりません。そこでまず割当解析ツールを使用して、どの要素が得点に関係あるかの相関係数を調べます。割当解析ツールに関しては、下記エントリを参照ください。
調べたいのは試合ごとの得点なので、目的変数にR_Gを設定し、得点に結びつきそうな下記の要素をピックアップしています。
- HR(ホームラン数)
- RBI(打点数)
- BB(四球数)
- SO(三振数)
- OBP(出塁率)
- SLG(長打率)
- OPS(オーピーエス)
ピアソンの積率相関係数を求めた結果が以下です。
Association Measureの値は1に近いほど強い関連性があるのですが、RBI(打点数)とOPS(オーピーエス,出塁率+長打率)に強い相関関係が見られます。SLG(長打率)にもそれに準ずる相関関係が見られます。またp-value(p値, 有意確率)は、偶然による影響で違いが出た確率、やや乱暴な言い方をすると「たまたまこうなった」確率を表しており、この値が小さければ小さいほど信頼度は高いということになります。見てみるとRBIやOPSのp値はとても低い値を示しています。
さて、ここでRBIについて考えてみます。チームの得点とRBIには強い相関があるということですが、得点が入ったら打点も記録されるのは当たり前の話ですよね。そこでRBIについては除外することにします。このように、データの持つ業務的な視点から要素を評価する事も必要となることがあります。
Linear Regression Macro(線形回帰)
線形回帰とは、かなりざっくりした言い方をすると、「ある値xと、関係がある値yの関係性をy=ax+bの直線式に求める事」となります。これによって、xが変化するとyがどのように変化するかを予測することができるようになります。下記記事を参考にしてください。
【初心者大歓迎!】線形回帰分析入門 ~ 最小二乗法から決定係数まで | 世界一やさしいデータ分析教室
線形回帰ツールを使用すると、このアルゴリズムを用いて単純なモデルを作成して値を推定したり、線形リレーションシップに基づいて変数間の関係を評価したりすることができます。
線形回帰ツールにモデル名を指定し、ターゲット変数をR_Gに設定して、予測変数を先の割当解析の結果を参考に選択します。最初の線形回帰ツールでは、予測変数にSLG(長打率)とOPS(出塁率+長打率)を設定します。
2つめの線形回帰ツールはOPSのみ設定します。
実行後、それぞれの結果を確認します。まず、予測変数にSLG+OPSを設定した側の結果です。
結果中のEstimateにおける値が直線回帰した関数の傾きを表しており、Interceptが切片を表しています。従って、SLGが1上がればP_Gが約3下がり、OPSが1上がればP_Gも約16上がると示しています。
また、Pr(>|t|)も参照してみます。この値は予測変数が0だった時に比べて有意に差があるかを見ています。 その変数を使わなくてもいい時ほどこの数値が高くなり、直感的に理解しやすいように、右側に*
の数でも重要度を示しています。SLGの値はOPSに比べるとだいぶ大きく、*もありません。
次に、予測変数にOPSのみ設定した側の結果です。
同様に見てみると、OPSが1上がればP_Gも約14上がると示しています。
Nested Test Macro(ネスト化したテスト)
ここまでで2つのパターンで線形回帰モデルを作成しましたが、ネスト化したテストツールを使用して、作成した2つのモデルが予測能力の点で統計的に同等かどうかを確認します。ちなみに比較する2つのモデルのうち、多い予測変数を持つ方を「フル」モデルと呼び、予測変数のサブセットを含むモデルを「縮小」モデルと呼びます。このツールには特にパラメータの設定はありません。
Browse(閲覧)
ブラウズツールを使用して、ネスト化したテストの結果を確認します。
表示上のFはF値を意味しており、級間の平均平方を級内の平均平方で割った値です。最後のPr(>F)は得られたF値をF分布に適用したときに得られるp値を示しています。この結果を予め設定しておいた有意水準と照らし合わせ、差異があるとみなすかどうかを判断します。
さいごに
『Alteyx Predictive Tools 道場 Advent Calendar』、今回Linear Regression(線形回帰)のサンプルについてご紹介しました。明日、9日目は兼本による「Logistic Regression(ロジスティック回帰)」の予定です。お楽しみに。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。