53 予測
翌日、トロワ姫への講義の時間となった。
ソラが会議室で待っていると、トロワ姫が侍女を連れてやってきた。侍女は防音の魔導具をテーブルの上に置き、部屋の隅に移動する。
トロワ姫は奥の席に座るやいなや、口を開く。
「昨日の宿題はなんじゃ。ヒントの出しすぎじゃろ。一番面白そうなところを明かしおって」
ソラは、恐縮して、申し訳ございませんでした、と応じた。
「して、今日の講義は何じゃ?」
「最初にデータ分析の補足として、傾向についてお話しした後、データに基づく予測を説明いたします」
ソラは、そう言って、講義を始める。
「主成分分析で実感いただいたと思いますが、データにはある種の法則性が隠れていることが多いです。ここでは、それを傾向と呼びます。傾向をうまく捉えることが、データ分析では重要となります」
トロワ姫は、そうじゃの、と同意した。
「この観点からは、主成分分析は、データを低いランクの行列で近似すると、そのデータの傾向を表すであろう、というモデルと言えます。与えられたデータにうまく当てはまっているかどうかは、散布図などで確認できます。例えば、一つの直線の周りに点が集まっていれば、うまく傾向を捉えていると分かります」
ソラは、一息おいて続ける。
「この考え方を、データの一つの特徴を他の特徴から予測する問題に適用します。例えば、昨日の王都近郊の10か所の町のデータを使って、町の人口と自営業率から、その町の税収を予測するような問題です」
トロワ姫は、興味深そうに、ほう、と身を乗り出した。
「ここでは、他の特徴の1次式で予測を行います。上記の税収予測であれば、第一の係数、掛ける、人口、足す、第二の係数、掛ける、自営業率、という式になります。つまり、税収にはこういう傾向があると想定するモデルです」
「係数はどうやって決めるのじゃ?」
トロワ姫の質問に、ソラは淀みなく答える。
「与えられたデータの税収の予測の場合でしたら、10か所の町のデータを使い、税収をできるだけ正確に表すように決めます。具体的には、町ごとの税収の誤差の2乗を足し合わせたものを評価基準Jとし、Jが最小になる係数を求めます。こういった考え方を最小二乗法と呼びます」
評価基準Jは、(A掛けるx、引くy)のノルムの2乗、と表される。ここで、Aはサイズがm掛けるnの行列で、mか所の町の人口と自営業率を標準化して並べたもの。xは、求めるべきn個の係数からなるベクトル。yは、町の税収を標準化して並べた、要素がm個のベクトルである。
町のデータでは、mは10、nは2である。ソラは、他のデータにも適用できるように、m、nを一般の正整数として、最小二乗法の説明を始める。
「ここで、行列Aをフルサイズの特異値分解して、U掛けるΣ掛ける、Vの転置と表します。Uはサイズがm掛けるmの直交行列、Σはサイズがm掛けるnの対角行列、Vはサイズがn掛けるnの直交行列です」
ソラは説明を続ける。
Vの転置、掛けるx、をpと置き、Uの転置、掛けるy、をqと置けば、評価基準Jは、(Σ掛けるp、引くq)のノルムの2乗に等しくなる。Aのランクをrとする。Σの対角要素である特異値とp、qの各要素を用いれば、評価基準Jは以下の項の2乗をすべて足し合わせた値として表される。
・1番目の特異値、掛ける、pの第1要素、引く、qの第1要素
:
・r番目の特異値、掛ける、pの第r要素、引く、qの第r要素
・qの第(r足す1)要素
:
・qの第m要素
従って、評価基準Jを最小にするpは、1番目からr番目の要素までは、対応する特異値の逆数をqの対応する要素に掛けたものになる。(r足す1)番目からn番目までの要素はいくつであってもJに影響しない。このとき、Jの最小値は、qの(r足す1)番目以降の要素の2乗を足し合わせた値になる。
ここで、対角行列Σに対して、擬逆を導入する。一般化逆行列とも呼ばれるが、簡単のため、擬逆と書く。対角行列Σの擬逆とは、サイズがn掛けるmの対角行列で、対角要素を元の逆数に置き換えたものである。元の対角要素が0ならば0とする。
評価基準Jを最小にするpは、rがnよりも小さい場合には一つに決まらない。しかし、pの(r足す1)番目からn番目の要素をすべて0に選べば、Jを最小にするpの中でノルムが最小になる。このpは、Σの擬逆、掛けるq、に等しい。以降では、このpを評価基準Jの最小値を与えるpの代表として扱う。
ソラは評価基準Jを最小にするxについてまとめる。
「結局、Jを最小にするxの中で代表のxは、Aの擬逆、掛けるy、と表せることが分かります。ただし、Aの擬逆とは、V掛ける、Σの擬逆、掛ける、Uの転置、です。xのノルムとpのノルムは等しいので、このxはJを最小にするxの中でノルムが最小になります」
ソラは、魔導帳票ツールの画面をトロワ姫に示した。
「10か所の町データを使い、この方法で人口と自営業率から税収を予測した結果をご紹介します。表示は小数点以下第三位を四捨五入しています」
税収真値 税収予測値 予測誤差
-1.52 -1.55 -0.02
-1.15 -1.04 0.11
-0.87 -0.86 0.01
-0.13 -0.44 -0.31
-0.32 0.17 0.49
0.14 -0.25 -0.40
0.07 0.35 0.28
0.69 0.77 0.08
1.24 1.30 0.06
1.85 1.55 -0.30
トロワ姫は画面を見て、感想を述べる。
「予測がかなり当てはまっている町と外れている町があるのお」
「人口と自営業率の1次式で税収を予測するモデルは、半分程度の町にしか当てはまらないと言えます。予測に用いる式をもっと複雑なものにすれば、予測誤差は減ります」
ソラの説明に納得できず、トロワ姫は反論する。
「税収は基本的には人口の定数倍で増えるもんじゃ。たとえ、人口の10次式で予測誤差が0になったとしても、それが適切なモデルとは到底思えんがの」
トロワ姫の鋭い指摘に、ソラは感心した。
「ご指摘の通りです。データの特徴に関してなんらかの知見がある場合には、それを取り入れたモデルにすべきです。なお、モデルの良さを定量的に評価する方法として、別のデータを用意するやりかたがあります」
「別のデータと申すか」
「はい。予測式を作るときのデータを訓練データと呼びます。訓練データとは別に、検証データを用意して、モデルの良さを評価します。そうすれば、人口の10次式は全くダメということが定量的に判定できます」
「訓練データにたまたま当てはまるだけの複雑なモデルを除外できるというわけじゃな」
「その通りです」
ソラは、検証データを紹介したあと、予測が外れる町について付け加える。
「予測が外れる町のデータのことを外れ値と呼びます。外れ値が発生する原因は様々です。さきほど述べたのは、モデルが単純すぎる場合ですが、その他にもデータが間違っているとか、町の特性が違うといった原因も考えられます」
「どんな間違いがあるのじゃ?」
「担当者の単純なミス、集計方法の違い、不正報告、なんでもありえます」
ソラの回答を受けて、トロワ姫は、そうか、不正か、と思案顔を浮かべる。
「町の特性とはなんじゃ?」
「例えば、平民主体の町と貴族主体の町では、人口が同じでも税収は異なります。この場合、貴族の割合という特徴を加えた予測式に修正すれば、予測誤差は減ると見込まれます」
ソラの補足に、トロワ姫は、外れ値にも使い道があるんじゃな、と感慨深そうにつぶやいた。
擬逆を使った最小二乗法の基本的な話が終わり、講義は応用的な話題に移る。
「最小二乗法の基本はこんな感じです。あとは具体的な問題に使うときの留意点をいくつかお話しします」
ソラは、そう言った後、留意点を箇条書きにした。
1:低ランク近似との組み合わせ
2:データの標準化との組み合わせ
「まず、低ランク近似との組み合わせです。これは擬逆を求めるときに、小さい特異値を0に置き換えることを指します」
ソラの説明に、トロワ姫は納得顔をした。
「なるほどのお。もし、低ランク近似がデータの傾向を表すのであれば、その擬逆を使う方がいい予測結果を与えるということじゃな」
「はい、低ランク近似することで、訓練データに対する予測誤差は悪化しますが、検証データに対する予測誤差が改善する可能性があります。改善するかどうかで、低ランク近似を採用すべきか判断できます」
次に、ソラは、データの標準化との組み合わせについて述べる。
「データの行列を低ランク近似すると、評価基準Jを最小にする係数の組は一つに決まらなくなります。擬逆では、係数を並べたベクトルのノルムが最小となるものが選ばれますが、データの標準化と組み合わせる場合、擬逆が最も良いと考えられます。その根拠を説明いたします」
ソラは、一息おいて続ける。
「データを標準化する背後では、各特徴は平均付近の値を取りやすく、平均からの逸脱は標準偏差で測ると同じ程度だろうと想定されています。低ランク近似で、差異を2乗和で測るのも、そのためです。予測の問題について言えば、この観点からは、予測の係数は0に近いほど望ましいことになります」
「0に近い値を出しやすい無難な予測ほど、よく当たるということじゃな」
「はい。ですから、この想定が当てはまる場合には、データを標準化して擬逆を使うのが最も良いと言えます。逆に言えば、貴族の町と平民の町のようにデータが二群に分かれているような場合には、この想定が当てはまりませんから、単純に標準化せずに、データを分けて分析すべきです」
トロワ姫は、分かったのじゃ、と応じた。
「ちなみに、この考えを推し進めると、評価基準Jが最小から多少ずれることを許容してでも、予測係数の絶対値を小さくするという方法になります。データの傾向を捉えるために、データ分析では、検証データを用いて、いろいろな方法での予測結果を比較検討することが望ましいです」
最小二乗法の応用的な話の説明が終わった。
「何か質問はございますか?」
ソラが促すと、トロワ姫は気になっていたことを口にする。
「行列の低ランク近似では、特異値分解の取り方によって結果が変わることがあったが、行列の擬逆ではどうじゃ?」
トロワ姫の質問に、ソラはこともなげに答える。
「行列Aの特異値分解の取り方によって、二つの擬逆BとCが作れたと仮定します。BもCも評価基準Jを最小にする中でノルムが最小のxを与えます。どんなyに対しても、B掛けるy、と、C掛けるy、が等しくなりますので、結局、BとCは等しくなります。つまり、擬逆は一つに決まります」
トロワ姫は、なるほどのお、と返した。
講義の最後に、トロワ姫は感想をつぶやく。
「擬逆を使った最小二乗法は、考え方が素直で色々使えそうだの。どんぶり勘定を置き換えたいのお」
ソラは、あわてて耳をふさぎ、王家の秘密を話されないようにお願いします、と応じた。
トロワ姫は、笑いながら、今のは忘れるんじゃ、とソラに告げた。




