【書籍紹介】統計から機械学習への橋渡しのための5冊~線形モデルと線形代数~

統計の上級を目指すにせよ、機械学習に進むにせよ、線形モデルの考え方は必ず通らなければならない勘所と思っています。
統計の基礎では確率分布や検定の考え方に触れますが、あまり線形モデルの話は出てこないように感じるためです。機械学習の基礎にあたるパターン認識においては確率分布と線形モデルの考え方が非常に重要で、線形モデルの考え方をきちんと理解するためには行列の演算が必須になってきます。理系の方でしたら高校、大学の段階でしっかり線形代数を学ぶのでしょうが、文系で心理学等の統計を必要とする専門に進んだ場合、線形代数をほとんどやらずにきてしまうことが多いのではないでしょうか。
昨今、学習コストの低いPython等のプログラミング言語の登場で機械学習に容易に触れられる機会が増えてきました。これまで統計をやってこなかった方でも、コーディングそのものは容易です。一方で、その理論的背景を知らず、提供されているパッケージをただただ使う、という状況にも陥りやすいのではないかと考えています。自分自身の反省も込めて。
ということで、今回は確率分布や要約統計量、検定の考え方等の統計の基礎を学び、もっと高度な分析をやりたい、であったり機械学習に進みたい、と考えておられる方々向けに、こういう書籍を読んでみたらどうかな、というご提案です。

※個人的に「この順番で読み進めていくと良いかな」と思う順番に紹介しております。

この記事が対象としている方

冒頭に書きましたが、この記事で紹介する書籍は以下のような方を対象にしています。

  • 統計の基礎(確率分布や検定)は理解している
  • より高度な分析を行いたい
  • または機械学習をやりたい
  • 線形モデルのことはまだよくわからない
  • 線形代数?なにそれ?

ちなみにここで言っている「統計の基礎」とは、おおむね次の書籍に書かれている内容を指します。

統計学入門 (基礎統計学?)

統計学入門 (基礎統計学?)

東京大学出版会のいわゆる「赤本」です。
前半のかなりの部分を使って確率分布に関する記載がなされており、よく使う分布に関してはかなりしっかりと説明されています。ただ、個人的にはモーメント母関数に関する記載が薄めなのがやや不満なので、そのあたりを補う本として、

こちらをお勧めしています。いわゆる統計学の内容そのものはものすごく薄いですが、統計量の計算の仕方やモーメント母関数、さらに中心極限定理の証明が記載されていますので、自分で式展開をしようとしてつまづいてしまうような場合に、計算練習として手元に置いていくのもいいと思います。

1冊目:統計における線形モデルの入り口

もともとは統計検定の勉強のために、と思って読み始めたこちらの本。

心理統計学の基礎―統合的理解のために (有斐閣アルマ)

心理統計学の基礎―統合的理解のために (有斐閣アルマ)

前半の5章分は統計量の算出や確率分布、相関等の統計の基礎にあたる部分が記載されています。
が、ちょうど真ん中あたりで線形モデルの考え方が導入されます。そのあたりがこの本の白眉であろうと思います。
線形モデルでt検定を説明するあたり、なかなかしびれます。
また、分散分析が線形モデルの枠組みの中にあること、F検定とt検定は実は同じことをやっていること、など、個々の検定の方法をやっただけではなかなか見えてこない部分を明らかにしてくれる本です。
タイトルに「心理統計学」とある通り、取り上げられている題材が心理学のテーマとなっていますが、心理学と関わりのない方でも、統計の基礎を学んだ後に追加で読む書籍としてわかりやすいのではないかと思います。

ちなみに、出てくる数式もそこまで難しくはありません。
「データをベクトルとみなす」という考え方に慣れると、この後の学習がとてもスムーズにいくのではないかと思います。

2冊目:本格的な線形モデルへの入門

緑本」として知られている超良書です。

様々なところで紹介されている通り、軽い語り口ではありますが、しっかり深い内容を説明してくれています。データサイエンティストを目指す方、機械学習エンジニアを目指す方にはほぼ必ずといっていいほどお勧めされる書籍です。
「なるべく多くの人に最後まで読み通してほしい」という著者の配慮なのでしょうか、数式の詳細な説明はかなり少なめです。数理的な内容よりも「それを適用したらどんなことがわかるのか?」に重点が置かれているようで、表やグラフが豊富です。分析やグラフの作図のためのRのコードも本文に記載されています。Rになじみのない方は実際にコードを打ち込みながら読み進めるのが良いでしょう。
※Rになれた方ならコードを読んでだいたいどんなアウトプットが出るのかが想像できるレベルです。

ただ、すでに書いたように数式の詳細な説明はかなり少なめです。それほど複雑な式は登場しませんが、必要に応じてある程度は自分で補う必要があろうかと思います。

3冊目:線形代数を理解する

さて、ここまででひとまずは線形モデルに関する基礎が身に付いたと思います。ここからさらに飛躍するために必要なのが「線形代数」です。
1冊目の項で述べたように、線形モデルではデータをベクトルとして扱います。ベクトルというと、この記事が対象としている方にとっては「二次元、または三次元における矢印のアレ」をまっさきに思い浮かべるかもしれません。つまり、ある空間における「向きと大きさを示すもの」というイメージです。ですが、統計やデータ解析では「ベクトル」という言葉をもっと一般的に「数値の配列」として扱います。一つのデータを一つのベクトルと考えたとき、たくさんのデータを並べると「行列」になります。この「行列」の性質を調べる学問が「線形代数」です。

統計のための行列代数 上

統計のための行列代数 上

統計のための行列代数 下

統計のための行列代数 下

行列の演算は通常の数値の計算とは異なるクセがあります。そのクセに従ったお約束事を知っていないと、行列の計算でやっていることについていけなくなります。
そして、データをベクトルとして扱う線形モデルやパターン認識においては行列の計算が非常に重要になってきます。ここがうまく理解できないと、先に進めなくなってしまいます。
ということで、さらなる飛躍のために、どうしても線形代数の知識が必要なのです。

このような事情もあって、統計で使われる線形代数を扱った書籍はいくつも出版されています。
が、ある程度高度な内容も丁寧に説明してくれる教科書は残念ながら多くはありません。その中でも、非常に丁寧に説明がなされていると個人的に思うのが上記の書籍です。上下巻合わせて750ページほどのボリュームですが、手元においておいて損はないです。

4冊目:統計学全般の数理的な背景の理解のために

「統計検定準一級の勉強のために読んでおけ」という書籍の中に含まれるものに、東京大学出版会のいわゆる「青本」が含まれています。

自然科学の統計学 (基礎統計学)

自然科学の統計学 (基礎統計学)

これ、良い本なのですが、この記事が対象としている方が「赤本」の後に読もうとするには残念ながら非常にハードルが高いです。
「赤本」ではそれほど複雑な数式は出てこないのですが、ここに至ってばりばり数式、特に線形モデルの説明の段階で行列演算がばりばり出てきます。なので、「赤本」の後の二冊目として読むには難しく、挫折してしまいがちです。そのため、必要な知識として線形代数を入れておく必要があるのです。
なかなか高度な内容を含む本ですが、前提知識をしっかり入れておけば、非常に実りのある書籍だと思います。

この記事が対象としている方は、少なくともいきなり「青本」から入らないように!!

5冊目:機械学習の一歩手前に立つために

ここまでくるとだいぶ必要な知識が身についているころと思います。
そろそろ機械学習に進んでもいいころ合いでしょう。

さて、なぜ機械学習をやるのにこんなに「統計」の勉強をしなければならないのか?と疑問に思われる方もいらっしゃるかもしれません。自分自身、しっかり勉強するまでは統計学機械学習は別々の分野と考えていました。
ところがそれは違っていて、機械学習は統計の考え方、特に確率分布や尤度、線形モデルの考え方をベースにしているのです。機械学習のパッケージを使うだけであればあまり問題にならないかもしれませんが、パラメータチューニングをしようとか、自分でニューラルネットを作ってみよう、という段階になると、その背景を知らないととたんにつまづいてしまいます。そういう意味で、機械学習に進むには、個人的にはこれら統計の知識の積み上げが必須と考えるのです。

ということで、超有名な「はじパタ」です。

はじめてのパターン認識

はじめてのパターン認識

そんなに厚い本ではありませんが、内容はみっちりです。行列演算がどんどん出てきます。線形代数をある程度理解していないとかなりつらいです。
ですが、かなり広範な話題を扱っており、統計検定準一級の勉強にも使えるんじゃないかと思います。

ここを足掛かりに、さらに発展的な内容に進んでいくといいでしょう。

お疲れさまでした!!

おわりに

そもそもなんでこの記事を書こうと思ったかというと、自分自身がもともと心理学出身で、立場的には「一応統計はやったことがあるけど、せいぜい分散分析をソフトにやらせていたのが関の山で、その数理的な背景をほとんど知らない」、まさにこの記事が対象としている方と同じだったためです。大学の研究室でも統計についての詳しい講義はなく、院生に教わってt検定やら分散分析、因子分析をする程度でしたし、それでよしとされていました。
ですが、いまの職場に入ってかれこれ数年、メイン業務ではないとはいえデータアナリティクスに関わるようになって1年、自分の知識不足を痛感する場面が増えてきました。そこで改めて自分の知識の棚卸をし、足りない部分を補うのにどうしたらいいか、と考えた結果がこの5冊です。

特にですね、データ分析にあたって「線形代数の知識が大事」と教えてくれる人がなかなかいないのです。ですが、データ分析をする上では必須。しかも、「行列演算」と「線形代数」という言葉がなかなか結び付かず、なにを勉強したらいいのかわからない、という状況に陥ることがあるのじゃないかと思うのです。

統計の入り口には微分積分が重要ですが、高度な内容になると線形代数が必須になることを、声を大にして言いたい。

線形代数、大事です。