以下のデータから、2022年以降の売上部数を予測してみます。 (新たに、高齢化の影響を評価するために、各年の60歳以上人口=oldを変数に追加しました)
データ項目 | 説明 |
---|---|
年 | 年(今回、年度と年は同一視した) |
price | 価格 |
page | ページ数 |
sales | 売上部数(目的変数) |
lawyers | 各年の弁護士数(日弁連による) |
cases | 各年の事件数(最高裁による。全裁判所の新受全事件数) |
GDP | 各年の実質GDP(単位:10億円) |
pop | 各年の人口(単位:1000人) |
applicants | 各年の法科大学院志願者数 |
old | 各年の60歳以上人口(単位:1000人) |
※EDAとは、データモデルを前提とせず、データをできるだけあるがままに観察することから出発して試行錯誤を行うデータ分析の手法です。
まずは単純な時系列の推移を見てみます。
青のラインのsalesと同じ方向、あるいは逆の方向に動いている変数はどれかを視覚的に見てみます。
すると、順方向に動いている要素としては、cases(事件数)、applicants(法科大学院志願者数)が目に付きます。
逆方向に動いていそうな要素としては、lawyers(弁護士数)、old(60歳以上の人口)があります。
次に全変数の相関を見てみます(相関行列)。
相関行列については、以下のような説明ができます。
複数の変数を指定し、2変数間の組み合わせ全てについて単相関係数を求め相関行列を出力します。 単相関係数は、2つの変数の共分散をこれらの標準偏差の積で割った値です(2変数間の相関関係参照)。相関係数は-1以上1以下の値をとります。1に近いほど正の相関が強く、一方の値が大きいときには他方の値も大きくなることを意味します。逆に-1に近いほど負の相関が強く、一方の値が大きいときには他方の値が小さくなることを意味します。変数間の関連性が弱い場合には相関係数は0に近くなります。(エクセル統計)
上図において、正の相関がある変数は、赤で表示されています。赤の濃い変数ほど正の相関が強い変数となります。反対に、負の相関は青で表現されており、青みが強ければ強いほど負の相関が強いことを示します。
上図を見ると、salesとの間で正の相関が強いのは、applicants(法科大学院志願者数)、cases(事件数)です。
他方、負の相関が強いのは、price(価格)、old(60歳以上人口)、lawyers(弁護士数)です。
つまり、事件数や法科大学院志願者数が増えると売上も増える、他方、価格が上がり、弁護士数や60歳以上人口が増えると売上は減る、ということが言えそうです。
salesを被説明変数に、上記のapplicants、cases、price、old、lawyersを説明変数にとり、線形回帰分析を実施しました。
線形回帰分析の説明は以下のようになります。
線形回帰分析は、1つ以上の既知の変数から連続変数の値を予測(推定)しようとするものです。解析に用いる既知の変数が1つの場合は「単」回帰分析、既知の変数を複数組み合わせて用いる場合は「重」回帰分析と呼ばれます。線形回帰分析では、散布図に「最小2乗回帰」を「適合させる」ことによって相関分析を行います。最小2乗回帰直線とは、すべてのデータポイントからできる限り距離を最小にするように描いた直線のことです。実際には、各データポイントから直線までの距離を2乗した「2乗和」を最小となるように描いた直線で、通常はデータを最も適切に要約するとされる「最小2乗直線」です。(Ronbun.jp)
線形回帰分析は、上述のように変数間に、
y = ax1 + bx2 + cx3...+z
といった線形の関係を想定した予測となります。
applicants、cases、old、priceが増加すると売上も増加する、という関係性が見いだされました。
また、lawyers(弁護士数)、price(価格)が増大すると、売上は減る、という関係性も見られます。
ただし、applicants、old、priceはP値が高く、偶然である可能性が高いことがわかります(このP値の説明は正確な説明ではありません。以下同)。
また変数同士の関係が強い場合、多重共線性の問題が起きます。
統計学において、多重共線性(単に共線性とも略される)とは、重回帰モデルにおいて、説明変数の中に、相関係数が高い組み合わせがあることをいう(例:体重とBMI)。Wikipedia
先の相関行列で、applicantsとcasesの相関係数は0.95、oldとpriceの相関係数は0.98と高いので、これらの変数のうち、どちらかを除かないと正しい結果が得られません。
今回は、casesとpriceを除き、applicantsとlawyers、oldで再度分析を行います(※)。
すると以下のような結果となりました。
applicants、oldが増えると売上も増える、lawyersが増えると売上は減る、という関係性が見いだされましたが、oldのP値が高く、偶然である確率が高いことが伺われます。
そのため、oldを除き、applicantsとlawyersで再度分析を行ってみます。
今度は、どちらの変数もP値が低く、偶然であるとは考えにくいことがわかります。
変数同士の関係を式に表すと、下記になります。
y = 0.151x1 − 0.729x2 + 46068.95
予想売上部数 = 0.151x法科大学院志願者数 − 0.79x弁護士数 + 46068
すなわち、
法科大学院の志願者が1人増えると、0.15部売上が増える。弁護士が1人増えると、0.8部、部数が減る
ということがわかります。 法科大学院の今後の志願者数は不明ですが、弁護士数については、日弁連が将来予想を発表しています(弁護士白書2020年版)。
これによると、弁護士の数は2047年までは右肩上がりに上昇を続ける見込みです。
というわけで、前掲の式に、法科大学院の志願者数(一定とする)、弁護士の予測数を代入すると、以下のような売上予測が得られる。
なお、上式の決定係数は0.97で、売上の変動の97%を説明できている、という解釈になります。
今回は司法試験志願者数は不変と仮定しましたが、むしろ減る方の可能性が高いかもしれないので、下振れはさらに大きくなります。
とはいえ、マイナスの値、というのは現実的ではない気もします。他のモデルの検討の余地を探ってみます。
(※)のところで、他の変数を選んだらどうなるでしょうか?
casesとlawyersで分析を行ってみると、以下のような結果となりました。
この分析では、casesのP値が非常に高く、不適切である可能性が否定できません。
では、casesとlawyers、oldではどうでしょうか。
今回はP値的には問題なさそうです。 統計モデルを比較する評価基準の一つである赤池情報基準(AIC)を見てみます。
赤池情報量規準 Akaike's information criterion / AIC 統計的モデルの予測性の良さを、観測値と理論値の差(残差)を用いて評価する統計量。値が小さいほど当てはまりが良いと言える。(統計学WEB)
精緻化(2)(法科大学院志願者数と弁護士数が説明変数)のAICは、下記のように295です。
他方、精緻化(4)(事件数、弁護士数、 60歳以上人口)のAICは、下記のように470です。
AICは小さい方が良いモデルとされているので、精緻化(2)の方がよいモデルということになります。
ARIMAとは、統計学における時系列解析の手法の一つです。
統計学や計量経済学、特に時系列分析において、自己回帰和分移動平均(じこかいきわぶんいどうへいきん、英: Autoregressive integrated moving average、略称: ARIMA)モデルは、自己回帰移動平均(ARMA)モデルの一般化である。これらのモデルは、データの理解を深めるため、または将来のポイントを予測するために、時系列データに適用される。(Wikipedia)
線形回帰と違うのは、グラフの変化の形しか見ていない(線形回帰は個々のデータポイントと目的変数の関連を見ているのに対し、ARIMAはt-1時点の自分のデータとの関連を見ている)点です。
またExploratoryのARIMAはR言語のARIMAを利用しており、自動的にパラメータの数値を決めてくれるAutoARIMAという仕組みを持っています。
このARIMAを使って、予測をしてみます。
上記の forecasted_value
が予測値です。 こちらを見ると、2021年は16,399部、2022年は15,311部と、線形回帰より緩やかなカーブになっていることがわかります。
ただ、赤池情報量基準値を見ると、下記のように436となっており、線形回帰分析(精緻化2モデル)の295を上回っています。そのため線形回帰の方がよいモデルと言えそうです(赤池情報量基準だけで判断するのは不適切で、ベイズ情報量も併用すべしとものの本にはありますが、今回の場合についてはBICも同様の傾向でした。以下同)。
ここまでは統計学の範疇でしたが、機械学習でも予測してみます。 Prophetは元Facebookの技術者が開発した機械学習のライブラリーで、広く使われています。
ProphetにはARIMAと異なり、説明変数を使った予測と使わずにグラフの形だけで構成する予測がありますが、まずはグラフの形だけの予測を実施してみます。
こちらは、ARIMAよりも厳しい結果となりました。予測では、2028年に部数はゼロとなります。
統計学的手法と異なり、Prophetの場合、他のモデルと比較する基準がないのですが、
RMSE (Root Mean Square Error) : 予測からのずれの二乗の平均のルート MAE (Mean Absolute Error) : 予測からのずれの絶対値の平均 MAPE (Mean Absolute Percentage Error) : パーセントで表した予測からのずれの絶対値の平均 (ソース)
とのことで、
ということが言えます。
Exploratory Data Analysis(EDA)や統計分析、機械学習を簡単に行うためのSaaS(サース)製品です。
開発者は元オラクルのデータアナリティクス責任者(日本人)で、本社はシリコンバレーにあります。
以下のような企業に導入されています。
Tableauのようなビジュアリゼーション、ダッシュボード作成機能に加えて、統計学、機械学習のさまざまな手法による分析をノンコードで実行できるのが特徴です。
バックエンドは、オープンソースの統計解析用言語、R言語です。R言語は、Pythonと並んで、統計解析、機械学習の世界でデファクトスタンダートとなっているプログラム言語で、最先端の手法が常に最初に入手できます。
PythonとR言語の違いですが、前者が汎用的で統計解析以外にも使えるのに対してR言語は統計解析に特化していること、また実務家よりアカデミシャンに好んで使われており、学術分野での活用が進んでいることが特色です。
統計学の研究はその説明能力が問われる(理由が説明できなくてはならない)のに対して、機械学習では現実世界での応用力、実装が重視される傾向にあります。
R言語は前者に、Pythonは後者に強みを持っています。学問としての統計学の新しい手法等はまずR言語で実装され、それがPythonに移植されることが多く、機械学習での新手法はPythonが先行します。
データサイエンティストは両言語をうまく使い分けている人が少なくありません。