Pythonで学べる統計学の入門書を執筆しました。
「Pythonで学ぶあたらしい統計学の教科書」というタイトルです。

この記事では「Pythonで学ぶあたらしい統計学の教科書」の紹介をします。
サンプルコードやデータは出版社さんのサイトからダウンロードできます

 


Pythonで学ぶあたらしい統計学の教科書

 
出版社さんへのリンク
(詳細な情報はこちらを参照してください)
 
2018年 4月:初版第1刷発行
2018年 5月:初版第2刷発行
2018年10月:初版第3刷発行

 

基本情報

出版社  : 翔泳社
著者   : 馬場真哉(このサイト、Logics of Blueの管理人です)
タイトル : Pythonで学ぶあたらしい統計学の教科書
発売日  : 2018年4月19日

 
2018年10月19日追記
目次などは出版社のサイトから確認できます。
出版社の書籍紹介記事でも、コンパクトに書籍の特徴を説明してくださっています。
対談形式でこの書籍の特徴について説明した記事はこちらです。この対談記事で伝えたいことはほぼ伝えたつもりです。

大変ありがたいことに、レビューをいくつかいただいています。
Pythonで学ぶあたらしい統計学の教科書|清水川のScrapbox
【書評】「Pythonで学ぶあたらしい統計学の教科書」|いのいち勉強日記

(追記終わり)

 

書籍の特徴

この本はPythonで学べる統計学の入門書です。
確率変数や確率分布という用語がなぜデータ分析に必要となるのかといった基礎の基礎から、区間推定や統計的仮説検定、そして統計モデルや機械学習とのつながりまで、少しずつステップアップしていくような構成になっています。

Pythonを使ったデータ分析に興味がある方はもちろん、高度な教科書の副読本として、あるいは機械学習を学ぶ前の基礎固めとしてもお使いいただけると思っています。

 
2018年10月19日追記
発売から半年たちましたので、「Pythonで学ぶあたらしい統計学の教科書」の立ち位置や特徴を、もう少し詳細にここで説明します。

「Pythonで学ぶあたらしい統計学の教科書」の大きな特徴は、区間推定や仮説検定で終わるのではなく、統計モデリングまで対象としたことです。回帰分析は、正規線形モデルあるいは一般化線形モデルという枠組みから解説されます。
機械学習にも一部触れました。

扱うテーマが多岐にわたるため、書籍の書き方を工夫しました。
まずは、「日本語・数式・Pythonコードで3回同じことを説明する」というやり方です。個別のテーマに関する理解度を高めるために導入しました。前段についての最低限の理解をした後で次に移る構成になっています。
テーマ同士の関連を理解していただくために、節を細かく分割し、「用語」や「補足」「実装」といったヘッダーを節のタイトルに付けました。自分が今、何を学んでいるのかを整理しながら読み進めていただくためです。節タイトルを含めた詳細な目次は、出版社サイトで書籍の立ち読みをすることで参照できます。

サンプルコードは、Pythonらしい簡潔な物を目指しました。変数名1つ1つにも(スペースが許す限り)こだわっています。例えば変数名「a1」みたいなのはほとんど出てきません。

実務面に配慮して、パッケージは有名なものだけを使いました。仮説検定はscipyを多用し、統計モデル(正規線形モデル・一般化線形モデル)ではstatsmodelsを中心に使いました。両者ともに、短いコードで効率的に実装できます。細かいことを書くと、statsmodelsによるモデリングの際はstatsmodels.formula.apiを中心に使い、例えば『sales ~ temperature』のように『応答変数 ~ 説明変数』のformula形式で実装する方式を採用しました。これはR言語でも採用されているもので、直観的にモデルの構造を指定することができます。

グラフはほぼすべてseabornの使用を前提としているので、単にmatplotlibを使うよりも美麗なグラフが描けます。グラフのコードにもこだわりました。整然データというデータ形式を重視したため、短いコードで美しいグラフが描けます。整然データについては本文中で説明があります。
(追記終わり)

 

書籍の内容

第1部で統計学の基礎を学びます。数量データとカテゴリデータの違いや階級・ヒストグラムといった基本事項から説明します。

第2部でPythonの基礎を学びます。基本的な構文やnumpy、pandasの簡単な解説があります。

第3部でPythonを用いたデータ分析を学びます。データの集計やseabornを使った図示、標本分布のシミュレーションから始まり、scipy.statsを用いた区間推定や統計的仮説検定までを学びます。

第4部で統計モデルの基礎を学びます。線形モデルの構築方法の概要や、最尤法や最小二乗法といった理論を学びます。

第5部でstatsmodelsパッケージを用いた正規線形モデルの構築を学びます。

第6部でstatsmodelsパッケージを用いた一般化線形モデルの構築を学びます。

第7部で正則化やニューラルネットワークを通して、機械学習と統計学のつながりに触れます。sklearnを用いた分析事例も併せて紹介します。

 

この本に載っていること・載っていないこと

統計学の基礎から統計モデルまで少しずつステップアップしていこうという方針で執筆しました。
基礎の基礎から統計モデルへ至る流れがわかるのは長所だと思います。
一方で、個別のテーマはやや内容が少なくなっています。適宜参考文献を挙げるようにはしましたが、詳細な議論はこういった文献に譲るところも一部あります。
また、ベイズ統計学への言及はありません。

Pythonで検定やGLMを手軽に実行したいと思っている方にはちょうど良いと思います。scipy.statsやstatsmodels、sklearnを積極的に活用したため、この本に載っているレベルの分析であれば、R言語のようにスムーズな実装ができます。
また、シミュレーションもしばしば利用したので、しっかりした入門書を読む際の副読本としても使いやすい構成になったかと思います。標準偏差と標準誤差の違いがよくわからないという方は、第3部のシミュレーションの結果を眺めると少し理解が深まるかもしれません。
逆に、こういったところを重視しているので、応用面はやや少なくなっています。
初学者寄りの内容であることには留意してください。

 
 
更新履歴
2018年4月4日:新規追加
2018年4月20日:データのダウンロードページへのリンクを追加
2018年10月19日:重版に合わせて、書籍の説明などを追記