Knowledge As Practice

JAIST(東京)で Transformative Service Research に取り組んでる社会人大学院生の研究・勉強メモ

5章まで読了『StanとRでベイズ統計モデリング』

 
昨日はJapan.Rに初参加。4〜5時間ずっとスクリーンを見ていたので眼精疲労がスゴい。8割方よくわからなかった(領域が違うので)けれど,おもしろい収穫もありました*1

 
さて,『StanとRでベイズ統計モデリング』を5章まで読み進めました。私は出張が多いので,移動時間にちょくちょく読むスタイル。実際のコードは新幹線の中や在来線特急の中で動かしています。1つStanコードを動かすのに4〜5回は修正します。大文字にすべきところを小文字にしていたり,スペルミスだったり,セミコロンが抜けていたり・・・。根気よく慣れるしかないのでしょう。

 
とはいえ,4章・5章でキツいのは Stan そのものの理解というより,R・ggplot2 の理解のほうでした。だから1つ章を終わらせるのに,4週間ほどかかった・・・。特に ggplot2 はそんなに慣れていないから大変。geom_ribbon, geom_pointrange とかなんとか使ったことがないので,その理解に時間を費やしました。もう勢いで “ggplot2: Elegant Graphics for Data Analysis” も注文したくらい(まだ届いてないけど)*2

 

ggplot2: Elegant Graphics for Data Analysis (Use R!)

ggplot2: Elegant Graphics for Data Analysis (Use R!)

 
R・ggplot2 にそんなに慣れていない人が詰まりそうな部分がわかってきたので(自分のことなので),12月4日分の Stan Advent Calender で書く予定です。

Stan Advent Calendar 2016 - Qiita

*1:R Analytic Flowとかベイズの話とか発表者が不在でも発表ができるとか。

*2:修行が足りず,こういう本は電子書籍だと読めない派なのです・・・。

4章まで読了。『StanとRでベイズ統計モデリング』

当初1〜8章まででいいかなと目次を見てつぶやいたら,著者の方から「10章も読んだほういい」というアドバイスをいただきました(感謝です。読むモチベーションもあがります)。ということで,1〜8章+10章を読むことを目標にします*1。自分の復習として感想を記録しておきます。

 

環境構築

今年からMacを使うようになり,Stanを使える環境はまだ作っていませんでした。次のページのとおりにやれば,問題なく完了しました。
https://github.com/stan-dev/rstan/wiki/Installing-RStan-on-Mac-or-Linux
※「If using g++ version 4.9 or higher〜〜」のところは不要だった。

 

読む前に

これまで1人でコソコソ学んできて(Kobe.Rを中心に他のRの勉強会には参加したことがあります),久保先生の『データ解析のための統計モデリング入門(みどり本)』と豊田先生の『基礎からのベイズ統計学』をなんとか読み通しています。なので,「はじめに」に書いてある「前提とする知識」はなんとかクリアしていると思います。

 

1〜3章は在来線特急の中で読める。

今週の出張のお供として読んでいます。1〜3章までは実際にコードを書いてみるところはほぼないので,電車の中で揺られても読めます。読んでみた第1印象は「とってもていねい!」ということ。用語が1つ1つ説明されています。「thinning って何?」「lp__って何?」とこれまで疑問に思っていたのですが,解決することができました*2

 
3章2節には統計モデリングの手順があります。こういうことって,たぶん身近に詳しい人がいれば体得できるんでしょうが,私のような独学のものには助かります。

 

辛うじて突破の4章

Stanコードの書き方がていねいに解説されています。「そういう順番(やルール)で書けばいいのか」と目からウロコでした。私はプログラマでもデータサイエンティストでもなく,コードを書くときのルールをよく知らないので,こういう内容は助かります。

 
この章から実習があります。ついつい先を読んでしまいますが,ただ通読しているだけでは,わかった気になるので,実際に打ち込んで行きました。N とすべきところを n としていたり,ささいなことでエラーになるのを試行錯誤しながら,取り組んでいくことになるので,経験値が増えそうです。あと,model4-4.stan を読んでいて「このN_newって何? 突然出てきた!」と戸惑いましたが,サンプルコードを読んで解決できました。

 
52ページの解説は自分のR力のなさで,ちょっとぼんやりとした理解になりました(apply が苦手)。練習問題も(3)まではできたけど,R力のなさで(4)ができなかった…。残念。答えを見て,こんな簡単なものを解けない自分に自己嫌悪。

 
5章から先は少しずつやります。

*1:来年1月か2月までに読めたらいいなぁ,というゆっくりペースで行きます。JAGSを使った分析結果の論文を年内に書くのが優先なので。

*2:でも,正しいlp__の読み方は何だろう? 勝手に「えるぴーちょめちょめ」と読んでます。

統計的因果推論勉強会 第5回を開催しました!

経営学系統計分析エンドユーザーのため統計的因果推論勉強会第5回を行いました。最近週休3日制を打ち出した某有名大企業の新しいオフィス内での開催で,とても楽しかったです。参加者は7名(クローズド)。

speakerdeck.com

 
今回は宮川本の第5章(の特にバックドア基準)と星野本第4章「共変量選択と無視できない欠測」が勉強範囲でした。目的は2つ。1つは強く無視できる割り当て条件とバックドア基準が似たようなものであることを理解すること。もう1つはRでの実習。Rnotebookを使うと便利でした。配布する資料もカンタンに作れるので。

試用したものはこちらにあります。

github.com

 
Rでの実習は傾向スコアマッチングを星野本の巻末付録に載っているもので写経(使用したデータはいろいろねつ造したフィクションのものです),IPW法を岩波データサイエンス第3巻のサポートページに載っているもので写経しました。

 
c統計量(このcは大文字のほうがいいのか,小文字なのかわかりません・・・)については,私たちはお手軽に rms パッケージの lrm() でやったほうがラクです。「C」と記載されているところがc統計量です。

 
f:id:hikaru1122:20161029205730p:plain

 
星野本第4章までで,論文を読む・書くツールはだいたい出そろっているように思います。しかし,いろいろ謎は残ります。最大の謎は推定した因果効果の大きさ・小ささをどう判断したらよいか,です。効果量(effect size)のようにある程度の基準があれば便利なのですが・・・。

 
さて,最新の『行動計量学』には一般化傾向スコアを用いた論文が出ています。今度はそれもみんなで読んでみたいですね。

勉強会ツールとしての R Notebooks

RStudio をプロジェクタで映すと,ソースエディタが小さく見にくいです。必要なところだけを集中して,見やすくすることってできないだろうか,という動機から,もう1つの選択肢である R Notebooks(あーるのーとぶっく*1)を使えるようにしてみました。

RStudio Preview edition をインストールしてからの動作。

1. 左上の+ボタンから R Notebook を選ぶ。 f:id:hikaru1122:20161007013327p:plain  

2. 「田」のアイコンをクリックして Zoom Source をクリック。そうすると,R Notebook だけが表示されるようになって,プロジェクタに映すとき便利になる。 f:id:hikaru1122:20161007013345p:plain  

3. メニューの View から Zoon In をクリックして,望みの大きさにする。元の大きさに戻すときは Acutual Size をクリックすればOK。 f:id:hikaru1122:20161007013412p:plain

 
4. また元の4ペインに戻す場合は,「田」から Show All panes をクリック。 f:id:hikaru1122:20161007013424p:plain

 
勉強会のときはこれで乗り切れそう。

 

Jupyter Notebook と R Notebooks の使い分け

 
Jupyter Notebook はブラウザ内で動作するので,勉強会中にこのウェブページ見せたいとかよくネット検索するなら Jupyter が便利だと思います。R Notebooks などは次の補足を参考にしてください。

 

補足

 

R Notebooks がどんなものかを使う前に知りたいならこちら。

www.youtube.com

 

わかりやすい kazutan 先生のスライド

RStudioで R Notebook機能を試してみる

 

R Notebooks を使う準備

1.RStudio Preview edition をインストール。 ダウンロード先

www.rstudio.com

Desktop Version で OK。

 
2.基本 R Notebooks が使える状態になっている(2016年10月6日現在)。

 
3.でも,knit するときに「rmarkdown パッケージがないよ」と叱られるので,普通にインストールする。ただ特に分析結果を出力するつもりがないなら,インストールしなくてもいい思う。

*1:本当は複数形だけど,日本語に複数形はないので。

R を使うための Jupyter notebook インストールメモ

【2016年9月27日追記あり(いちばん下)】

--
土曜と日曜(2016年9月24日・25日),石川・品川の人たちと合宿に参加しました。2日目に3時間ほどのRの実習をする機会に恵まれ,つたないながらファシリテーター的な役割を務めました。ゼミは多国籍チーム(4カ国)なので,スライドは英語で,しゃべりは日本語中心*1

 
RStudio を使ってやってみたところ,起動画面がぱっと見で複雑そうな印象を与えるかもしれない,とふと思いました(実際,起動した瞬間に参加者から「あ,なんか難しそう」という空気が広がったような。)。

 
もう1つの可能性として,jupyter notebook(じゅぴたーのーとぶっく)があるかなと思いインストール。注意点と手順を2ステップで半年後・1年後の自分のためにメモしておきます。mac 向け。

 

【ステップ1】

↓の1〜6.を実行。5.のとき anaconda のバージョンは最新のものにした。

qiita.com

 

【ステップ2】

↓に従って,jupyter notebook をインストール。

Installation · IRkernel

 
無事,jupyter notebook で R が使えるようになりました。でも,初心者向け R 実習に使うには厳しいです。理由は2つ。インストールが難しい(っていうか,面倒。時間もかかる)のと,コードの補完機能がないから(あれは初心者には便利のようです)。

 
とは言え,画面はスッキリして威圧感ない。なんか出力結果に罫線があるし,見やすい。個人的には好き。

f:id:hikaru1122:20160926022201p:plain

 
そしてここまで書いて気付いた。 R notebookっていう選択肢があるじゃないか。また今度の機会にしよう・・・。

 
●参考

speakerdeck.com

 

【追記1】

ターミナルで毎回 jupyter notebook と打つのは面倒なので,note というエイリアスを設定した。エイリアスの設定方法は次のページがわかりやすい。

qiita.com

【追記2】

コードの補完機能がない,と上で書きましたがウソでした。あります。コードを書いているときに,tab で出ます。

 

【追記3】

等幅フォントにするにはちょっと設定が必要。以下、mac の場合をメモ。
1.ホームディレクトリのライブラリフォルダに移動。
2.隠しフォルダ .jupyter を表示(コマンド+シフト+.)
3.その中に custom フォルダを作る。
4.さらにその中に custome.css を保存する。
CSSファイルの中身は↓。
.CodeMirror pre, .output pre { font-family: Monaco, monospace; }
デキる人はコマンドライン一発なのだろうが、ムリなのでアナログ(?)でやった。
参考ページは↓
http://rakuishi.com/archives/jupyter-font-family/

*1:第一声は英語にしたけど,英語と日本語を交えながらやっていたら,だんだんシン・ゴジラ石原さとみっぽくなってきた感じがしてやめた。

研究法の向き不向き

昨日から「次世代知識科学特論」というすごい名前のクラスが始まった。JAIST人間力なんとかとか,大きなタイトルが好きみたい(私は嫌いじゃない)。どういう内容なのかは興味ある人はシラバスで検索してください。

www.jaist.ac.jp

 
この授業は,集中して質的な研究法も量的な研究法にも慣れましょう,という意図があるクラスのように思う。4日目と5日目は機械学習とかデータマイニングの講座になる。本来はドクターコース用だけど,今年からマスターの人たちにも開放されたらしい。そのため夜18時半〜22時までなのに,受講者がけっこう多い。

 
今日から2日間は文化人類学の先生によるエスノグラフィの演習。観察しながらメモを取るというのが難しい。途中であれこれと妄想してしまう。基本,量的なアプローチが好きだから,バランスを取るためにもエスノグラフィみたいなものもできるようになりたいと思う。でも,妄想が止まらない。きっとこの人の人生は〜とか,考えてしまう。

 
自分にそういう傾向があるということを知っただけでもよかったかも。ひょっとして,こういうアプローチには向いてないのかな・・・。まあ,まだ始まったばかりだし,明日もエスノグラフィの演習が続くので,少しずつ慣れていこう。在学中に1本,エスノグラフィで論文を書いてみたい・・・。

 
★ ★ ★
本日の進捗=1643文字

研究ノート代わりのブログ

たまたま読んだ向後千春先生(ハンバーガー統計学・アイスクリーム統計学でおなじみ)のブログと『きょうから日記を書いてみよう 2』に刺激を受け(大人なら10分で読める本),少しずつ更新頻度を上げてみる*1

 
kogo.hatenablog.com

 

きょうから日記を書いてみよう〈2〉日記をスラスラ書く方法

きょうから日記を書いてみよう〈2〉日記をスラスラ書く方法

 
『きょうから日記を〜2』を読んで得たのは次の2つ。

 
1.想定読者は未来の自分
→これならブログを研究ノートの代用にもできそう。
2.オチをつけない
→これなら気軽。どうせ想定読者は未来の自分だし。

 
さて,久しぶりに以前通っていた社会人大学院のゼミにお邪魔した。今年の現役の社会人学生もテーマ決めに悩んでいるようで,「思ったより楽にテーマが決まっていた自分はラッキーだったのかも」と思った次第。

 
在籍時はいろいろあって結局,管理会計が専門のベテラン先生に指導を受け,修論相当の論文を書いた。専門はぜんぜん違っても,一流の研究者からの指摘は的確で,社会科学の論文としてはそれなりのものができたと思う。

 
現在,博士後期課程で指導を受けているのはイケイケの若手の先生。研究進捗を報告しているとき,不明点があるときは鋭くポイントを突いてくれる。ベテラン研究者と若手研究者の両方から指導を受けた(いる)経験はどこかで活きてくると思いたい。

 
★  ★  ★
今日の研究進捗=693文字

*1:筆をにぶらせないために書く,というのも1つの理由。

クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスの下に提供されています。