数学

【君の知らない複式簿記】目次まとめ

【君の知らない複式簿記】とは

【君の知らない複式簿記】は毛糸ブログのシリーズ記事のひとつです。

資格試験や学校教育では通常習わないような、複式簿記の普段とは違う側面に焦点を当てた解説を行っています。

以下のようなキーワードを含んでいます。

  • 三式簿記(時制的三式簿記、微分的三式簿記、ブロックチェーン的三式簿記)
  • 行列簿記
  • 簿記代数(複式簿記の代数構造)

続きを読む

【再考察】外国通貨投資の期待リターン

FXや外貨預金に投資した際の期待リターンはゼロである、ということを、以下の記事で解説しました。

FXの期待リターン、億り人になれる確率、破産する確率【モンテカルロ・シミュレーション】

この記事では、裁定取引によるフォワードパリティと、カバー付き金利パリティという条件が成り立つとき、FX等の期待リターンはゼロであることを数式で示しています。

すなわち、他国通貨と自国通貨の金利差(インカムゲイン\(i_F−i_D\))と通貨高による増分(キャピタルゲイン\(E[s0,t]\))について

\begin{equation} \begin{split}
\left(i_F−i_D\right)+E[s0,t]=0
\end{split} \end{equation}

が成り立つので、外貨投資のトータルゲイン(インカムゲインとキャピタルゲインの和)はゼロと言えます。

フォワードパリティは成り立つのか?(投資家のリスク中立性の仮定は妥当か)

外貨投資の期待リターンがゼロであるという結論は、フォワードパリティとカバー付き金利パリティが成立するときに成り立つ主張です。

したがって、どちらかいずれかが成り立たない場合には、必ずしも「期待リターンはゼロ」といえなくなります。

実は、以下のフォワードパリティの式は、投資家がリスク中立的であるときには成り立ちますが、投資家がリスク回避的であるときには成り立ちません

\begin{equation} \begin{split}
F_T=E\left[S_T\right]
\end{split} \end{equation}

ここで\(S_T\)は将来時点\(T\)におけるスポット為替レート、\(F_T\)は現時点\(0\)において結ぶ時点\(T\)のフォワード為替レートで、\(E\left[\cdot\right]\)は期待値を表します。

この期待値がくせ者で、上記式は「現実世界の確率のもとでの期待値」を表しており、上記等式が成り立つのは投資家がリスク中立的(リスクに対して追加的なリターンを求めない)のときだけです。

現実の投資家はリスク回避的であり、フォワード為替レートは将来のスポットレートの「リスク調整済み確率の下での期待値\(E^*\left[\cdot\right]\)」として決まります。フォワード為替レートは将来のスポットレートにリスクプレミアム\(\Pi\)を乗せた額として決まる、と言ってもいいでしょう。

\begin{equation} \begin{split}
F_T=E^*\left[S_T\right]=E\left[S_T\right]+\Pi
\end{split} \end{equation}

このように、投資家がリスク回避的であることを前提とすると、もはや「FX等の期待リターンはゼロ」とは言えず、為替のリスクプレミアムだけ期待リターンを生むという結論が得られます。

【参考】リスクプレミアム考慮したときのFX等のリターン

フォワードパリティ

\begin{equation} \begin{split}
F_T&=E\left[S_T\right]+\Pi\\
\Leftrightarrow \frac{ F_T}{ S_0}&=E\left[\frac{ S_T}{ S_0}\right]+\frac{ \Pi}{ S_0}\\
\Leftrightarrow \frac{ F_T}{ S_0}&=E\left[1+s_{0,T}\right]+\pi
\end{split} \end{equation}

カバー付き金利パリティ

\begin{equation} \begin{split}
\frac{ F_T}{ S_0}-1\approx i_D-i_F
\end{split} \end{equation}

FX等の期待リターン(上記2式より)

\begin{equation} \begin{split}
E\left[s_{0,T}\right]+\pi=i_D-i_F\\
\Leftrightarrow E\left[s_{0,T}\right]+i_F-i_D=-\pi\\
\end{split} \end{equation}

 

通貨の期待リターンはいくらなのか

通貨の期待リターンを生むリスクプレミアム\(\pi\)はどれくらいなのでしょうか。

上記の式だけでは、リスクプレミアム\(\pi\)が正なのか負なのかもはっきりしません(仮にフォワードパリティが\(\Pi>0\)で成立するなら、FX投資の期待リターンはマイナスです。)

通貨のリスクプレミアムが存在するのかしないのか、存在するならば正なのか負なのかという問題は、いまだ解明されていないようです。

ファイナンスの教科書的な考え方では「分散投資によって避けられるリスクには、リスクプレミアムが生じない」とされます。

通貨投資も同様に、分散可能なリスクであればリスクプレミアムは発生しないはずです。

しかしながら通貨の場合にはどうしてもヘッジしきれないリスクが残るとされており、具体的には以下のような要因がリスクプレミアムを発生させるといいます。

  • 世界各国の対外債権債務の大きさ
  • 為替リターンの分散
  • 為替レートと世界マーケット・ポートフォリオとの共分散

たとえば日本の場合は、多額の対外純資産を有しており、それらのうち多くをヘッジなしで有しているため、市場取引において分散投資をしてもなお散らせないリスクが残ります。

結果として日本の投資家が対外資産投資で追う為替リスクにはプラスのプレミアムが生じます(参考文献参照)。

このように、通貨の期待リターンは必ずしもゼロであるとは言えず、世界各国の資産市場の状況を反映したリスクプレミアムを享受できる可能性があるということです。

 

参考文献

この記事は以下の書籍を参考にしました。第6章グローバル投資では、為替リスクの基本的理論や、国際投資における重要な定理(カバーつき・カバーなし金利平価や国際CAPM)が解説されており、ファイナンスの基本的な事項とともに幅広い分野を学べる良書です。

 

福田・斉藤(1997)”フォワード・ディスカウント・パズル:展望”では、本記事で扱ったような問題を、投資家のリスク回避性をはじめいくつかの視点から整理しています。

【君の知らない複式簿記5】簿記とベクトル、行列、そしてテンソルへ

複式簿記における試算表や仕訳はベクトルとして表現できることを、以下の記事で紹介しました。

【君の知らない複式簿記4】簿記代数の教科書『Algebraic Models For Accounting Systems』とバランスベクトル

本記事では複式簿記の「ベクトル」を、「行列」や「テンソル」へと拡張するアイデアについて述べます。

続きを読む

株価が2倍になる確率と1/2になる確率は同じか?

株価が2倍になる確率と1/2になる確率は同じになるのでしょうか?

株価(リターン)がランダムウォークであると仮定して、株価が2倍になる確率と1/2になる確率を計算してみます。

結論としては、両者は一致しません。

 

株価リターンのモデル化、ランダムウォーク

時点\( t\)における株価を\( S_t\)と表すことにします。現在時点は\( t=0\)と約束しましょう。現在株価は\( S_0\)と表すことができます。

時点\( t\)からほんの少し将来に向けての株価の変化を\( \mathrm{d}S_t\)と表します。\( \mathrm{d}S_t\)を\( S_t\)で割った\( \frac{ \mathrm{d}S_t}{ S_t}\)は、時点\( t\)からほんの少し将来に向けての株価リターンと解釈できます。将来に向けてのリターンですから、時点\( t\)において\( \frac{ \mathrm{d}S_t}{ S_t}\)がどんな値になるかはわからず、ランダムです(\( \frac{ \mathrm{d}S_t}{ S_t}\)は時間パラメタ\( t\)に関連した確率変数です)。

株価リターンはランダムウォークである、とよく言われますが、これを数学的に表すと、

\begin{equation} \begin{split}
\frac{ \mathrm{d}S_t}{ S_t}=\sigma \mathrm{d}z_t
\end{split} \end{equation}

となります。ここで\( \sigma\)は株価リターンの変動性を表すパラメタ(ボラティリティといい、正の定数)、\( \mathrm{d}z_t\)は「ランダムなノイズ」を表しており(標準ブラウン運動の微小増分です)、\(z_t \)は正規分布\( N(0,t)\)に従います。

株価をこのように表したとき、瞬間的な株価リターンがプラスになるかマイナスになるかは事前に予測できず、「瞬間的には」上がるか下がるかは\( \frac{ 1}{2 }\)です。

この設定のもとでは、将来時点\( t\)における株価\( S_t\)は以下のような式で表せます。

\begin{equation} \begin{split}
S_t=S_0 \mathrm{e}^{-\frac{ 1}{ 2}\sigma^2t+\sigma z_t}
\end{split} \end{equation}

この式を導くには「伊藤の公式」という確率解析の公式を利用します。計算方法は以下の記事を参照してください

伊藤の公式を直感的に理解する(追記:ブラック・ショールズモデル)

 

株価が倍になる確率、半分になる確率

さて、ここまでの準備を踏まえて「株価が2倍になる(正確には、上回る)確率」と「株価が1/2倍になる(正確には、下回る)確率」は等しいのか、計算してみましょう。

「株価が2倍になる確率」を「将来時点\( t\)における株価\( S_t\)が、現時点の株価\( S_0\)の2倍を超える(つまり\( S_t>2S_0\)となる確率」と解釈すると、以下のように計算できます。

\begin{equation} \begin{split}
P\left( S_t>2S_0\right)&=P\left( \frac{ S_t}{ S_0}>2\right)\\
&=P\left( \mathrm{e}^{-\frac{ 1}{ 2}\sigma^2t+\sigma z_t}>2\right)\\
&=P\left( -\frac{ 1}{ 2}\sigma^2t+\sigma z_t>\mathrm{ln}2\right)\\
&=P\left( \sigma z_t>\frac{ 1}{ 2}\sigma^2t+\mathrm{ln}2\right)\\
&=P\left(  z_t>\frac{ 1}{ 2}\sigma t+\frac{ 1}{ \sigma}\mathrm{ln}2\right)\\
\end{split} \end{equation}

\( z_t\)は正規分布\( N(0,t)\)に従う確率変数です。この確率変数には

\begin{equation} \begin{split}
P\left( z_t>a\right)=P\left( z_t<-a\right)
\end{split} \end{equation}

という性質が成り立つことが知られています。期待値が\( 0\)の正規分布はプラスとマイナスの領域が左右対称であることから来る性質です。この性質を上の式に当てはめると

\begin{equation} \begin{split}
P\left( S_t>2S_0\right)&=P\left(  z_t>\frac{ 1}{ 2}\sigma t+\frac{ 1}{ \sigma}\mathrm{ln}2\right)\\
&=P\left(  z_t<-\frac{ 1}{ 2}\sigma t-\frac{ 1}{ \sigma}\mathrm{ln}2\right)\\
&=P\left(  -\frac{ 1}{ 2}\sigma t+z_t<-\sigma t-\frac{ 1}{ \sigma}\mathrm{ln}2\right)\\
&=P\left(  -\frac{ 1}{ 2}\sigma^2 t+\sigma z_t<-\sigma^2 t-\mathrm{ln}2\right)\\
&=P\left(  \mathrm{e}^{-\frac{ 1}{ 2}\sigma^2 t+\sigma z_t}<\mathrm{e}^{-\sigma t}\mathrm{e}^{\mathrm{ln}\frac{ 1}{ 2}}\right)\\
&=P\left(  \frac{ S_t}{ S_0}<\frac{ 1}{ 2}\mathrm{e}^{-\sigma t}\right)\\
&=P\left(  S_t<\frac{ 1}{ 2}S_0\mathrm{e}^{-\sigma t}\right)\\
\end{split} \end{equation}

が成り立ちます。

「株価が1/2倍(を下回る)になる確率」は\( P\left(S_t<\frac{ 1}{ 2}S_0 \right)\)ですから「株価が2倍(を上回る)になる確率」とは一致しません。\(\mathrm{e}^{-\sigma t} \)が掛かっているのが余計です。

つまり、株価リターンがランダムウォークであっても、「株価が2倍(を上回る)になる確率」と「株価が1/2倍(を下回る)になる確率」は一致しません。

 

どちらの確率のほうが大きいのか

「株価が2倍(を上回る)になる確率」と「株価が1/2倍(を下回る)になる確率」は一致しないことはわかりましたが、どちらの確率のほうが大きいのでしょうか。

「株価が2倍(を上回る)になる確率」の途中経過を工夫すると、

\begin{equation} \begin{split}
P\left( S_t>2S_0\right)&=P\left(  z_t>\frac{ 1}{ 2}\sigma t+\frac{ 1}{ \sigma}\mathrm{ln}2\right)\\
&=P\left(  z_t<-\frac{ 1}{ 2}\sigma t-\frac{ 1}{ \sigma}\mathrm{ln}2\right)\\
&=P\left(  -\frac{ 1}{ 2}\sigma t+z_t<-\sigma t-\frac{ 1}{ \sigma}\mathrm{ln}2\right)\\
&<P\left(  -\frac{ 1}{ 2}\sigma^2 t+\sigma z_t<-\mathrm{ln}2\right)\\
&=P\left(  S_t<\frac{ 1}{ 2}S_0\right)\\
\end{split} \end{equation}

という不等式が導けます。つまり「株価が2倍(を上回る)になる確率」よりも「株価が1/2倍(を下回る)になる確率」のほうが大きいです。

 

二つの確率が等しくなる条件

ただし、将来時点\(t \)がごく小さければ、両者は近似します。

\( t\)が十分小さい時、

\begin{equation} \begin{split}
P\left( S_t>2S_0\right)&=P\left(  S_t<\frac{ 1}{ 2}S_0\mathrm{e}^{-\sigma t}\right)\\
&\approx P\left(  S_t<\frac{ 1}{ 2}S_0\right)
\end{split} \end{equation}

が成り立ちます。

つまり、ごく短期間の話をするならば「株価が2倍(を上回る)になる確率」と「株価が1/2倍(を下回る)になる確率」は近似し、\( t\to0\)の極限で両者は一致します。

 

注意

この記事では「瞬間的な株価リターンが標準ブラウン運動の微小増分の意味でランダムウォークである」という前提のもとで、「株価が2倍(を上回る)になる確率」と「株価が1/2倍(を下回る)になる確率」は一致しない(後者のほうが大きい)ことを示しました。

当然ながら、前提が変われば結論は変わります。

例えば「将来のある時点までの株価リターンがランダムウォークである」という仮定をおけば、結論は変わります(それが学術的に広く受け入れられているかは別として)。

投資理論において「唯一絶対の正解はない」ことに注意してください。

 

参考文献

暗号のまま計算する技術〜準同型暗号に関する参考文献〜

暗号は秘密を守るための重要な技術です。

情報を伝えたい相手以外に情報を漏らさないよう、暗号は古くから工夫されてきました。

近年ではビットコインなどの暗号資産(少し前の言い方では、仮想通貨)を支える技術として、暗号は重要な役割を果たしています。

 

情報を暗号化すると、これを元に戻す(復号する)ことなしには、情報を知ることはできません。

当然、暗号化したままの情報では、検索を行ったり、計算をしたりするのは困難です。

最近のデータサイエンスの流行もあって、機密情報に統計処理を行い分析を行いたいというニーズは多いと思われますが、データを暗号化してから統計処理をすることはできず、どうしても機密情報そのものにアクセスせざるを得ません。

機密情報そのものを扱うということは、当然それが漏洩するリスクも負ってしまうことになります。

 

情報を加工したい、しかし情報そのものは持ちたくない。そんな課題を解決するのが「準同型暗号」という技術です。

 

準同型暗号を使うと「暗号のまま計算できる」ようになります。

機密情報そのものを持つことなく、機密情報を加工して得られる結論が手に入るのです。

 

準同型暗号は、そのアイデア自体は40年ほど前に既に認識されていましたが、ここ20年ほどで急速に研究が進んでいるようです。

 

準同型暗号に関する書籍・テキストは少なく、日本語の文献では以下のテキストに詳しい説明があります。

 

準同型暗号をわかりやすく解説した論文はいくつかあり、以下では準同型暗号の応用例についても述べられているので、とても参考になります。

 

量子コンピュータの脅威を考慮した高機能暗号:格子問題に基づく準同型暗号とその応用, 四方順司, 2019

公開鍵暗号型の高機能暗号を巡る研究動向, 清藤武暢、青野良範、四方順司, 2017

 

「暗号のまま計算できる技術」、準同型暗号。

ぜひ勉強してみてはいかがでしょうか。

単射・全射・全単射 写像の定義の違いを整理する

本記事では、写像の種類「単射・全射・全単射」について、それらの定義の違いを整理し、例を用いて理解します。

単射と全射は、イメージできるようになるまで何度も定義を見直すことで、徐々に自分の中で消化されていきます。

焦らず繰り返し触れていきましょう。

本記事では『代数学1 群論入門』(雪江明彦著)を参考にしています。

集合の定義

数学における集合とは、簡単に言えば「ものの集まり」のことです。集合に属するひとつひとつの「もの」を、その集合の元(げん)といいます。

集合を厳密に定義しようとすると、公理的集合論と呼ばれる難解な分野に足を踏み入れることになりますので、ここでは簡単なイメージのみで済ませます。

集合は、それに属する「もの」を明示して表すことがあります。たとえば「信号機の色」という集合を\(A \)とすると
\begin{equation}
A=\left\{ 青,黄,赤\right\}
\end{equation}
と表せますし、自然数の集合を\( \mathbb{N}\)とすると
\begin{equation}
\mathbb{N}=\left\{ 0,1,2,\ldots\right\}
\end{equation}
と表せます(\( 0\)を自然数に含めるか否かは議論の余地があります)。

写像の定義

集合\( A\)の任意の元\( a\)に対し集合\( B\)の元\(f(a) \)がただ一つ定まっているとき、\( f\)を\( A\)から\( B\)への写像といって、\begin{equation}f:A\to B\end{equation}
と書きます。

つまり、集合\( A\)に属するどんな元をとってきても、集合\(B \)に属する元をたった一つ対応づけることができ、その対応ルールが写像\(f \)といいます。写像を関数ということもあります(高校数学まででは、関数と呼んだ方が親しみがあるでしょう)。

\( f\)が集合\( A\)から集合\( B\)への写像である、といったときには、集合\( A\)の異なる元が集合\( B\)の同じ元に対応付けられていても構いませんし(上図みどりの元)、集合\( B\)のなかで集合\( A\)の元に対応付けられないものがあっても構いません(上図オレンジの元)。

写像の例

「信号機の色」という集合\( A\)を\begin{equation}A=\left\{ 青,黄,赤\right\}\end{equation}
「信号機の意味」という集合\(B \)を\begin{equation}B=\left\{ 進んでよし,安全なら止まれ,止まれ\right\}\end{equation}
とすると、\( A\)から\( B\)への写像\( f\)として\begin{equation}f(青)=進んでよし,f(黄)=安全なら止まれ,f(赤)=止まれ\end{equation}
という対応関係を考えることができます。\( A\)の元のどれをとっても、\( B\)の元が1つ決まっているので、\( f\)は写像です。

高校数学まででは実数のなかで関数\( y=f(x)=x^2\)のようなものを考えていたので、上の例はやや不思議に思えるかもしれません。もちろん、実数の集合\( \mathbb{R}\)について、\( x\in \mathbb{R}\)に対して\( x^2\in \mathbb{R}\)を対応付ける規則は、\(\mathbb{R} \)から\(\mathbb{R} \)への写像であり、我々が高校数学で習った\( f(x)=x^2\)のことです。

\(f:A\to B\)を写像として、\( a\in A\)で\( f(a)=b\)のとき、\( b\)は\( a\)の像である、といいます。もっとくだけた表現では、\( a\)は\( b\)に行く、ということもあります。\( b\)は集合\( A\)から来ている、と表現することもあります。

部分集合\( S\subset A,T\subset B\)に対して、\( S\)から来ているもの全体の集合を\( S\)の像といい、\( f(S)\)と表します。つまり\begin{equation}f(S)=\left\{ f(a)|a\in S\right\}\end{equation}
です。また、\(T \)の元に行くもの全体の集合を\( T\)の逆像といい、\( f^{-1}(T)\)と表します。つまり\begin{equation}f^{-1}(T)=\left\{ a\in A|f(a)\in T\right\}\end{equation}です。

\(f:A\to B\)が写像であるためには、\( A\)の元に対して\( B\)の元がたった1つだけ定まっている必要があります。ある\( A\)の元を取った時、それが\( B\)の複数の元に対応してしまうような場合、それは写像とは呼びません。\(f:A\to B\)が写像であるといったときは、「\( A\)の元はすべて、\( B\)の元のどれか一つに行く」ことを意味しています。

単射と全射

\(f:A\to B\)を写像とします。

単射(injection)

\( a,a’\in A\)にたいして\( f(a)=f(a’)\)ならば\( a=a’\)である、という条件が満たされるとき、\( f\)は単射であるといいます。「行く先が同じなら、来るもとが同じ」と表現してもよいでしょう。

この条件は\( a\neq a’\)ならば\( f(a)\neq f(a’)\)であるという条件と同じです(もとの条件の対偶)。

くだけた表現をすれば「\( A\)の異なる元は\( B\)の異なる元に行く」「来る元が違えば行く元も違う」ということです。

全射(surjection)

任意の\( b\in B\)に対し\( a\in A\)があり\( f(a)=b\)となるとき、\(f \)は全射であるといいます。つまり「\( B\)のすべての元が\( A\)から来ている」「\( B\)の元は必ず\( A\)のいずれかの元に対応付けられている」ということです。

\(f:A\to B\)が写像であっても、\( A\)の元に対応付けられない\( B\)の元が存在することはあります。しかし\( f\)が全射であれば、\( B\)の元は必ず\( A\)の元から来るといえます。

全射でない例

\( A=\mathbb{R}\)から\( B=\mathbb{R}\)への写像\( f\)として、\( x\in A=\mathbb{R}\)に\( x^2\in B=\mathbb{R}\)を対応付けるもの(\( f(x)=x^2\))を考えましょう。このとき\( -2\in B=\mathbb{R}\)ですが、\( x^2=-2\)となる\(x \)は\( A=\mathbb{R}\)の中にありませんので、「\( B\)のすべての元が\( A\)から来ている」とはいえません。したがって\( f\)は全射ではありません。

全単射(bijection)

写像が単射かつ全射なら、全単射であるといいます。

集合\( A\)から集合\(B \)への全単射写像があるとき、集合\( A\)と集合\(B \)は「一対一に対応する」といいます。

\( f\)が写像であるとき「\( A\)の元はすべて、\( B\)の元のどれか一つに行く」といえます。ただし、同じ行き先かもしれないし、\( A\)の元から来ない\( B\)の元があるかもしれません。

しかし、\( f\)が単射のときは「\( A\)の異なる元は\( B\)の異なる元に行く(行き先が同じ\( A\)の元はない)」といえますし、\( f\)が全射のときは「\( B\)のすべての元が\( A\)から来ている」といえます。

したがって、\( f\)が全単射であるとき、\( A\)と\( B\)の元はそれぞれ一対一に対応するのです。

参考文献

本記事の内容はこちらのテキストを参考にしました。

上記テキストの参考文献に挙げられている本で、集合や写像に関するより詳しい内容を扱ったテキストとして、以下もおすすめです。

代数的構造の関係を図示してみた(マグマ、半群、モノイド、群、アーベル群、環、可換環、整域、体)

こんにちは、毛糸です。

本記事では、代数学において考察対象となる代数的構造について整理します。

群や環といった基本的な代数的構造が、それぞれどういう包含関係になっているのかを、図を用いてまとめます。

群・環・体、代数的構造の包含関係

群や環などの代数的構造は、包含関係をイメージしながら整理しておくと便利です。

たとえば

群の演算(加法)が可換であって、乗法についても閉じており、乗法の結合法則と加法乗法の分配法則が成り立つものが、環である。

というふうに、条件の緩い代数的構造(群)から始めて、条件を追加していくことでより複雑な構造(環)を得ることが出来ます。

この代数的構造の包含関係を図示したものが以下です。

この図は、こちらのページ「群・環・体 (大人になってからの再学習 )」に掲載されている同様の図を参考にして、群よりも単純な代数的構造を明示し、表現を修正したものです。

なお、上の図では条件が追加されるごとに領域が大きくなっていますが、これは「集合の大きさ」を表してはいません。

条件が厳しくなれば、集合としては「狭まっていく」ので、イメージとしては以下のような感じです。

諸注意

代数的構造の包含関係図はあくまでイメージであり、正確でない表現を多分に含んでいます。

そもそも代数的構造は、ある集合と、その上の二項演算をセットで考えるものですが、上の包含関係図ではその「ある集合」とその元についての説明は省かれています。

つまり、上の包含関係図におけるマグマの説明

\(a \)と\(b \)が含まれるなら\( a+b\)も含まれる

は、

集合\( M\)の任意の元\( a\)と\( b\)について、二項演算\(+ \)が定義されていて、\( a+b\)が\( M\)の元であるとき、\( \left( M,+\right)\)をマグマと呼ぶ。

と述べるのが正確です(しかし前者の説明でも雰囲気はわかるでしょう、そのための図解です)。

また、たとえばマグマの条件を「加法について閉じている」と表現しており、二項演算を「\( +\)」で表していますが、一般にはマグマは二項演算について閉じていればよく、加法である必要はないですし(むしろ乗法と呼ぶほうが多いのかも)、二項演算を「\( +\)」で表す必然性もありません。

ただ、条件列挙の順序の観点から、群・環・体の包含関係のイメージを持つための「方便」として、あえて加法と言い「\( +\)」の記号を使っています。

その他の説明も、似たような理由から正確でない部分を含んでいますが、この図の趣旨は基本的な代数的構造の関係を直感的に捉えることですので、ご容赦ください。

正確な定義はテキストに載っていますから、そちらを参照していただくことにして、包含関係図はあくまで「直感的理解」のための使うのが良いでしょう。

代数学を理解するためのテキスト・参考書

群や環といった基本的な代数的構造を理解するためのテキストとしては、以下が入門的です。

解析学(微積分)が好きだけど、群や体の定義くらいは知っておきたい、という方は、解析学の名著「解析入門Ⅰ」の最初に、実数体を定義する際に基本的な概念が登場します。

代数学の基本的なところから始めて、最近注目を浴びている圏論も勉強したいという方は、こちらの本がまとまっています。

行列の基本、最初の一歩

こんにちは、毛糸です。

最近、有志を集めてデータサイエンスの実践的手法を学ぶ勉強会を開催しています。

その勉強会で教材にしているのが、『東京大学のデータサイエンティスト育成講座』です。


本書はプログラミング言語Pythonを用いて、データ分析の手法や応用について解説する、大変良いテキストです。

データ分析と数学

データ分析の手法を学ぶには、統計学をはじめとする数学の知識が必須です。

とくに、昨今話題のAI・機械学習・データアナリティクスといったトピックスを理解するには、高校数学以上のやや高度な数学が不可避になっています。

具体的には、微分積分学(解析学)や行列(線形代数学)についての大学初級レベルの知識がまず求められます。

しかし、かんたんな微積分はさておき、行列に関しては、高校時代に文系課程を修了した人や、若い世代の人は、高校数学の範囲内で勉強してこなかったため、

いざデータ分析の勉強をしてみようと思っても、テキストの最初からちんぷんかんぷん、ということが多々あります。

本記事ではこの「行列」に関する「最初の一歩」を踏み出すことを目的として、高校レベルの行列について基本的な事項をさらっと整理しておきます。

行列とはなにか、その定義とイメージ

私たちが数学でよく目にするのは、整数\( 1\)とか、変数\( x\)とか、関数\( f(x)\)だったりします。

これらの文字や数字は、今までは「単体で」目にすることが多かったでしょう。

しかし、これら文字や数字を

並べて、まとめる

ことで、計算が簡略化されたり、数式が見やすくなったりと、いろいろと嬉しいことが起こります。

本記事で解説する行列(行列、martixマトリックス)とは、「文字や数字を長方形に並べ、両側をカッコでくくったもの」のことです。

行列は次のように表します。

\begin{equation} \begin{split}  \left( \begin{array}{ccc} 1 & x & 5 \\ y & 0 & 7 \end{array} \right) \end{split} \end{equation}
このようにして作った行列の、ヨコ方向のまとまりを「行(row)」、タテ方向のまとまりを「列(column)」といいます。

上の行列において、行は2つあり、
\begin{equation} \begin{split} 第1行 = \left( \begin{array}{ccc} 1 & x & 5 \end{array} \right)\\ 第2行 = \left( \begin{array}{ccc} y & 0 & 7 \end{array} \right) \end{split} \end{equation}
です。

上の行列において、列は3つあり、
\begin{equation} \begin{split} 第1列= \left( \begin{array}{c} 1 \\ y \end{array} \right), 第2列= \left( \begin{array}{c} x\\ 0 \end{array} \right), 第3列= \left( \begin{array}{c} 5 \\ 7 \end{array} \right) \end{split} \end{equation}
です。

行列の大きさ・サイズは、行数と列数によって言い表すことが出来ます。

行数が\( m\)、列数が\( n\)の行列を「\( m\times n\)行列」といいます。

正方行列とはなにか

「文字や数字を長方形に並べ、両側をカッコでくくったもの」が行列ですから、長方形の特別な場合である正方形に並べることがあっても構いません。

正方形に並べるとき、行数と列数は一致しますので、「\( n\times n\)行列」が作れることになります。これを正方行列といいます。以下の行列\( A\)は\( 3\times 3\)行列です。

\begin{equation} \begin{split} A = \left( \begin{array}{ccc} 1 & x & 5 \\ y & 0 & 7\\ -2& 0.4 & z\\ \end{array} \right) \end{split} \end{equation}

行列の要素・成分

行列のなかに置かれている数字や文字は「成分」もしくは「要素」と呼ばれ、行数と列数を指定することで特定してあげることが出来ます。

上の行列\( A\)における\( y\)は、2行目・1列目の成分です。

行列の成分を文字を使って表すこともあり、たとえば行列\( A\)の\( i\)行目・\( j\)列目の成分を表すときに\( a_{ij}\)と表したりします。

上の行列\( A\)では
\begin{equation} \begin{split} a_{2,1}&=y\\ a_{3,2}&=0.4 \end{split} \end{equation}
です。

行列の足し算(加算)と引き算(減算)

数字が足し引きできたのと同様、行列も足し引きできます。

行列は「長方形に並べた要素」のことでした。

行列を足し引きしたければ、「要素ごとに足し引きする」のが自然でしょう。

\begin{equation} \begin{split} \left( \begin{array}{cc} a & b \\ c & d \end{array} \right)+ \left( \begin{array}{cc} p & q \\ r & s \end{array} \right)= \left( \begin{array}{cc} a+p & b+q \\ c+r & d+s \end{array} \right) \end{split} \end{equation}
\begin{equation} \begin{split} \left( \begin{array}{cc} a & b \\ c & d \end{array} \right)- \left( \begin{array}{cc} p & q \\ r & s \end{array} \right)= \left( \begin{array}{cc} a-p & b-q \\ c-r & d-s \end{array} \right) \end{split} \end{equation}

このように足し算引き算を考える上で大切なことは、足し引きする行列の行と列の数が一致している必要がある、ということです。

例えば\( 2\times 3\)行列と\( 2\times 4\)行列を足すことはできません。

行列の実数倍

行列を実数倍(定数倍)するときも、「要素ごとに掛け算する」というルールで計算できます。

\begin{equation} \begin{split} k\times \left( \begin{array}{cc} a & b \\ c & d \end{array} \right)= \left( \begin{array}{cc} ka & kb \\ kc & kd \end{array} \right) \end{split} \end{equation}


行列同士の掛け算(乗法)

行列に実数を掛けるのは簡単でしたが、では「行列と行列を掛ける」ことはできるのでしょうか。

実は、ここが行列を勉強するときの最初のつまづきポイントです。

最初は「要素ごとに掛け算したらいいのでは?」と思うでしょう。

つまり掛け算を(あえて\( \times\)と書かずに)\( \circ\)と書いて
\begin{equation} \begin{split} \left( \begin{array}{cc} a & b \\ c & d \end{array} \right)\circ \left( \begin{array}{cc} p & q \\ r & s \end{array} \right)= \left( \begin{array}{cc} ap & bq \\ cr & ds \end{array} \right) \end{split} \end{equation}

として掛け算するのが自然だ、と思いたくなります。

この掛け算をアダマール積とか要素積といいます。

しかし、この掛け算は「ベクトルの内積」と相性がよくありません(内積についてはこちらのサイトを参考にしてください)。

ベクトルの内積については別の機会に説明をしますが、ここでは「要素ごとの掛け算は、行列同士の掛け算としてはあまり適当でない」ということを押さえておいてください。

「要素のまとまり」を考える行列においては、実は以下のようなルールで、行列同士の掛け算を考えると都合がいいとされています(掛け算記号\( \times\)は省略して書くのが通常です)。
\begin{equation} \begin{split} \left( \begin{array}{cc} a & b \\ c & d \end{array} \right) \left( \begin{array}{cc} p & q \\ r & s \end{array} \right) = \left( \begin{array}{cc} ap+br & aq+bs \\ cp+dr & cq+ds \end{array} \right) \end{split} \end{equation}
この掛け算のルールを言葉で表現すると、「左の行列の各行と、右の行列の各列の内積を並べる」ということになります。

より詳しい内容は参考文献に書いてありますので、是非読んでみてください。

行列の掛け算は、右の行列の列数と、左の行列の行数が一致している必要があります。

つまり\( l\times \underline{m}\)行列と\(\underline{m}\times n \)行列のようなセットでないと、計算することが出来ません。

また、行列\( A\)と\( B\)の掛け算であっても、\( AB\)と\( BA\)は一致しないことがあります。つまり、行列\( A\)に、行列\( B\)を右から掛けるか、左から掛けるかによって、答えが変わるのです。

行列の掛け算のポイントをまとめるます。

  • 要素ごとの掛け算は、あまり適当でない
  • ちょっと複雑な計算によって、掛け算を定義する(右の行列の行と、左の行列の列の、内積をならべる)
  • 右の行列の列数と、左の行列の行数が一致している必要がある
  • 行列を右から掛けるのと左から掛けるのとで、答えが変わる


単位行列とはなにか

さて、すこし頭の体操です。

以下のような「\( 1\)を斜めに並べ、他の要素は\( 0\)」になるような正方行列\( E\)(ここでは\( 2\times 2\)行列)を考えてみましょう。
\begin{equation} \begin{split} E= \left( \begin{array}{cc} 1 & 0 \\ 0 & 1 \end{array} \right) \end{split} \end{equation}

このとき、\( 2\times 2\)の正方行列\( A\)について
\begin{equation} \begin{split} AE=EA=A \end{split} \end{equation}が成り立ちます。実際に計算してみてください。

\( E\)は右から掛けても左から掛けても、掛けられる行列\( A\)がそのまま返ってきます。

「どんな実数も1を掛けると、掛けられた数がそのまま返ってくる」のと似ていますね。

この「\( 1\)を斜めに並べ、他の要素は\( 0\)」になるような正方行列\( E\)を単位行列といい、「行列の世界での\( 1\)のような役割」を果たします。

逆行列とはなにか

実数を考えたとき、かならずそれに逆数が存在することを、私たちは知っています。

実数\( a\)に「ある実数\( x\)」を掛けた答えが\( 1\)になるような実数のことを、\( a\)の逆数と言うのでした(この\( x\)はつまり\( \frac{ 1}{ a}=a^{-1}\)のことです)。

\( 2\)の逆数は\( \frac{ 1}{ 2}\)ですし、\( \sqrt{3}\)の逆数は\(\frac{1 }{ \sqrt{  3}}=\frac{\sqrt{ 3 }}{ 3} \)です。

行列にも逆数のようなものが存在します。

つまり、行列\( A\)に「ある行列\( X\)」を掛けた答えが単位行列\( E\)(行列の世界での\( 1\)の役割)になるような行列のことを、\( A\)の逆行列といい、\( A^{-1}\)と表します。

数式で表すと

\begin{equation} \begin{split} AX=XA=E \end{split} \end{equation}となるような行列\(X \)が、\(A \)の逆行列です。
\begin{equation} \begin{split} AA^{-1}=A^{-1}A=E \end{split} \end{equation}と書いても同じことです。

逆行列なんてどこで使うんだ、と思われる方もいるでしょう。

私たちが方程式\( ax=1\)を解くときに、\( a\)の逆数\(\frac{ 1}{ a} \)が登場して\( x=\frac{ 1}{a }\)と解くことができたように、

行列を使って方程式を解くときなどに、逆行列は大活躍します。

行列\( A\)の逆行列\( A^{-1}\)の求め方や、逆行列を使った方程式の解き方は、参考文献のテキストに説明されています。

参考文献

本記事の参考にした『もう一度高校数学』は、高校1年生の数学から初めて、微積分や行列など、AIやデータ分析を理解するために必須の数学をイチから学び直せる良書です。

とくに、2012年の指導要領改訂で高校数学から消えてしまった

数学C 行列

が解説されている点がおすすめできます。

文系社会人がデータ分析やAIの技術を学ぼうとしたとき、行列についての予備知識が皆無なので、テキストの最初から意味がわからない、ということが多々ありますが、

この本で(旧課程の)高校レベルの知識を身につけておけば、データ分析のテキストの理解もスムーズに進むでしょう。

もう一度高校数学』はテキストの構成が、高校の教科書のように無味乾燥ではないのでとっつきやすいです。