51 見取り図
会議後、王宮の会議室で、トロワ姫への講義が始まった。
トロワ姫は、ソラに向かって話しかける。
「して、今日の数学の講義は何じゃ」
「はい、特異値分解を使ったデータ分析の話です。今日の講義では魔導帳票ツールを使います。お持ちいただけましたか?」
トロワ姫は、ああ、と言って、部屋の隅で待機している侍女に目配せする。侍女はカバンから板状の魔導具を取り出して、テーブルの上に置き、再び部屋の隅に戻った。
その魔導具は、王族のエンブレムが取り付けられている特別版であった。
――さすが王族、魔導具も特別製だ。
ソラは感心しつつ、自身の魔導帳票ツールを起動し、講義で使用するデータをトロワ姫に送った。
「何か送られてきたのじゃ」
トロワ姫の声に対して、ソラは目的を伝える。
「殿下、今日はそのデータを使って、主成分分析を行います。データの見取り図を作り、データの持つ構造を分かりやすく表します」
ソラは、データの説明を始める。
「これは、先日お借りした資料から、王都近郊の10か所の町の人口、税収、自営業率を抜き出したものです。人口の単位は千人。税収の単位は年あたり億円。自営業率の単位はパーセントです。表示では、小数点以下を四捨五入しています」
名 人口 税収 自営業率
A 8 72 50
B 8 84 44
C 9 94 46
D 9 118 41
E 10 112 38
F 10 127 43
G 11 125 40
H 11 145 35
I 12 163 33
J 12 184 30
ソラは、続けてデータの標準化について述べる。
「人口、税収、自営業率は、単位が異なりますので、データ分析の前にその影響を除く必要があります。一番簡単なのは、平均を引いて、標準偏差で割ることです。これを標準化と言います」
「ちょっと待つのじゃ。平均は分かるが、標準偏差とはなんじゃ」
トロワ姫の質問に、ソラは淀みなく答える。
「三つの特徴それぞれについて、全部の町に対して、平均との差の2乗を足し合わせて、それを町の数で割って、ルートを取ったものです。平均の周りにどのくらい広がっているかを表す尺度です」
トロワ姫は、少し考えてから念押しする。
「とすると、このデータでは人口が8千から1万2千じゃが、代わりに、4百から6百に替えてもいいということかの」
トロワ姫の指摘に、ソラは同意する。
「はい。今回の分析では、人口の大きさ自体には関心がなく、税収や自営業率との関係を分かりやすく示すことが目的です。もし、人口の大きさを調べるデータ分析でしたら、もちろんこのような標準化は行いません」
「分かったのじゃ」
ソラは、データを標準化して、その結果を行列Aと置いた。Aのサイズは10掛ける3、行列の要素はすべて実数である。
「標準化されたデータからなる行列Aをフルサイズの特異値分解します。これは、魔導帳票ツールの標準的な機能で計算できます。これにより、サイズが10掛ける10の直交行列U、サイズが10掛ける3の対角行列Σ、サイズが3掛ける3の直交行列Vが得られ、U掛けるΣ掛ける、Vの転置、がAと等しくなります」
ソラは、特異値分解で得られたUとΣを掛けた行列を作る。特異値分解の定義より、この行列は、A掛けるV、と等しい。この行列の横の各行の3要素をそれぞれ空間内の点の座標値と見なし、合計10点を魔導帳票ツールの散布図で立体的に表示する。
「これは、各町の三つの特徴を座標変換した散布図です。ご覧のように、第一軸の周辺にデータが集まっていることが分かります」
トロワ姫は、ソラと同じ手順で散布図を作った。散布図を見ながらつぶやく。
「確かに第一軸では、マイナス3くらいからプラス3くらいまで幅広く点が分布しておるが、第二軸や第三軸ではマイナス0.5くらいからプラス0.5くらいの狭い範囲に収まっとるの。これだと、10個の点は、第一軸という一つの直線の上にほぼ乗っていると言えるのお。して、どういう座標変換なのじゃ」
ソラは、座標変換に用いた基底を説明する。
「特異値分解で得られた直交行列Vで定められる正規直交基底です。基底ベクトルは、それぞれ以下の通りです」
ソラは、Vに並べられた基底ベクトルを小数点以下第二位まで表示した。
第一軸:0.57、0.58、-0.57
第二軸:0.70、0.01、0.71
第三軸:0.42、-0.81、-0.40
ソラは、主成分分析の考え方を話し始める。
「主成分分析は、少ない指標でデータを説明することで、データの全体像を把握する手法です。今回の王都近郊の町の場合ですと、典型的な町というものを考え、実際の町はそれから多少ずれたものとモデル化して、ずれを無視して典型的な町の特徴を調べます」
「ああ、分かったぞえ。町の三つの特徴が厳密に第一軸に乗るような仮想的な町を典型的な町と呼んで、現実の町をそれで近似しようということじゃな」
ソラは、ご指摘のとおりです、と応じた。
「典型的な町における第一軸での座標値をtとすると、町の特徴は、t、掛ける、第一軸の基底ベクトル、になります。具体的に言えば、人口は、0.57掛けるt、税収は、0.58掛けるt、自営業率は、マイナス0.57掛けるt、です。各特徴は標準化されているので、マイナスの値も取ります。第一軸は、町の総合的な規模を表す指標と見なせます」
「とすると、典型的な町では、人口が増えれば、税収も増えるということじゃな」
ソラは、はい、その通りです、と述べ、トロワ姫の指摘に付け加える。
「殿下が指摘されたように、第一軸の基底ベクトルの要素の符号を見るだけで、特徴間にどんな関係があるかが分かります。人口が増えれば税収が増える以外の関係として、自営業率が下がると税収が増えることが分かります。こうなる理由の一つとして、自営業では税の捕捉率が低いことが考えられます」
トロワ姫は首をひねった。
「どういうことじゃ?」
「ボクも一時、会社勤めしていたので実感しましたが、会社員は収入の3割を源泉徴収で引かれるので、非常に税金が高く感じます。一方、自営業ですと、必要経費を除いた利益の3割を税金として確定申告すればよいので、節税が可能です。頑張って節税すると、感覚的には税金は半分くらいで済みます」
ソラは一息おいて続ける。
「自営業者は税金計算が苦手なので、これまではあまり節税を意識していなかったと思います。しかし、最近の魔導帳票ツールの普及や、我々のような節税を含めた業務改善の提案をする会社により、今後は王国全体で節税が流行すると見込まれます」
トロワ姫は、困った顔をした。
「税収が減るのは困るのじゃ」
ソラは慰めるようにトロワ姫に語り掛ける。
「人口が多くなると、自営業率は下がります。これは、会社組織にすれば、その規模を生かして業務を効率化できるため、3割の税金を払ってもお釣りがくるためと考えられます」
ソラは、大規模な業務の問題点を挙げるとともに、解決策を提示する。
「ただ、業務の規模が大きくなると、業務の全体像が人間には把握できなくなるので、数学的に業務を最適化する必要が出てきます。数覚スキルが発現された殿下を中心として、国が必要な支援を行えば、会社組織が発展して税収が上がるのではないでしょうか」
トロワ姫は、元気を取り戻し、分かったのじゃ、と声を上げた。
サンプルデータを用いた主成分分析が終わり、講義は主成分分析で選ばれる軸の性質の話に移る。
「さて、データ分析はここまでにして、主成分分析で選ばれる軸の数学的な内容について説明いたします。さきほど第一軸の周辺にデータが集まっているのをご覧いただきましたが、この性質は、このデータに限らず、一般的に成り立ちます」
ソラの解説に、トロワ姫は首をひねった。
「はて、どういうことじゃ?」
ソラは、トロワ姫の疑問に答えるため、説明の準備を始める。
横のサイズが1の行列を列ベクトルと称する。行列との掛け算において、列ベクトルはベクトルと同様に振る舞うので、ベクトルの代わりに用いることができる。ベクトルと見なしたとき、ノルムが1になる列ベクトルを単位列ベクトルと言う。
「正規直交座標系の第一軸を表す単位列ベクトルをyとします。データが正確に第一軸上に乗る場合、行列Aは、x掛ける、yの転置、の形に表せます。ここで、xは、町の数、一般にはサンプルの個数の要素からなる列ベクトルです」
「xの要素は、それぞれの町の第一軸上での座標値じゃな。さっきの典型的な町の場合じゃ」
ソラは、ご理解の通りです、と相槌を打った。
次に、ソラは、フロベニウスノルムと、それに基づく最良近似を導入する。フロベニウスノルムとは、行列の大きさを表す指標の一つで、各要素の絶対値の2乗を全要素で足し合わせた値のルートである。
ここでは、簡単にするため、行列のフロベニウスノルムの2乗を行列の2乗和と略記する。
「一般のデータでは、厳密に第一軸に乗るとは限りませんから、行列Aと、x掛ける、yの転置、は等しくなりません。ここで、両者の差異を差の行列の2乗和で測ることにします。このとき、主成分分析で選ばれる第一軸は、あらゆる軸の中で差異を最小にします。この性質を最良近似と言います」
「つまり、主成分分析では、軸の近くにデータが集まるように軸が選ばれているということじゃな」
トロワ姫の補足に、ソラは、ご指摘の通りです、と応じた。
ソラは、行列の最良近似の性質を行列のランクを使って言い換えることを試みる。そのため、まず特定の形の行列は、そのランクが1以下であると述べる。
「x掛ける、yの転置という形の行列は、そのランクが1以下になります。xかyの全要素が0の場合は、ランクは0です。そうでない場合、ランクは1です」
ソラは、ランクが1になる理由を以下のように説明した。
x、yをそれぞれのノルムで割って単位ベクトルにし、それと直交する単位ベクトルを追加して、直交行列に拡張する。これらの直交行列を用いると、x掛ける、yの転置は、正則行列、掛ける、対角行列、掛ける、正則行列の形にでき、対角行列で非0の要素は一つだけとなる。よって、ランクは1と分かる。
「行列のランクを使うと、さっきの性質は次のように言い換えられます。正方行列とは限らない任意の行列Aに対して、ランクが1以下で最良近似する行列は、Aを特異値分解して第一特異値だけを残したもので与えられます」
「第一特異値だけを残す、とはなんじゃ?」
トロワ姫の疑問はもっともである。第一特異値だけを残すとは、特異値分解で得られる対角行列Σで、第一特異値以外を0に置き換えて、行列の掛け算をやり直したものを指す。
「掛け算の結果の行列は、Uの左端の縦一列の列ベクトルuとVの左端の縦一列の列ベクトルvを用いると、第一特異値σ、掛けるu掛ける、vの転置、と表せます。σ掛けるuがさきほどのxに対応します。vは主成分分析で得られる第一軸を表します。この行列がAの最良近似になります」
トロワ姫は、感心したような表情を浮かべる。
「最良近似か。特異値分解には、面白い性質があるのお。して、この性質はどうやって証明するのじゃ」
トロワ姫の注文に、ソラは戸惑いつつ答える。
「この性質に関しては、なんとか証明できたので、それを紹介します。でも、長くなりますから、ちょっと休憩していいですか」
「分かったのじゃ」
トロワ姫が侍女に目配せすると、侍女はカップにお茶を入れて二人の前に置いた。
――これだけ長い証明は初めてだから、ちゃんと伝わるか心配だな。でも、師匠からヒントをもらったけど、こんな証明が一人でできるようになったのだから、証明が少しは視えるようになったということか。数覚スキルが伸びてきたようで嬉しいな。
ソラはあれこれ考えながら、カップを手に取り、口を付けた。




