step01 プログラミングと統計解析
統計解析の構成
「山之口洋のはじめての統計解析【基礎編】」では、表計算ソフトExcelを利用して、統計解析の基本的な手法と知識を学んだ。統計解析という学問分野の構成は、つぎの図のようであった。
- 記述統計
- 具体的なある集団について、その性質を数値やグラフなどで把握し、記述する。把握結果を表す数量が基本統計量である。
- 確率分布
- 記述統計の結果を基に、推測統計の各種手法を実行するためには、種々の確率分布(または確率密度分布)が必要である。
- 推測統計
- 標本(集団)についての記述統計の結果から、母集団の統計量についての情報を得ようとすること。母集団についての仮説を検証(仮説)検定と、標本の統計量から母集団の統計量を推測する推計とがある。
授業の目的
この「はじめての統計解析【応用編】」では、履修者が【基礎編】で身につけた(はずの)基礎知識を前提として、プログラミング言語Pythonと統計ライブラリを利用した統計解析の手法を学ぶ。手法自体は【基礎編】の範囲と重なる部分が多いが、回帰分析やモデル選択など、より進んだ内容も扱う。
言いかえれば、この授業科目の目的は履修者のみなさんをデータサイエンティストの卵にすることである。Pythonや、つぎのような統計解析関連のライブラリを学ぶのは、現実のデータを読み解き、そこから見えない情報を引き出すデータサイエンティストとしての強力なツールだからである
- Numpy
- 行列演算ライブラリ
- Pandas
- データフレームを利用するためのライブラリ。Excelのワークシートにあたるデータ構造であり、統計解析の対象データを保持できるようにする。
- Matplotlib
- 多機能で使いやすいグラフ表示ライブラリ。Excelのグラフ作成と同様の機能を提供する。
なぜExcelではダメなのか
ダメではない。現に【基礎編】ではExcelを駆使して統計解析のさまざまな手法を理解し、実践してきた。
統計解析のツールという観点からExcelを見ると、
- データをリスト形式のワークシートで整理できるデータフレーム機能がある。
- 基本的な統計関数が用意されており、ワークシート上に各種解析手法(たとえば母平均の区間推定)の手順をプログラムできる。つまり【基礎編】ではExcelの表計算機能を一種のプログラミング言語として利用していた。作成したプログラムは表のセル中に埋め込まれていたのである。
- 処理対象のデータと処理手順(アルゴリズム)が同じワークシート上に混在しており、分離できない。プログラムの再利用もできるが、いちいちワークシート自体を書き換えなければならない。
- 処理手順を実現したプログラムは、セル上の数式の集合体に過ぎないため、全体を見通したり、さらに複雑な解析をするのに必要な構造化ができない。
処理対象のデータを保持できるデータフレーム(data frame)さえあれば、処理手順そのものは普通のプログラミング言語で書く方がはるかに便利であり、細かい改良や再利用も簡単なのである。
なぜPythonなのか
統計解析に利用できるプログラミング言語(環境)は他にも複数ある。
- SPSS(IBM)
- 高度な統計解析手法まですべて使えるパッケージ環境。大学や研究期間で日常的に統計解析を行うのには便利だろう。だが高価であり、個人では利用しにくい
- R
- オープンソース/フリーソフトの統計解析言語および環境。個人でも利用しやすいが、汎用言語ではない。つまり、Rを学習しても、他の目的でのプログラミングに応用できない。
Pythonは汎用言語だからあらゆる目的に利用でき、2022年現在、世界一学習者の多い言語でもあるから、利用できるライブラリも豊富だし、Web上で情報提供してくれるユーザ(困ったときの相談相手)も多い。専門のSEやプログラマでなくとも、現代は誰でも一つはプログラミング言語を学ぶべき時代だが、その目的に最適なのがPythonである。
Python言語や、必要なライブラリを履修者のPCにインストールする方法はstep02で詳述する。