タグ

stanに関するxiangzeのブックマーク (167)

  • Stanを使ってNUTSを実装する | Sunny side up!

    この記事は、Stan advent calendar 2018の7日目の記事です。 Stan、すばらしいソフトですね。今日はStanがいかに素晴らしいかを語る記事です。StanにはNUTSというアルゴリズムが搭載されいているのはご存知だと思いますが、今回の記事は、 Stanを使ってRにNUTSを実装する という話です。「ちょっと何言ってるかわかんない」、とか言わない。 さて、NUTSはマルコフ連鎖モンテカルロ法(MCMC)の手法の一つ、ハミルトニアンモンテカルロ法(HMC)を発展させたものだ、というのは聞いた人も多いと思います。そこで、MCMCやHMCについて簡単に説明したあと、Stanが搭載しているアルゴリズムについて解説していきます。 なお、数式とかは使わず、全部日語で説明していきます。数式で詳しいものはいくらでもあるので、そちらをご参考ください。たとえばこちら。 ◆マルコフ連鎖モン

  • Using the Stan Compiler

    xiangze
    xiangze 2023/03/19
    “Large or small constants in a distribution”
  • Aic & bic

    xiangze
    xiangze 2023/03/17
  • Stanコードの書き方 中級編

    広島ベイズ塾夏合宿で発表したStanコードの書き方中級編です。 回帰分析から,一般化線形モデル,欠損値のあるモデル,潜在変数があるモデル,ゼロ過剰分布,混合分布モデルを扱いました。Read less

    Stanコードの書き方 中級編
    xiangze
    xiangze 2023/03/17
  • Creating InferenceData — ArviZ 0.19.0 documentation

  • How do I tell pystan which compiler to use?

    xiangze
    xiangze 2022/12/20
  • 階層ベイズモデルで勝敗データからプロ棋士の強さを推定する - StatModeling Memorandum

    前の記事のモデルを若干拡張して、勝敗データから将棋のプロ棋士の強さ(skill)を推定しました。 まず勝敗データとレーティングの値ですが、こちらのサイトを参考にさせていただきました。このようなデータを日々更新していくのには多大な努力と忍耐がないとできません。素晴らしいサイトです。 モデルのBUGSコードは以下のようになりました。 model{ for (i in 1:N.member) { skill[i, 1] <- skill.0[i] for (t in 2:N.year){ skill[i, t] <- skill[i, t-1] + beta[i] + r.skill[i, t-1] } } for (g in 1:N.game) { winner.p[g] ~ dnorm(skill[Winner[g], Year[g]], tau.k[Winner[g]]) loser.p[

    階層ベイズモデルで勝敗データからプロ棋士の強さを推定する - StatModeling Memorandum
  • ベイズ統計モデリングを使って藤井聡太と全盛期の羽生善治を比べてみた② - ベストモデル

    はじめに 前回は年齢による実力の変化を考えずに各騎士の実力を評価しました。年齢による実力の衰えは明白であるため、このモデルで異なる世代の棋士の比較は正当ではありませんでした。 その後、インターネットで検索をすると、統計モデリングでの棋士の順位付けをしている記事がいくつかありました。[1][2] また、stanの書籍にも同様な手法が載ってます。[3] しかし、年齢効果による実力の変化を取り入れたモデルはまだないようですので、次はこの変化をモデル化して、世代をまたいで実力を比較できるモデルを構築してみます。一見、実力をローカルレベルモデル等のノイズ入り時系列モデルで表すことが出来そうですが、それだけでは新しい世代が有利なモデルのままになります。年齢による実力の増減を別個に取り入れる必要があります。 データ 用いるデータは、前回の記事「ベイズ統計モデリングを使って、藤井聡太と全盛期の羽生善治を比

    ベイズ統計モデリングを使って藤井聡太と全盛期の羽生善治を比べてみた② - ベストモデル
  • 一般化ガンマ分布をStanに実装する

    最近は生存時間解析 (survival analysis; 継続時間解析とも) を使った研究に勤しんでいるのですが,パラメトリックモデルについて勉強していたら,ガンマ分布・ワイブル分布・指数分布を包含する一般化ガンマ分布 (generalized gamma distribution) なる面白い分布が登場したので,これをStanに実装してみました。一般化ガンマ分布は非負の値を返す確率分布で,確率密度関数は以下の式で表されます。 この式ではrateパラメータをλ (逆数の1/λがscaleパラメータ),2つの形状パラメータをg,wと置いています。gはガンマ分布の形状パラメータ,wはワイブル分布の形状パラメータに対応しています。g=1のときワイブル分布,w=1のときガンマ分布,g=w=1のとき指数分布と一致することが特徴です。他のパラメータ化の方法もありますが,他の分布との関係が分かりやすい

    一般化ガンマ分布をStanに実装する
  • 芸人の大喜利の強さをベイズモデリングしてみた

    (敬称略) さすがの最多出場回数を誇るバカリズムの無双感。 累計数となれば、たくさん出場している人ほど上位にい込むのは当たり前ですよね。 動画の概要に書いてある通り、平均IPPON取得回数の方が、よりIPPON力ランキングという視点では近いのかなと思います。 だけど、それでも予選でサドンデスマッチをやった人だったり、決勝戦にいった人は、その分だけ回答権が得られている分、平均でも優位な形になりますね。 また、お題は当然毎回変わる上に、最近は画像や動画のお題が出たりと出題形式もたびたび変わっていたりして、IPPONを出しやすい回・出しにくい回というのもあるのかなと、客観的に見て思ったりしています。 なので、ちょっとそういった要素も考慮した上で、当にIPPON力が高い芸人は誰なのかを、今回ベイズモデリングで分析してみようと思います。 全ソースは以下の通り GitHub: 整理中 kaggl

    芸人の大喜利の強さをベイズモデリングしてみた
  • Stan Docs - Stan User’s Guide

    This is the official user’s guide for Stan. It provides example models and programming techniques for coding statistical models in Stan. Part 1 gives Stan code and discussions for several important classes of models. Part 2 discusses various general Stan programming techniques that are not tied to any particular model. Part 3 introduces algorithms for calibration and model checking that require mu

  • RStanで『予測にいかす統計モデリングの基本』の売上データの分析をする - StatModeling Memorandum

    12/22(日)にBUGS/Stan勉強会#2がドリコム株式会社にて催されました。そこで2つ発表をしました。そのうちの1つ「『予測にいかす統計モデリングの基』の売上データの分析をトレースしてみた」に関する詳細&補足&苦労話をここで書きたいと思います。RStanというパッケージでRからStanというMCMCサンプリングソフトを使っています。 最初に発表内容のスライドは以下になります。ざっと見るにはこれで十分です。 『予測にいかす統計モデリングの基』の売上データの分析をトレースしてみた from . . 以降ではスライドごとに簡単に補足していきます。 予測にいかす統計モデリングの基―ベイズ統計入門から応用まで (KS理工学専門書) 作者:樋口 知之発売日: 2011/04/07メディア: 単行(ソフトカバー) まずは元となった書籍の紹介です。時系列解析の第一人者による分かりやすく丁寧に

    RStanで『予測にいかす統計モデリングの基本』の売上データの分析をする - StatModeling Memorandum
  • stanとRでベイズ統計モデリングをいただきました。 - xiangze's sparse blog

    ありがとうございます。 このは著者の経験に基づくstanを用いた統計モデル構築と分析の方法について解説した他に類を見ないになっています。 StanとRでベイズ統計モデリング (Wonderful R 2) 作者: 松浦健太郎,石田基広,市川太祐,高橋康介,高柳慎一,福島真太朗出版社/メーカー: 共立出版発売日: 2016/10/25メディア: 単行この商品を含むブログ (4件) を見る確率に関する初歩的な知識(和、積の法則、密度関数、ベイズの定理など)、簡単なRの使い方を前提としているので完全に初心者向けとは言えないのですが、stanのインストール方法や文法など初心者向けの内容から情報量基準の特性やそれとのつきあい方、自動変分ベイズ(ADVI)とその特性のような高度な内容、そしてベイズ統計モデリングの手順と実例が分かりやすく書かれています。 導入編 3章では統計モデリングの手順につい

    stanとRでベイズ統計モデリングをいただきました。 - xiangze's sparse blog
  • Stan Functions Reference

    This is the reference for the functions defined in the Stan math library and available in the Stan programming language. For more information the Stan language and inference engines and how to use Stan for Bayesian inference, see the Stan User’s Guide. The Stan user’s guide provides example models and programming techniques for coding statistical models in Stan. It also serves as an example-driven

    xiangze
    xiangze 2022/08/31
  • Stan: Reduce Sum をつかった N-mixture model: Taglibro de H

    xiangze
    xiangze 2021/10/14
  • By The Way: CmdStanRでGPU(OpenCL)を使う

    動機 DLとかRapidsでどの誤家庭でもあるGPUは高速化のために使えるが、ベイズモデリングで簡単にGPUを利用できるものがなかった。CmdStan 2.26.1以降でOpenCL対応したようなので試してみた。CmdStanRはターミナルで扱うCmdStanをRで使えるようにしたラッパーになる。rstanパッケージよりもコンパイルが高速であるらしい。清水先生の資料 環境確認

    xiangze
    xiangze 2021/09/20
  • stan推定後の可視化について Tokyo.R#94

    stan推定後の可視化に便利なパッケージとその関数について紹介します。 ・stanfitオブジェクトについて ・rstanパッケージの関数 ・bayesplotパッケージの関数 ・tidyverseでstanfitを扱う

    stan推定後の可視化について Tokyo.R#94
  • stanのマニュアル、わけわかんねーよ

    この記事は、stanでモデルを組むことは出来てとりあえず走らせたけれどもRhatが1.0になってくれない。モデルの改良なり、サンプリングパラメータの調整で切り抜けたいが、「stanのマニュアルを読んでも、わかんねー」と思った時にどういう役に立てばと思います。 実際にはHMC(ハミルトンモンテカルロ)一般の話なので、pyMCとかでも事情は一緒ですが、Stanが使っている語彙で説明します。具体的には以下のパラメータや警告の意味が「わかんねーよ」っていうのに対して簡単な事例で説明したいと思います。 なお、この解説の元ネタとなっている論文はこちらです、ただ此方だと直接stanのパラメータ・警告とは直接結びついてないので文書を書きました。https://arxiv.org/pdf/1701.02434.pdf sampligパラメータstepsizestepsize_jittermetric :

    xiangze
    xiangze 2020/09/09
  • 西浦先生らによる実効再生産数の統計モデルを解説&拡張する試み - StatModeling Memorandum

    先日の西浦先生のニコ生の発表を聞いていない人はぜひ聞いてください。 モデルとデータを以下のリポジトリでオープンにしていただいたので、モデルについて僕が分かる範囲内で少し解説を加えたいと思います。 github.com 実効再生産数を推定するコードが2種類ありまして、最尤推定(Maximum Likelihood Estimation, MLE)を使ったMLE版(Sungmok Jungさん作成)と 、ベイズ推定版(Andrei Akhmetzhanovさん作成)があります。どちらもコンセプトはほぼ同じで、実装が若干異なります。この記事では、ベイズ推定版(以降、元コードと呼びます)の流れを簡単に説明し、その後でその拡張を試みます。 ベイズ推定版の流れ 大きく分けて「データの集計」「back projection」「実効再生産数の推定」の3つの部分からなります。 データの集計 まずは日付ごとの

    西浦先生らによる実効再生産数の統計モデルを解説&拡張する試み - StatModeling Memorandum
  • 新型肺炎COVID-19の日本の実効再生産数を推定したrstanのコードを解説してみる - 驚異のアニヲタ社会復帰の予備

    西浦先生が日の実効再生産数を推定した。 コードはrstanで下記から取れる。 https://nbviewer.jupyter.org/github/contactmodel/COVID19-Japan-Reff/tree/master/ 解説動画を見逃したのでコードと関連論文からのお勉強になるが、肝としては、 ・知りたいのは「感染した日」である。 ・診断日もしくは報告日は、データを収集して統計を取っているのでわかる。 ・診断されるには検査される必要があるから、だいたい症状か接触歴があって、発症日はそこそこデータがある。 ・感染した瞬間、はもちろん発病(はほとんど)していないのでわからない。 という前提がある。PDFの「患者」の観測データについて、の項。 (誰からから感染させられる)ー感染日ー発症日ー診断日/報告日という一連の流れについて、まったく情報がないわけではなく、いままでの数理モ