So-net無料ブログ作成

ベイズ統計学入門 [統計学]

■ベイズ統計学を学ぶには
日本でもベイズ統計学に関する本が増えてきました。RやWinBUGSの普及ともにベイズが身近な存在になってきています。しかし、入門書などでは「主観確率」を扱えてビジネスに有用とか書いてありますが、なかなか一般企業でビジネスに使われている状況にはなっていないのではないかと思っています。

その理由はベイズモデルの複雑さ(柔軟さ)にあるのではないかと思います。たとえば、普通のロジットモデルに慣れてしまうと、階層ベイズを使ったロジットモデルを理解するのにちょっとしたハードルがあるように感じられます(少なくとも私はそうでした)。WinBUGSというMCMCサンプラーでモデリングするんだ~というところはなんとなく分かるんですが、モデル式をどのように記述すればいいのかイマイチ想像がつかないのです。

これから紹介する本のようにこのあたりの学習のしづらさを補うものが登場してきましたが、まだまだ入門~中級あたりをサポートする書籍が少ないのが現状のようです。様々なBUGSモデルとRコードを併記したベイズモデルの事例集があると便利と思うのですが、どこかの出版社で企画してくれないかな・・・。

そんなんなこんなで、以下、ベイズ上達のために有用と思う書籍を列挙しようと思います。頻度主義統計学(フツーの統計学)をある程度理解している前提です。小生は頭が良くないのでベイズを理解するのにとても時間がかかりました(今でもちょっと知識があやしい)が、これらの本を組み合わせれば理解が深まることでしょう。

■ベイズを理解する上で有用な和書

データ解析のための統計モデリング入門――一般化線形モデル・階層ベイズモデル・MCMC (確率と情報の科学)

データ解析のための統計モデリング入門――一般化線形モデル・階層ベイズモデル・MCMC (確率と情報の科学)

  • 作者: 久保 拓弥
  • 出版社/メーカー: 岩波書店
  • 発売日: 2012/05/19
  • メディア: 単行本


・この本を久保先生が出版してくれたおかげで初級~入門の知識をさくっと入手できるようになりました。BUGSやRコードも著者サイトからダウンロードできるし言うことなしです。ベイズを勉強しよう!と思ったら必ず入手すべき本です。


ベイズ統計学入門

ベイズ統計学入門

  • 作者: 渡部 洋
  • 出版社/メーカー: 福村出版
  • 発売日: 1999/09
  • メディア: 単行本


・久保先生の本は直観的にベイズを理解できるようになっていますが、理論が手薄です。ベイズ理論の入門はこの本が優れています。頻度主義統計学からベイズ統計学の理論的な架け橋になっています。数式と図のバランスが絶妙です。ただし、この本にはMCMCの記述がないので別の本で勉強する必要ががあるでしょう。


計算統計 2 マルコフ連鎖モンテカルロ法とその周辺 (統計科学のフロンティア 12)

計算統計 2 マルコフ連鎖モンテカルロ法とその周辺 (統計科学のフロンティア 12)

  • 作者: 伊庭 幸人
  • 出版社/メーカー: 岩波書店
  • 発売日: 2005/10/27
  • メディア: 単行本


・MCMCについては伊庭先生のこの本が決定的に分かりやすいと思います。上記の久保先生の本と合わせれば基礎は十分でしょう。


ベイズ統計データ解析 (Rで学ぶデータサイエンス 3)

ベイズ統計データ解析 (Rで学ぶデータサイエンス 3)

  • 作者: 姜 興起
  • 出版社/メーカー: 共立出版
  • 発売日: 2010/07/24
  • メディア: 単行本


・過去何回か紹介しましたが、この本は名著だと思います。Rコードが豊富です。しかもほとんどパッケージが使われておらず、アルゴリズムがRコードで実装されていますので、コードを解読するとアルゴリズムが理解できます。どちらかというと時系列解析をベイズでやりたい人向けですが、MCMCのサンプルコードも登場するので、階層ベイズに興味がある人にとっても有用と思います。


Rによるモンテカルロ法入門

Rによるモンテカルロ法入門

  • 作者: C.P.ロバート
  • 出版社/メーカー: 丸善出版
  • 発売日: 2012/08/23
  • メディア: ムック


・石田先生のMCMC本。Rのサンプルコードが豊富な極め付けのような本です。モンテカルロ積分の基礎から収束判定の数式がしっかり書いてあるなどかゆいところに手が届く感じですね。中級~上級者はこの本で勉強するとよいと思います。私もこれからこの本にトライします。

■最後に
日本のベイズ本はWinBUGSでのMCMCを紹介する本が多いのですが、残念ながらWinBUGSは開発がストップしちゃっています。JAGSやSTANなどの代替ツールが登場してきているので、今後はこのようなものが主流になってくるのだと思います。ちなみに、和書ではこれらのツールを詳述するものはありません。体系的な書籍の登場が待たれるところです。

タグ:MCMC ベイズ

PythonでMCMC(メトロポリス法)-ベイズ統計学 [統計学]

最近は状態空間モデリングの勉強をしています。その一環できちんとMCMCを理解しようとあれこれ資料を漁っていました。マルコフ連鎖モンテカルロ法を実装してみようというブログ記事や「計算統計 2 マルコフ連鎖モンテカルロ法とその周辺」などを読みつつ、メトロポリス法というシンプルなMCMCをPythonで実装してみました。

■計算条件
・2変量正規分布からサンプリング
【2変量正規分布】


・b = 0.5 (ここでは適当にこの値にした)
・burn-in = 0
-サンプリングの挙動を確認するためバーンインは0とした

■Pythonコード
#!/usr/bin/env python
#-*- coding:utf-8 -*-

import math
import random
import numpy as np
import matplotlib.pyplot as plt

def metropolis(func, start=10.0, delta=2.0, burn_in=0, seed=1):
    metro_iter = _metropolis(func, start, delta, seed)
    for i, value in enumerate(metro_iter):
        if i > burn_in:
            yield value
            break
    for value in metro_iter:
        yield value
       
def _metropolis(func, start, delta, seed):
    random.seed(seed)
    initial_x1 = start
    initial_x2 = start
    initial_fx = func(initial_x1, initial_x2)
    proposed_x1, proposed_x2, proposed_fx = 0.0, 0.0, 0.0
    for j in range(1,1000):
        proposed_x1 = initial_x1 + random.uniform(-delta, delta)
        proposed_x2 = initial_x2 + random.uniform(-delta, delta)
        proposed_fx = func(proposed_x1, proposed_x2)
        ratio = proposed_fx / initial_fx
        if ratio > 1.0 or ratio > random.random():
            initial_x1, initial_x2, initial_fx = proposed_x1, proposed_x2, proposed_fx
            yield proposed_x1, proposed_x2, proposed_fx
        else:
            yield initial_x1, initial_x2, initial_fx

def main():
    b = 0.5
    Z = 2*math.pi/math.sqrt(1.0-b**2.0)
    f = lambda x1, x2: math.exp(-(x1**2-2*b*x1*x2+x2**2)/2)/Z
    xb1 = []
    xb2 = []
    fxb1 = []
    for x1, x2, fx in metropolis(f):
        xb1.append(x1)
        xb2.append(x2)
        fxb1.append(fx)
    
    tx = range(1,len(fxb1)+1)
    md = [np.median(fxb1)]*(len(fxb1)) 
    
    plt.plot(xb1,xb2,"bo")
    plt.axis([-10, 10, -10, 10])
    plt.show()
    plt.plot(tx, fxb1)
    plt.plot(tx, md, "r")
    plt.axis([0, 1000, 0, 0.14])  
    plt.show()

if __name__ == '__main__':
    main()


■結果
・2変量の動き
figure_1.png
#初期値から数サンプルはふらふらと彷徨うが、しばらくすると最大値付近に収束

・p(x1,x2)の収束状況
figure_2.png
#時系列にグラフ化すると収束性を確認することができる

■感想
・メトロポリス法はとシンプルなアルゴリズムで理解しやすい
・この調子でメトロポリスヘイスティング法とギブスサンプラー法も理解する予定
・GAなんかを併用する手法はないのかな?

■参考文献

計算統計 2 マルコフ連鎖モンテカルロ法とその周辺 (統計科学のフロンティア 12)

計算統計 2 マルコフ連鎖モンテカルロ法とその周辺 (統計科学のフロンティア 12)

  • 作者: 伊庭 幸人
  • 出版社/メーカー: 岩波書店
  • 発売日: 2005/10/27
  • メディア: 単行本


・伊庭先生の解説が一番分かりやすいと思う。これが少し難易度が高いなら久保先生のベイズ本などを最初に読むといいです

ベイズ統計データ解析 (Rで学ぶデータサイエンス 3)

ベイズ統計データ解析 (Rで学ぶデータサイエンス 3)

  • 作者: 姜 興起
  • 出版社/メーカー: 共立出版
  • 発売日: 2010/07/24
  • メディア: 単行本


・あんまり注目されていないような気がするんだけど、この本も名著です。MCMCのRコードもあります。状態空間モデルのRコードはとても重宝しています。北川先生の時系列本と合わせて読むと理解がより深まりますね!



タグ:MCMC ベイズ

データ分析上達法②「データ分析と社会人大学院」-データサイエンティストを目指して(4) [データサイエンティスト]

前回の記事でデータ分析を身に着けるための手段として、①Rを独学で身に着ける、②社会人大学院に入学する、③データ分析専門企業に転職する。という3つを提案しました。今回は「②社会人大学院に入学する」について書いてみようと思います。

Rなどのフリーで高度なツールがある今では頑張れば独学でデータ分析技術を習得することができると思います。ただ、忙しい社会人がゼロから独学で勉強して身に着けるというは大変なことではあります。どうせ頑張らないといけないならもっと手っ取り早くかつ本格的に学べる方法はないかというと、その一つが大学院に通うという方法になります。大学院以外にもEMCが開催しているデータサイエンティスト育成トレーニングコースというものがあるらしいですが、今回の主題はあくまでも「社会人大学院」です。

私は社会人大学院の出身です。数年前に「筑波大学ビジネス科学研究科経営システム科学専攻」(通称:GSSM)というところを修了しました。なので、この大学院については詳しく紹介することができます。この大学院は茨城県つくば市にあるわけではなく、東京の茗荷谷にあります。また、平日夜間と土曜日に講義やゼミが開催されるので都心に勤務しているビジネスマンが会社勤務を続けながら専門的な学識を深めることができ、修士号(MBA)や博士号まで取得することができます。おまけに国立なので授業料も私立に比べれば格段に安価です(2年間で130万円程度)。

この大学院のコンセプトは「経営・数理・ITの融合教育」です。戦略論やマーケティングなどの経営学、統計学や最適化などの数理的な手法、そしてプログラミングやデータベースなどのIT技術をバランスよく学ぶことができます。修士課程では修士論文が修了条件に課せられており、アカデミックな色彩が強い大学院です。MBAを標榜していますが、ケースの読み込みとディスカッション中心の一般的なMBAとは異なり、アカデミックにきちんとした論文を作成しないと修了できません。論文指導は3人の指導教官により行われます。通常、この3人は別々の分野の教官となりますから、学際的な色彩の強い社会人の研究に対応した指導体制と言うことができます。

この修士論文の作成には非常に苦労するわけですが、これが何とも他では得られない学びの場になります。自前のデータを持ち込み、又は自分でデータを収集した上で、RやSPSSの分析ツールをバリバリ使って研究を行うことになります。また、スパルタな先生もおり、生半可な分析では修了させてももらえません。分析しながら深く思考してそれを論文として表現する訓練を積むことになります。このような環境ですから、分析ツールなどに触ったことがなかった人でも2年間で分析を使いこなし知識を獲得し表現する手段を嫌というほど頭と体に刷り込むことができます。

30人の少人数教育なので学生間のコミュニケーションも非常に濃密です。多様なジャンルの職場で働いている人たちなので自分の専門外のことを同級生から学ぶことができます。統計学のスペシャリストが経営を学ぶために来ていたりするので、RやSPSSについては既にプロレベルという人も少なくありません。分析手法で分からないことがあれば、プロの同級生に相談することが容易にできます。統計学やプログラミングなどの実務知識の学習は詳しい人が近くにいると非常に捗るので、これはとても恵まれた学習環境です。

また、この大学院の本質は分析ツールの小手先のテクニックを学べることにあるわけではなく、「本当の問題とは何か?」ということを深く考えて、これを解決するための手段を自分と教官の共同作業で追及していくことにあります。データサイエンティストの文脈ではRやHadoopなどのキーワードに踊らされている感がありますが、このようなツールは時代とともに変遷していきます。本当に身に着けるべきことは問題発見能力と問題解決能力です。たとえRやSPSSが上手いデータサイエンティストでもこれらの能力が備わっていなければ、現在の流行が去るのと同時に役に立たない人材になってしまうと思います。

欧米では社会人教育が充実しているのでビジネスで必要なことを在職しながら大学で学ぶことができます。しかし、日本ではまだ大学での社会人教育が浸透しているわけではありません。データサイエンスを身に着けて活躍したい人が社会人大学院で学ぼうとすると適した大学が非常に少ないのが現状です。GSSMは本格的なデータサイエンティストの育成に適した現行では日本唯一の社会人大学院と言えるでしょう。

GSSMは入試倍率が比較的高いのでそれなりに準備が必要です。とはいうものの、昔みたいに倍率10倍ということはなく3~4倍といったところなのできちんと対策を立てれば合格できます。入試では研究計画書が要になるので、アカデミックスタイルで書き上げる必要があります。入試対策についてはググればいろいろ出てきますのでここでは触れません。ちなみに、私は以下の本で勉強しました。

■参考文献

研究計画書の考え方―大学院を目指す人のために (DIAMOND EXECUTIVE DATA BOOK)

研究計画書の考え方―大学院を目指す人のために (DIAMOND EXECUTIVE DATA BOOK)

  • 作者: 妹尾 堅一郎
  • 出版社/メーカー: ダイヤモンド社
  • 発売日: 1999/03
  • メディア: 単行本


・知財界隈でも有名な妹尾先生の本です。研究計画書の実例とそれに対する先生のコメントがとても参考になりました。社会人大学院に限定されていませんが、GSSMはアカデミックスタイルなのでこの本にあるような内容は踏襲しておく必要があるでしょう。



国内MBA研究計画書の書き方―大学院別対策と合格実例集

国内MBA研究計画書の書き方―大学院別対策と合格実例集

  • 作者: 飯野 一
  • 出版社/メーカー: 中央経済社
  • 発売日: 2003/07
  • メディア: 単行本


・こちらはMBA対策本です。GSSMの事例も掲載されているので参考になると思います。

データ分析上達法①「Rで分析を始めよう!」-データサイエンティストを目指して(3) [データサイエンティスト]

データ分析上達法①「Rで分析を始めよう!」-データサイエンティストを目指して(3)

多くの企業でデータ分析のニーズが増大していますが、データサイエンティストと呼ばれるプロフェッショナルは希少であり、なかなか採用するのは難しいらしいです。じゃあ、どうすればいいのか?

なんのことはありません。
自分で初めてしまえばいいのです。

Excelしか使ったことがないし。文系だし。とかいう意見が聞こえてきそうですが、今のスペックはあまり関係ないです。要はやる気です。スキマ時間を使ってデータ分析の練習をすれば誰でもある程度の分析スキルを身に着けることができると思います。

ビッグデータという波に乗っているデータ分析専門の会社でデータサイエンティストという肩書を名乗っている人でも、大学で統計学や情報工学を専攻した人ばかりではありません。むしろ、事業会社でマーケティングや営業をやっていた人も少なくないのです。つまり専門教育を受けてない人でも訓練を受け、研鑽に励めば価値のあるコンサルテーションができるレベルになれる。それがデータ分析です。

では、どのようにすればてっとりばやくデータ分析を身に着けられるのか?
本稿では次の、①Rを独学で身に着ける、②社会人大学院に入学する、③データ分析専門企業に転職する。という3つのソリューションを提案したいと思います。今日は①について書きます。

①Rを独学で身に着ける
先ずやらなければならないことはExcelを卒業することです。Excelにも回帰分析などの統計分析機能が実装されていますが、機能が非常に限られています。なので、ちょっと高度なことをやろうとExcelではすぐに限界を迎えます。

そこで、R です。

Rというのはデータを分析するためのソフトウェアです。すごく高機能ですが、なんとフリーです。ダウンロードしてPCにインストールすればすぐにでも動きます。回帰分析もクラスタリングもタダで実行できます。

ただし、プログラミングを経験したことのない人にとっては若干敷居が高いでしょう。しかし、頑張って一度習得してしまえば様々な可能性が開けます。GUIのSPSSなどが手元にあるならばそこからスタートでもいいのですが、結局あれこれ深いことをやろうとするとGUIでは必ず物足りなくなります。初めからRと向かい合う方が結局は近道だと思います。

そうはいっても何もデータ分析について知らない人が突然Rというのも酷な話かもしれません。そこで、R勉強会というものに参加することをお薦めします。データ分析やプログラミングの勉強をする時には近くに詳しい人がいると非常に効率的に身に着けられます。分からないことを長時間かけてGoogleで調べるよりもこのような会で上手く知り合いを作ってしまうのがはるかに近道でしょう。

また、後ほど紹介しますが、Rは世界各国で使われているので書籍が非常に豊富です。入門者のための書籍も当然充実しています。怖がらずに初めてみましょう。案ずるより産むがやすしというのがデータ分析です。


◆データ分析入門者のためのR本

Rで学ぶデータ・プログラミング入門 ―RStudioを活用する―

Rで学ぶデータ・プログラミング入門 ―RStudioを活用する―

  • 作者: 石田 基広
  • 出版社/メーカー: 共立出版
  • 発売日: 2012/10/24
  • メディア: 単行本


・Rstudioという便利な統合環境に初めから慣れてしまったほうがいいです。最新バージョンはずいぶん使いやすくなりました。これを使うとナイーブなRを使うことはあまりなくなります。この本は初歩の初歩からRについて解説されているので、思い立ったまずこの本でしょう。


Rによるデータサイエンス - データ解析の基礎から最新手法まで

Rによるデータサイエンス - データ解析の基礎から最新手法まで

  • 作者: 金 明哲
  • 出版社/メーカー: 森北出版
  • 発売日: 2007/10/13
  • メディア: 単行本(ソフトカバー)


・以前にも紹介しましたが、この本は良い本です。統計学から機械学習までさまざまな手法が紹介されています。R入門者でも持っていると視野が広がると思います。


R言語逆引きハンドブック

R言語逆引きハンドブック

  • 作者: 石田基広
  • 出版社/メーカー: シーアンドアール研究所
  • 発売日: 2012/01/26
  • メディア: 単行本(ソフトカバー)


・辞書はこれがベストですね。コーディングの基礎から応用まで幅広く記載があります。手元に置きながらRを試すと上達が早いと思います。RStudioと同じ著者です。石田先生の本は良い本が多い気がします

◆関連記事
データサイエンティストの教養(ビジネス編)-データサイエンティストを目指して(2)
勇気を出して初めてのデータ分析 - データサイエンティストを目指して(1)
メッセージを送る

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。