読者です 読者をやめる 読者になる 読者になる

統計学入門

今更ながらですが、基礎を固めるべく「統計学入門」の教科書をポチり読み始めました。
PRMLとかディープラーニングとか勉強してましたが、統計学をちゃんと知っておくのも必要かと思いまして。
 

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

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


まだ1章+α程度ですが、まさに自分が知識として固めたかった統計学の背景や統計学の中に登場する各要素の繋がりが整理されていて、読んでいく中で頭の中で何となくフワフワしていた概念がまとめられていく感じがします。

 
多分1章が最も読みたかった部分。あとは確率分布とか中心極限定理とか検定、回帰分析とかなので、知っている内容のはず。
一応ひと舐めしようと思いますがほぼ読み飛ばしなので来週中くらいまでに終わらせたい。
 
 


ネットで情報検索していてもほとんどが断片の知識で終わっていて、背景まで理解把握している書き手が初学者向けに労力をかけて説明しているような情報にはあまり出会えない。ニッチなシチュエーション向けにうまくまとまっている記事もあるにはあるが、広く応用の効く本質的な議論はあまりなく、そのニッチなシチュエーションにマッチしていない限り、読み込むコストに対してのリターンが少ないように感じます。
それに対して、当たり前だが出版物は質が高く、お金を払う価値がある。特に、上記の本のような過去に何度も読まれてきた教科書は、それだけ内容の質が担保されていて、ある意味、安心して読み込む労力がかけられる。

 
端的に言うと、ネットのコンテンツよりも出版物の方が面白いことが多く、往往にしてネット検索に時間をかけるよりも、本をポチった方が早いと言うこと。
単にWebでは誰でも気軽に情報発信できるから、薄い内容になってしまうということなのですが。このブログの内容にしても、どう価値を出していけばいいのか、ちゃんと考えていかないとと思いました。
 

分析の種類

データ分析にはパターンがあり、知りたいことや与えられるデータによって、分けられます。
いろいろ学んでいくうちに、各パターンの具体的なイメージはついてくると思いますが、最初に、大枠の全体像についても把握しておくと、学びやすいかもしれません。
まずは、目的変数(簡単にいうと、値を予測したい変数のことです。)がある場合と、目的変数がない場合の2つに分けられます。

目的変数がある場合の分析

例えば、Kaggleのコンペページからダウンロードできるtrainデータや、Webのログデータから成型したユーザー毎のWeb行動データがあり、これを分析してみる。というシチュエーションを想定します。
その際の分析の目的は、「結果を予測出来るようになる」ということになります。
このために、「まず分析する対象(人、商品、不動産等)があって、その対象が持つ属性としての、目的変数と説明変数の関係を調べる」ということをします。

ここで、目的変数は、予測したいなんらかの変数(生死結果、価格、CVしたかどうか等)であり、説明変数は、目的変数の予測の手がかりになるその他の変数(人の年齢性別、居住地、商品のカテゴリ等)です。
いくつか例を挙げると、下記の通り。


タイタニック号沈没事故による乗客の生死を予測する(Kaggleのコンペ)

※過去の事実のデータを、2分割し、一方のデータで残りのデータを予測するということをやるため、"予測"という言葉を使っている。
Titanic: Machine Learning from Disaster | Kaggle

分析対象:タイタニック号の乗客
目的変数:事故による生死結果
説明変数:名前、年齢、性別、乗船場所、部屋のランク、等
意義:この場合、予測すること自体にはあまり意味はない。生死の結果の要因を明らかにすることで、今後の対策に活かすなどの意義がある。


不動産の売却値段を予測する(Kaggleのコンペ)

House Prices: Advanced Regression Techniques | Kaggle

分析対象:ある地区内の不動産
目的変数:各不動産の売却値段
説明変数:エリア、広さ、不動産カテゴリ、面する通り、等
意義:将来の不動産価値を予測できるようになり、不動産ビジネスで優位に立てる。売る側としては、値段の要因を明らかにすることでより高い値段で売却できるような改善を行える。

Web行動データからCV有無を予測する

分析対象:Webサイトユーザー
目的変数:CVの有無
説明変数:閲覧ページ、セッション数、PV数、アクセス日時、流入元、年齢、性別、等
意義:CVし易いユーザーを予測し積極的に集客する。サイト内の改善点を見つける。


つまり、「目的変数がある場合の分析」とは、「(目的変数の)結果を予測出来るようになる」ための分析ということです。


目的変数がない場合の分析

目的変数がない場合の分析は、主に、分析するサンプル間の関係や変数間の関係を明確にすることが目的となります。
また、複数の変数を新しい変数で説明する(要約する)場合もこれに含まれます。要約した後に、変数の因果関係が判明し、目的変数と説明変数に分かれる場合もあります。

具体的には、Web行動データからユーザーを興味関心カテゴリで分類するとか、アンケートデータの要素を整理するとかがあります。
 

変数の種類について

上記の目的変数及び説明変数については、それぞれそれが量的変数なのか質的変数なのかで、使う分析手法が異なります。
量的変数とは、読んで字のごとく何らかの量を表す変数のことで、例えば、体重とかPV回数とか値段とかです。
質的変数は、量的変数でない変数のことで、例えば、居住地とか、5段階評価のアンケート回答とか、性別とかです。
この量的変数と質的変数は、分析の時の扱いが異なるので、常にその変数がどちらに属するのかを意識しながら分析手法を考えることになります。

多変量解析について

先述までの分析は、全て多変量解析を想定した話になります。厳密に言うと、これ以外に、単変量解析、2変数解析という分析が存在しますので、これについても一応言及しておきます。

多変量解析というのは、使う変数が3つ以上の分析手法のことです。
それより変数が少ない場合、1変数のみを単変量解析、2変数のみを2変量解析といいます。
1変数のみの単変量解析は1次元の値の分布を把握し、2変量解析は2変数間のみの関係性をみていくことになり、多変量解析の前にざっくり変数の性質を把握するための分析となります。

多変量解析と2変量解析の大きな違いは、説明変数同士の相関性を考慮できるかどうかという点になります。
例えば、商品購入有無が目的変数で、客の性別、年齢が説明変数だった場合、2変量解析で年齢と商品購入有無だけみていた場合に相関性がない場合でも、性別という説明変数を取り入れ、性別毎に、年齢と商品購入有無を見ていくと、実は相関性があるようなケースは、2変量解析だけでは十分でなく、多変量解析が必要なケースとなります。


多変量解析のまとめ

分析の全体像としては、下記のような感じになります。
各分析の分類方法はこれまで説明した通り。それぞれの手法は、名前だけメモしておいて必要になった時に都度確認して習得していけばよいです。徐々にできる分析の幅が広がっていくことになるかと。
課題に遭遇したら、まずは、何をしたいのか(予測か分類か要約か)と、登場する各変数は何か(量的か質的か)を把握すること。それが整理できれば、あとはその場合の手法が何かを調べていけば万事OK。となります。

多変量解析まとめ(目的変数あり)
目的変数 説明変数 分析手法
量的変数 量的変数 重回帰分析
量的変数 質的変数 数量化I類
量的変数 質的変数 分散分析
量的変数 量的変数、質的変数混合 共分散分析
質的変数 量的変数 判別分析
質的変数 質的変数 数量化II類
質的変数 量的変数、質的変数混合 共分散分析

 

多変量解析まとめ(目的変数なし)
説明変数 分析手法
量的変数 主成分分析、因子分析
質的分析 数量化III類
親近性、距離、類似度データ クラスター分析、多次元尺度構成法、数量化IV類

 

 

データ分析が出来るようになるには

データの統計分析ができるようになりたいと思い、日々分析コンペに手を出してみたり、本を読んだり、ネットで情報を漁り、勉強している毎日です。
ただ、統計学を体系的に勉強したことがない自分にとって、正直どこから手をつけていいのかがわからず、足元で使える手法を具体例として調べ手を動かしつつも、自分にあった勉強方法も模索しています。


バックグラウンド、現状、目標

理論物理を修士までやっており、多少なりとも数学の手法や統計力学の周辺知識があります。
現状の業務では、いわゆる探索的な分析(グラフ化、相関性の高い変数の抽出、簡単な線形回帰モデル化等)を行っている程度です。
あとは、個人的なアレで恐縮ですが、3月中旬より、念願だった部署移動が叶い、研究/データ分析の部署に行けることになりました。今の環境とはガラッと変わり、より自分がやりたいことに集中できるようになると思います。
目指したい姿として、分析屋さんになりたいというよりは、まずは分析が出来ることで食いっぱぐれないようになること、そして、人工知能が今のパソコンくらいのレベルで当たり前に普及した近未来で不自由なく人工知能を使いこなせるようになること、膨大なデータ量の中から独自の価値を見つけることができるようになることくらいが今の目標です。


分析が出来るということ

「分析が出来るようになりたい」と言う前に、その分析とはなんぞやということなのですが、一口に「分析」と言っても幅広く、とりあえずwikipediaを引用してみると、

分析(ぶんせき、希: ἀνάλυσις、羅、英: Analysis、 独、仏: Analyse)は、
1. ある物事を分解して、それらを成立している成分・要素・側面を明らかにすること。
2. 物質の鑑識・検出、また化学的組成を定性的・定量的に鑑別すること。
3. 概念の内容を構成する諸徴表を各個別に分けて明らかにすること。
4. 証明するべき命題から、それを成立させる条件へ次々に遡っていくやり方。

とあります。

自分の考えている分析は、1と3と4を含んでいますが、抽象的すぎてこの場合あまり得るものがありません。
もっとわかりやすく一言で言うと、「データから特徴を抽出し、事象を理解すること。」だと思っています。
特にオンライン上で起きている様々な事象は、そもそも今までは認識すらされていなかったと思っていて、それが、データを保存し分析できるようになってきて初めて研究の対象として認識されてきているのが現状だと思っています。また、今後IOT、VRなどが商用サービスとして発達してくるにつれて、ますますデータ量が増え、そこで何が起きているのかを理解し認識することに価値が出てくると思います。このような世界で、自分の望む方向に少しでも世界を動かしていけたらいいなと考えています。


というのがまず、大きな概念の話。
具体的にそれらが実現できる、もしくはそれらに関係のある「分析」とは、下記だと思っていて、今は主に「統計的な分析」と、「機械学習を使った分析」について勉強しているという状況です。

  1. 統計的な分析
  2. 機械学習を使った分析
  3. ディープラーニングを使った分析

統計学は所詮方法論

ネットだけだとほとんどの情報が断片的で散らばりすぎていて、初心者が学んでいくには少しハードルが高いです(それでもそうしていくしかないのですが)。
また、教科書だと、半分くらいはすでに知っている情報だったり、今取り組んでいる問題とはほとんど関係ない情報だったりするので、これも一般的に社会人が統計学を学ぶスタイルとしては効率が悪い(それでも教科書を改めて読み込むべきフェーズがなくはないのですが)。

そもそも統計学は、理論物理学とは違い、方法論であり、ツールとしての先人たちの知恵でしかない。これを「体系的に」と言っている時点で間違っているのかもしれません。本来、別の研究したいテーマや分野があって、その評価の方法が各分野で共通で使えるというものに過ぎない。全てを知っていなくてもよく、正しく使えれば良い。その正しく使えるラインは、当然自分の研究したいテーマによって違うので、誰かに教えてもらうのではなく自分で決めるべきものなはず。
だから、データ分析(とその背景にある統計学の知識)は、実データをいじりながら、学ぶべきだという結論に至り、そのようなスタイルで勉強できる環境を探しています。さらにいうと、やっぱり最低ライン押さえておくべき基本的なポイントは、「データ分析が出来るようになるため」というざっくりしたレベルにおいても共通してあり、ここをちゃんと押さえて、(かつできれば効率的に)学習できるWebコンテンツがあればベターです。

手を動かしながら、ざっくり体系的にかつ、必須のポイントを押さえられて勉強出来るというのは、なかなか難しいのですが、先述の下記の記事で紹介している情報サイトや、Codecademy、HackerRankなどの学習サイト、あとはKaggleとかのデータ分析コンペサイト、大学の授業がオンラインで受けられるCourseraなんかを使いこなして、学んでいくのが一番近道かなぁと思ったりしています。

データ分析の勉強方法 - サイバースイッチ


これらを学ぶ中で、統計的な分析、機械学習を使った分析、ディープラーニングを使った分析、これらがどういう位置づけでそれぞれどういうものなのか、出来るだけポイントを整理してここに書いていきたいと思います。