タグ

ブックマーク / heartruptcy.blog.fc2.com (13)

  • RStanで『予測にいかす統計モデリングの基本』の売上データの分析をトレースしてみた

    こんばんは、ゆるふわの対極であるところのガチムチ角刈り系のberoberoです。 この記事はR Advent Calendar 2013の26日目の記事になります。 12/22(日)にBUGS/Stan勉強会#2がドリコム株式会社にて催されました。そこで2つ発表をしました。そのうちの1つ「『予測にいかす統計モデリングの基』の売上データの分析をトレースしてみた」に関する詳細&補足&苦労話をここで書きたいと思います。RStanというパッケージでRからStanというMCMCサンプリングソフトを使っています。 最初に発表内容のスライドは以下になります。ざっと見るにはこれで十分です。 『予測にいかす統計モデリングの基』の売上データの分析をトレースしてみた from berobero11 以降ではスライドごとに簡単に補足していきます。 まずは元となった書籍の紹介です。時系列解析の第一人者による分か

    RStanで『予測にいかす統計モデリングの基本』の売上データの分析をトレースしてみた
  • [R] Gaussian Process Latent Variable Models (GPLVM) を使ってみる

    日々、スポットライトがあたっていない良ライブラリを見つけては紹介したいと思っています。スポットライトのあたっていない良若者も然りです。おせっかいおじさんです。今日はPCA(主成分分析)のド発展版に相当する、ガウス過程を用いたGPLVMをRからサクッと使うまでの備忘録です。 GPLVMの説明で分かりやすいのは、以下の統計数理研究所のH26年度公開講座「ガウス過程の基礎と応用」の持橋先生と大羽先生の発表資料です。 [1] 統計数理研究所 H26年度公開講座「ガウス過程の基礎と応用」 (web) 元論文は以下です。 [2] M. K. Titsias and N. D. Lawrence (2010) Bayesian Gaussian Process Latent Variable Model. Thirteenth International Conference on Artificial

    [R] Gaussian Process Latent Variable Models (GPLVM) を使ってみる
    abrahamcow
    abrahamcow 2015/11/05
    ガウス過程
  • 岩波データサイエンスvol1のいくつかの例題をStanでやってみた

    岩波データサイエンスは従来の書籍とは異なり、以下のサポートページの異様な充実がウリの一つです。 https://sites.google.com/site/iwanamidatascience/ ソースコードを見ながら自分で色々書いてみるのは有益だと思いますが、今回は書籍の中の簡単な例題をいくつかStanで書きなおしてみました。 ●「階層ベイズ 最初の一歩」の例題から モデル1のベイズ版から。 気をつけるべきはにもちょろっと書いてありますが、21行目のnormal関数です。JAGSなどのBUGS言語ではdnorm(平均, 精度)で渡すのに対し、Stanではnormal(平均, 標準偏差)で渡します。また、にも書きましたがStanでは事前分布の記述をしなければ自動で十分に広い一様分布が使われるので、積極的に使っています。 これを実行するRコードは以下のとおり。 ・2-3行目は並列計算させ

  • BUGS Exampleの中でおすすめリスト

    こんばんは、久々に時間があるberoberoです。 たまにはBUGSやStanの勉強法について書きます。 まずは久保先生の緑の例題(ただし11章を除く)をBUGSやStanで実装するのがhello worldに相当します。 次にThe BUGS Book(書評はこちら)をはじめから読みつつ気になったBUGSコードを実際に書いてみるのがよいと思います。 洋書なんか読みたくない!という方には以下のをオススメします。ただちょっと高い。しかもBUGSの例題の解説が日語でなされている感じ。でも読みやすいです。 なんか買いたくない!という人はBUGSの例題をじっくり見ていくのが一番でしょう。BUGSならこちら。Stanならこちらを参照してください。特に基で応用範囲の広そうなオススメの例題を挙げておきますと以下になります。上から順番にやっていくのがよいように並べました。似たようなものが続くので

  • Stanのマニュアルの8章~12章の私的メモ

    以下の記事は「stan-reference-2.0.1.pdf」の私的メモです。間違い等ありましたら教えてください。 8. Containers: Arrays, Vectors, and Matrices ・integerを格納したいときは現状ではArrayの一択です。 ・行列の掛け算や固有値を求めるような行列の演算をする場合はVector (vector, row_vector)と Matrix (matrix)を使いましょう。 ・行ごとにアクセスしたり列ごとにアクセスするようなことが多い場合にはMatrixよりもVectorのArrayを使いましょう。 9. Missing Data & Partially Known Parameters ・欠損値があるときは欠損値をparameterとして定義して別ループで回す。 ・一部だけ分かっているパラメーターの場合は transformed

    Stanのマニュアルの8章~12章の私的メモ
  • http://heartruptcy.blog.fc2.com/blog-entry-171.html

    http://heartruptcy.blog.fc2.com/blog-entry-171.html
  • http://heartruptcy.blog.fc2.com/blog-entry-165.html

  • あてはめの原理・計算手法・モデル

    先日@ibaibabaibaiさんからこんなツイートがありましたので自分用のメモとして残しておきます。 これは久保も大い問題ありだけど、「モデル」「あてはめの原理」「あてはめを実装する計算法」を混同するのはいい加減にやめたほうが。GLMはモデル、ベイズや最尤法はあてはめの原理、MCMCは計算法。— baibai (@ibaibabaibai) 2014, 5月 30あてはめの原理の中でもベイズと最尤法ではレベルが違うけど、その辺はおくとして、せめていまの3つは区別しよう。そうでないと「計算が正確になったらモデルの欠点が出てきて予測力が落ちた」なんていうのは理解不能になってしまう。— baibai (@ibaibabaibai) 2014, 5月 30 勝手に整理して表にしました。 あてはめの原理最尤法ベイズ計算手法EMアルゴリズム 最急降下法 共役勾配法 などMCMC 変分ベイズ(VB;

  • SIRモデルからはじめる微分方程式と離散時間確率過程(前編)

    R Advent Calendar 2014の12/20の記事になります。 今年はデング熱やエボラで騒がれました。そのような感染症の伝播によって感染人数がどのように変化するかを表すモデルはいくつかありますが、最もシンプルなものはSIRモデルというものです。Wikipediaの記事はこちら。 総人口をNとして、Sが感受性人口(まだ感染してないけど感染する可能性がある人)、Iが発症感染者人口、Rが除外人口(Iから治ってもう感染しない人)を表します。現時点のS,I,Rが与えられた時に、○○時間経った後のS,I,Rはどのようになるでしょうか?○○時間が短い極限をとって連続時間で変化のルールを記述したものを微分方程式と呼びます。SIRモデルでは次のような変化のルールに従うと仮定します。 上記のルールは化学反応式とほとんど同じです。SとIが接触したらある反応速度係数に従ってSもIになる。接触頻度はS*

    SIRモデルからはじめる微分方程式と離散時間確率過程(前編)
  • [R] ggplot2の色をプレゼンでも使いたい

    たまには軽い話題も。 プレゼンの配色は統一感が大切。下記のスライドは参考になります。 ノンデザイナーのための配色理論 from tsukasa obara 色彩センスのいらない配色講座 from Mariko Yamaguchi そこで、ggplot2で書いたグラフを張り付ける際には、その他の図形の色もなるべくggplot2の色の範囲におさめたくなります(同じ色を使うことで混乱させる場合はもちろん使ってはいけません)。 そんな時は下記の関数からRGBを作れます。引数のlの値を変えた暗い色や明るい色は重ねる場合に使ったりします。 デフォルトの色は以下のようになります(Cookbook for Rのggplot2の記事から引用)。 個人的にn=3,5,10の値をよく使うので表にまとめておきます。 ●3色 123#F8766D#00BA38#619CFFred248097green1181861

    [R] ggplot2の色をプレゼンでも使いたい
  • http://heartruptcy.blog.fc2.com/blog-entry-160.html

  • [Stan] 陽に解ける常微分方程式を使ったモデルの例

    今回はデータの背後に簡単な(陽に解ける)常微分方程式で記述できるダイナミクスがあると仮定して、Stanでパラメータの推定を行いたいと思います。 状況として定期的に(例えば一年ごとに)サービスをリリースした場合を考えます。それらのサービスを使う総利用者数の時系列があるとします。そして各サービスともリリース直後は盛り上がってくるものの、じわじわと利用者が減っていくとします。今回はその利用者がどのサービス由来かわからないとして解析します(どのサービス由来か分かればもっと簡単にできます)。また今回のデータ取得期間はt=1:100でt=0,40,80に計3つの新規サービスをリリースしたと分かっているとし、グラフは以下のようになっているとします(縦軸の単位は[百人]とか)。 さてこの時系列を解析するうえで「リリース直後は盛り上がってくるものの、じわじわ減る」というダイナミクスをモデルに反映するのが大切

    [Stan] 陽に解ける常微分方程式を使ったモデルの例
  • [R] 散布図行列 (corrplot, pairs, GGally)

    データが与えられた時にはまず可視化をします。そのデータがどのような仕組み(メカニズム)で作られてそうなったかを考えるために必須のプロセスです。しかしながら、どんな可視化がベストかははじめの段階では分からず、とにかくプロットしまくることになります。そのとっかかりに僕がよく使うのが散布図行列(scatter matrix,scatter plot matrix)です。 今回は3つほど紹介します。 ●1. {corrplot}パッケージの corrplot()関数 5行目で相関係数行列を作ってそれを渡しておしまいです。相関係数行列の作り方は各自の自由です。上記ではSpearmanの順位相関係数を使っていますがMICとかでもいいと思います。 このcorrplotのデメリットとしましては散布図は表示できない点です。散布図行列と言っておきながらすみません。説明変数が100個以上あるときなどは散布図を描

    [R] 散布図行列 (corrplot, pairs, GGally)
  • 1