step01 プログラミングと統計解析

統計解析の構成

「山之口洋のはじめての統計解析【基礎編】」では、表計算ソフトExcelを利用して、統計解析の基本的な手法と知識を学んだ。統計解析という学問分野の構成は、つぎの図のようであった。

図1: 統計解析の構成(【基礎編】の図を再掲)

これはすでに確立された構成であり、この授業で使う教科書(step02で紹介している)も含め、どの本もおおむねこの流れに沿っている。
記述統計
具体的なある集団について、その性質を数値やグラフなどで把握し、記述する。把握結果を表す数量が基本統計量である。
確率分布
記述統計の結果を基に、推測統計の各種手法を実行するためには、種々の確率分布(または確率密度分布)が必要である。
推測統計
標本(集団)についての記述統計の結果から、母集団の統計量についての情報を得ようとすること。母集団についての仮説を検証(仮説)検定と、標本の統計量から母集団の統計量を推測する推計とがある。

授業の目的

この「はじめての統計解析【応用編】」では、履修者が【基礎編】で身につけた(はずの)基礎知識を前提として、プログラミング言語Pythonと統計ライブラリを利用した統計解析の手法を学ぶ。手法自体は【基礎編】の範囲と重なる部分が多いが、回帰分析やモデル選択など、より進んだ内容も扱う。
言いかえれば、この授業科目の目的は履修者のみなさんをデータサイエンティストの卵にすることである。Pythonや、つぎのような統計解析関連のライブラリを学ぶのは、現実のデータを読み解き、そこから見えない情報を引き出すデータサイエンティストとしての強力なツールだからである

Numpy
行列演算ライブラリ
Pandas
データフレームを利用するためのライブラリ。Excelのワークシートにあたるデータ構造であり、統計解析の対象データを保持できるようにする。
Matplotlib
多機能で使いやすいグラフ表示ライブラリ。Excelのグラフ作成と同様の機能を提供する。
この授業ではPythonプログラミング全般を学習するわけではなく、あくまで統計解析に必要な部分だけだが、ここでPythonの基礎(の基礎)に触れておけば、私の「ICTアプリ開発I/II」によって本格的なPythonプログラマになるのはかなり容易だろう。プログラミングに興味のある人はぜひ挑戦してほしい。

なぜExcelではダメなのか

ダメではない。現に【基礎編】ではExcelを駆使して統計解析のさまざまな手法を理解し、実践してきた。
統計解析のツールという観点からExcelを見ると、

など、必要な機能は一通り備えている。その反面、 など欠点も大きい。
処理対象のデータを保持できるデータフレーム(data frame)さえあれば、処理手順そのものは普通のプログラミング言語で書く方がはるかに便利であり、細かい改良や再利用も簡単なのである。

なぜPythonなのか

統計解析に利用できるプログラミング言語(環境)は他にも複数ある。

SPSS(IBM)
高度な統計解析手法まですべて使えるパッケージ環境。大学や研究期間で日常的に統計解析を行うのには便利だろう。だが高価であり、個人では利用しにくい
R
オープンソース/フリーソフトの統計解析言語および環境。個人でも利用しやすいが、汎用言語ではない。つまり、Rを学習しても、他の目的でのプログラミングに応用できない。
しかし、せっかく時間をかけてプログラミング言語を学習するなら、統計解析だけではなくあらゆる目的に利用でき、一生モノのスキルになる方がよいに違いない。
Pythonは汎用言語だからあらゆる目的に利用でき、2022年現在、世界一学習者の多い言語でもあるから、利用できるライブラリも豊富だし、Web上で情報提供してくれるユーザ(困ったときの相談相手)も多い。専門のSEやプログラマでなくとも、現代は誰でも一つはプログラミング言語を学ぶべき時代だが、その目的に最適なのがPythonである。
Python言語や、必要なライブラリを履修者のPCにインストールする方法はstep02で詳述する。