はじめに
本記事は、情報数学や統計学を学んでいない方向けに作成した記事になります。そのため、かなり噛み砕いた説明になっております。
GLMとは「Generalized linear model」の略称で一般化線形モデルとも呼ばれている。結論から申し上げるとGLMは解析手法、ANOVA GLMは統計検定と全く別物です。しかし、ANOVA GLMではGLMでの理屈を使っているため、本記事では線形モデル(Linear model)→一般化線形モデル(GLM:Generalized linear model)→分散分析(ANOVA:Analysis of variance)→ANOVA GLMの順で説明します。
線形モデル(Liner model)とは
今回、とあるコンビニの販売実績例を挙げて説明する。例えばQiitaコンビニのA駅前店の今週の野菜ジュースの販売個数から来週の販売個数を予測するとします。今週の販売個数を以下のようだと仮定します。
日曜日 | 月曜日 | 火曜日 | 水曜日 | 木曜日 | 金曜日 | 土曜日 |
---|---|---|---|---|---|---|
300[個] | 200[個] | 200[個] | 250[個] | 300[個] | 400[個] | 400[個] |
この表をグラフにすると下記のようになります。
このグラフを見ると、来週の販売個数も同じように月、火曜で販売個数が下がり、木曜日あたりから販売個数が増加する予測が立てられます。このようにして分析する手法を線形モデルでの分析と言います。例として数式にすると以下のようになります(この数式はあくまで例です)。
y = x(t)
これは理論としては間違っていません。しかし、来週の販売個数は今週と全く同じ推移を示すでしょうか?。例えば、「今週の月曜日と火曜日の天候は台風だった」とするとどうでしょうか? 来週も台風なら同様の推移になるかも知れませんがどうでない場合はおそらく異なる推移になることは検討がつきます。また、別例として「木曜日に人気Youtuberがその野菜ジュースを商品紹介していた」とするとどうでしょうか? 今週の木曜日から土曜日にかけての増加傾向は人気YoutuberのPR効果であり、来週の木曜日から土曜日に全く同じ規模の増加傾向が発生するとは言い切れないでしょう。このような背景があると来週の販売個数の予測値は大幅に外れてしまいます。
一般化線形モデル(GLM:Generalized linear model)とは
一般化線形モデルは、線形モデルを拡張し、より予測値の精度を向上させるための手法です。ではどのように拡張し予測値を向上させるのでしょうか。
線形モデルでは今週の販売個数の推移から来週の販売個数を予測するといったものでした。しかし一般化線形モデルでは、この販売個数の推移に加え「天気」や「SNSでの反響」、「販売価格」などを販売個数に直結する要因を予測する際に含めます。これを説明変数と呼びます。しかし、各説明変数が販売個数にどれだけの効力があるのかを考慮する必要があります。例えば、いくら超人気Youtuberが総動員でその野菜ジュースを商品紹介したとしても、今世紀最大規模の台風が上陸した日には買いに行きたくないですよね。このような、各説明変数が販売個数(目的変数)にどれだけ関与しているかを示した数が回帰変数とか確率変数と言います。例として数式にすると以下のようになります(この数式はあくまで例です)。
y = a_1x_1(t)+a_2x_2(t)+...+a_nx_n(t)
この数式からすると$a$が確率変数、$x(t)$が説明変数になります。これにより線形モデルより計算は複雑になりますが、予測値の精度は格段に上がります。このように、先述の線形モデルをより一般的に使える形にするために様々な要因を考慮して予測することを一般化線形モデルと言います。
- 一般化線形モデルの解析手法例
- ・重回帰分析
- ・ロジスティック回帰分析
ANOVA GLM
次にANOVA GLMについて説明します。その前にANOVAとは何でしょうか?ANOVAはAnalysis of varianceの略称で日本語で分散分析と言います。データサイエンス分野ではモデル検証やデータ解析後に行う統計検定として使われます。
例えば、AクラスとBクラスのクラス間でテストの点に差があるかどうか調べる時、それぞれのクラスの平均点を算出して比較すれば容易です。しかし、下記の図のように両クラスの平均点が同じでAクラスは全員が平均点周辺の点数ばかり、Bクラスは高い人もいれば極端に低い人もいるこの場合どうでしょうか?このように両群の差を見る場合単純な平均点ではなくそれぞれの群間で評価する必要があります。
引用:https://www.meiji-u.ac.jp/md-medinfo/lecture/med_stat/med_stat2
Aクラスのスコアの分布とBクラスのスコアの分布をA群、B群として、これらの群間差を評価することで平均値で評価する以上の精度でAクラスとBクラスの点数の差を評価できるようになります。このように2群間の差を求める分析手法を分散分析(ANOVA:Analysis of variance) と言います。
しかし、これはさらなる応用が可能です。先程のコンビニでの野菜ジュースの販売個数の話に戻ります。ANOVA解析を使えば、A店とB店の販売個数の推移の差を算出できます。しかしこのANOVAを拡張することで、A店の中でも販売個数に影響を与えている要因の相互作用を算出することができます。この要因をGLMで設定されたパラメータと同じパラメータを使用する解析手法をANOVA GLMと言います。先ほどあげた要因は「天気」「SNSの反響」「販売価格」としました。全部で3個のグラフが描画できます。
① 縦軸:販売個数 横軸:天気
② 縦軸:販売個数 横軸:SNSの反響
③ 縦軸:販売個数 横軸:販売価格
これらが「販売個数」という指標を軸として一つ(四次元)のグラフに描画する理屈が一般化線形モデルです。(以下がわかりやすい図です。)
引用:http://www.snap-tck.com/room04/c01/stat/stat07/stat0701.html
「天気」「SNSの反響」「販売価格」の相互作用を確認するためにまず、
① 縦軸:販売個数 横軸:天気
② 縦軸:販売個数 横軸:SNSの反響
③ 縦軸:販売個数 横軸:販売価格
の分散を算出します。次に①と②の分散の差を計算します。もし、この分散の差が大きいと①と②はそれぞれ別の情報を持っていることになるため、相互作用量が大きいことになります。今回の例だと、①と②の分散の差の差が大きいと販売個数を説明するのに①だけでは情報量が足りないということになります。もし、分散の差が小さいとこれらの要素は同じような情報を保持しているため、どちらかだけでも十分に説明ができるということになります。今回例として、①と②で比較しましたが、これらをできる組み合わせ全てで行います(①vs③、①vs②、②vs③ etc)。そうすることで、ANOVA解析だけでは、群間差のみしか算出できなかったが、GLMのパラメータを含めることで相互作用まで評価できるようになります。まとめるとANOVA GLMとはGLMと同じ説明変数をパラメータとして、各要素間の相互作用を解析する分析手法です。