StatModeling Memorandum

StatModeling Memorandum

StanとRとPythonでベイズ統計モデリングします. たまに書評.

BUGS

『ベイズ統計モデリング ―R,JAGS, Stanによるチュートリアル 原著第2版―』 John Kruschke著、前田和寛・小杉考司監訳

タイトルの本を頂きました。ありがとうございます。僕は原著を少し読んだことがあり、こちらで非常に評判が高い本です。翻訳にもかかわらず原著とほぼ同じ値段で購入できます。 先にJAGSになじみのない方へ説明しておきますと、JAGSはRコアメンバーの一人で…

岩波データサイエンスvol1のいくつかの例題をStanでやってみた

岩波データサイエンスは従来の書籍とは異なり、以下のサポートページの異様な充実がウリの一つです。 https://sites.google.com/site/iwanamidatascience/ また、StanとRStanのはじめの一歩と言える使い方が載っています。また、作図を含めたソースコードがG…

傾向スコアを使ったベイズモデル

傾向スコアについては以下を参考にして下さい。 [1]統計的因果推論(傾向スコア)の勉強会資料をアプしてみた(web) [2]傾向スコアを用いた共変量調整による因果効果の推定と臨床医学・疫学・薬学・公衆衛生分野での応用について(pdf file) [3]傾向スコア…

分布から見た線形モデル・GLM・GLMM

久保さんのみどりぼん勉強会もせっかく催されていることだし、それにちなんだ記事を書きたいと思っていました。ここまでいい加減にGLMとGLMMをすっ飛ばして紹介して、さっさとBUGS/Stanのラビリンスパラダイスへいざないたいなぁという心境をスライドにしま…

データ解析で割安賃貸物件を探せ!(山手線沿線編)

@housecat442さんのプレゼンにインスパイアされて、某S社様のサイトからスクレイピングさせていただき家賃予測を行いました。目的は広さ・最寄駅・築年や各種設備の割にお得な割安物件を探すことです。首都圏の賃貸物件を全て扱うのは大変なので、まずは山手…

JAGSで2次元のマルコフ場モデル

WinBUGS, JAGS, Stanの三姉妹を等しく愛する僕としては何使っても同時分布を自由に使えるんだよ、ということで2次元データのマルコフ場モデルをやりました。 まず1次元データに対するCAR modelは、Itoさんのこの記事とこの記事を参照。Rパッケージの{dlm}や{…

ノンパラベイズ(ディリクレ過程)の実装

BUGS bookの11章の8.1節のディリクレ過程の写経です。データは以下のサポートページ(11.8.1: Galaxy clustering: Dirichlet process mixture models)でWinBUGS用のodcファイルで配布されています。 WinBUGSをインストールしていない人のために.RDataにした…

Zero-Inflated Poisson分布を使った来店人数などのモデリング

東京R勉強会(#TokyoR)で「100人のための統計解析 - 和食レストラン編」というタイトルで発表してきました。スライドは以下になります。 100人のための統計解析 和食レストラン編 from berobero11 前半の散布図行列に関しては別途記事を書きましたのでそち…

階層ベイズモデルで勝敗データからプロ棋士の強さを推定する

前の記事のモデルを若干拡張して、勝敗データから将棋のプロ棋士の強さ(skill)を推定しました。 まず勝敗データとレーティングの値ですが、こちらのサイトを参考にさせていただきました。このようなデータを日々更新していくのには多大な努力と忍耐がない…

Stanのリポジトリにある「BUGS Example」で修行する

たまにはBUGSやStanの勉強法について書きます。 まずは久保先生の緑本の例題(ただし11章を除く)をBUGSやStanで実装するのがhello worldに相当します。 次にThe BUGS Bookをはじめから読みつつ気になったBUGSコードを実際に書いてみるのがよいと思います。 …

「The BUGS Book : A Practical Introduction to Bayesian Analysis」 David Lunn et al.

★★★★★の良書です。WinBUGS, OpenBUGSの作者らによる初の教科書です。登場遅すぎですよ。 非常によくまとまっており、久保先生の緑本の次に読むべき本と言えそうです。買いの一択です。 目次はここから。サポートページやサンプルコードはここから。 内容は理…

infer.netの例題シリーズ6 項目反応理論(IRT)+α

今回は「Difficulty versus ability」をBUGSで実装します。この例題のもとはDARE modelというもので以下の論文になります。 "How To Grade a Test Without Knowing the Answers --- A Bayesian Graphical Model for Adaptive Crowdsourcing and Aptitude Tes…

infer.netの例題シリーズ5 Click model (改)

今回は「Short Examples: Click model」をやります。実はこの分析の強化版が「Longer Examples: Click through model」になっていまして、個人的には今回のデータだけでは教育用途かなと思いました。 とにかくデータと目的を紹介します。まずはデータですが…

infer.netの例題シリーズ4 Bayesian PCA

今回は「Short Examples: Bayesian PCA and Factor Analysis」をやります。みんな大好きPRMLの「12章 連続潜在変数 | 12.2 確率的主成分分析 | 12.2.3 ベイズ的主成分分析」にバッチリ対応します。 infer.netの元ネタと同一の真のパラメータからデータを作っ…

infer.netの例題シリーズ3 混合二変量正規分布のあてはめ

「Tutorial 6: Mixture of Gaussians」をやります。みんな大好き混合正規分布です。 infer.netの例題は分散小さめな2つの正規分布がかなり離れており、点も混じることなくつまらないのでサンプルデータの作成部分を少しいじりました。まず二変量正規分布が2…

infer.netの例題シリーズ2 Tutorial 5: Clinical trial

今回は「Tutorial 5: Clinical trial」をやります。データは以下の通り。 outcometreat00001000001101111111 2列目が薬の処理の 有/無、1列目はその結果で 1が治った/0が治らなかった となっています。問題は薬の処理は効果があるかどうか、すなわち治る確率…

infer.netの例題シリーズ1 Bayes Point Machine

BayesPointMachine(以下BPM)の元論文はこちら(R.Herbrich, T.Graepel, and C.Campbell, BayesPointMachines, JMLR, 2001)。 BPMはクラス分類を行うアルゴリズムでSVMに似ています。SVMはマージンを最大にするwを求めますが、BayesPointMachineはモデルの…

WinBUGSのTrapを止めるには

はじめに モデルがよくない/まちがっていることが多いです。徹底的に可視化してからモデル式を考えましょう。 観測データにモデリングを破綻させるような凄い「外れ値」が含まれているとダメ。 全個体の説明変数が同じ値だとダメ。 Linux上でwineを使ってWin…

不等号を含むデータの解析

以下のようなデータがあるとします。 PersonIDYTreat138.3010152.30140.8010226.402020230.102250228.50345.2131357.31359.91467.21448.71460.8147115104.215851591.71561.31572.11 1列目はある人のID、2列目はその人から測定された値(ここでは便宜的にある…

ドラゴンボールの勝敗結果から戦闘力を推定する

以下のような個人データと勝敗データを扱います。 CIDnamepower.level1ベジータ180002悟空80003ナッパ40004クリリン17705栽培マン1200 winnerloser121315233445 モデルを記述する部分であるBUGSコードは以下になります。 model{ for (game in 1:N.game) { wi…