タグ

ブックマーク / statmodeling.hatenablog.com (13)

  • GPy(Pythonのガウス過程用ライブラリ)の使い方 - StatModeling Memorandum

    概要 GPyを用いて、サンプルパスの生成、ガウス過程回帰、クラス分類、ポアソン回帰、Bayesian GPLVMを実行しました。自分用のメモです。 参考資料 [1] 公式ページ [2] 公式のチュートリアル [3] Gaussian Process Summer Schoolsの資料 理論的背景は上記の[3]を参考にしてください。日語でもガウス過程の解説がMLPシリーズから豪華著者陣で出るようです。超期待しています。 以下のサンプルプログラムは基的に[2]を元にしています。しかし、古くてそのままでは動かないプログラムや分かりにくいプログラムを少し加工修正しています。なお、環境は以下の通りです。 Windows 7 64bit Python 3.5.2 :: Anaconda 4.2.0 (64-bit) GPy 1.5.5 サンプルパスの生成 RBFカーネルで適当に定めたパラメータの値

    GPy(Pythonのガウス過程用ライブラリ)の使い方 - StatModeling Memorandum
    sh19910711
    sh19910711 2024/06/14
    "ガウス過程回帰: カーネルを定める→モデル作成→最適化 / GPy: 足したり掛けたりするだけで複雑なカーネルを作ることができる / ガウス過程はデータ点の数Nの逆行列を求める必要があり、その部分にN^3のオーダー" 2016
  • MCMCサンプルを{dplyr}で操る - StatModeling Memorandum

    RからStanやJAGSを実行して得られるMCMCサンプルは、一般的に iterationの数×chainの数×パラメータの次元 のようなオブジェクトとなっており、凝った操作をしようとするとかなりややこしいです。 『StanとRでベイズ統計モデリング (Wonderful R)』のなかでは、複雑なデータ加工部分は場合によりけりなので深入りしないで、GitHub上でソースコードを提供しています。そこでは、ユーザが新しく覚えることをなるべく少なくするため、Rの標準的な関数であるapply関数群を使っていろいろ算出しています。しかし、apply関数群は慣れていない人には習得しづらい欠点があります。 一方で、Rのデータ加工パッケージとして、%>%によるパイプ処理・{dplyr}パッケージ・{tidyr}パッケージがここ最近よく使われており、僕も重い腰を上げてやっと使い始めたのですが、これが凄く使い

    MCMCサンプルを{dplyr}で操る - StatModeling Memorandum
    sh19910711
    sh19910711 2024/06/08
    "apply関数群は慣れていない人には習得しづらい / 図: {ggmcmc}パッケージや{bayesplot}パッケージに含まれる関数を使うと一撃で描くこともできます。しかし、練習のため自分で算出して作図" 2017
  • Bayesian GPLVMをStanで実装してみた - StatModeling Memorandum

    この記事の続きです。PRML下の12章に出てくるOil Flowのデータ(データ点1000個×特徴量12個)に対してBayesian GPLVMで2次元(または3次元)の潜在変数空間にマッピングして綺麗に分離されるか見てみます。 まずはPRMLにもあるように普通の主成分分析でやると以下になります。綺麗には分離されません。 次にBayesian GPLVMでやってみます。Stanコードは以下になります。 2~4行目: N・K・Dはそれぞれ、データ点の数・特徴量の数・最終的に落とし込む潜在空間の次元です。 14行目: 潜在変数です。 15行目: カーネルに含まれるパラメータです。僕が理解したところだと特徴量ごとにガウス過程が存在するのでKごとに異なる値を持つようにしています。→ 2017.07.02追記 Kごとに異なる値にするのではなく、1つだけにし、スケーリングしてから適用することで情報を圧

    Bayesian GPLVMをStanで実装してみた - StatModeling Memorandum
    sh19910711
    sh19910711 2024/06/07
    "汎用的な確率的プログラミング言語ではガウス過程に特化した専用ライブラリにはかないません / 特にモデルを拡張する予定がないならば、もしくはデータが巨大ならば ~ GPyなどの使い方を学ぶべき" 2016
  • 広津先生による時系列のクラスタリング手法の実装 - StatModeling Memorandum

    お正月に広津先生のクラスタリング手法をRで実装しました。個体ごとの時系列データをクラスタリングするのに使えます(実際は時系列ではなく一般の2-wayのデータに適用できます)。 個人的に感じる適正なサンプルサイズと時点のサイズはおよそ、10~1000個体、4~30時点程度です。これ以上時点が多い場合は、状態空間モデルなどの方がよいと思われます。 参考文献として以下の3つを挙げます。 [1] Hirotsu, C.(2009): Clustering rows and/or columns of a two-way contingency table and a related distribution theory. Computational Statistics and Data Analysis 53, 4508-4515 [2] 広津千尋 (2004) : 交互作用は相互作用?2 コ

    広津先生による時系列のクラスタリング手法の実装 - StatModeling Memorandum
    sh19910711
    sh19910711 2024/06/07
    "個体ごとの時系列データをクラスタリング / 個人的に感じる適正なサンプルサイズと時点のサイズはおよそ、10~1000個体、4~30時点程度 / これ以上時点が多い場合は、状態空間モデルなどの方がよいと思われ" 2014
  • Stanの関数を使ってRを拡張して高速化する - StatModeling Memorandum

    C++に自動で変換される)Stanの関数を使ってRを拡張できる機能が、Stan/RStanの2.16で実装開始されて2.17でほぼ完成しました。Rを高速化するためにC++(とRcpp)はあまり書きたくないけれど、Stanの関数なら書いてもいいよという僕得な機能です。この記事ではその方法を簡単に紹介します。 元にした資料はRStanの開発者であるBenさんがStanCon2018で発表したこちらの資料です。 ここでは例として、以下の2つの関数をRで使えるようにしましょう。 1) 機械学習分野でおなじみのlog_sum_exp関数 引数はN個の正の実数 2) データにemax modelという曲線をあてはめた場合の対数尤度を返す関数 引数はデータ(N個のXとYのペア)とパラメータの値 手順は簡単で以下だけです。 functionsブロックだけ書いたstanファイルを用意する R側でrstan

    Stanの関数を使ってRを拡張して高速化する - StatModeling Memorandum
    sh19910711
    sh19910711 2023/01/10
    2018 / "rstan::expose_stan_functions / Rを高速化するためにC++(とRcpp)はあまり書きたくないけれど、Stanの関数なら書いてもいいよという僕得な機能 / Stanの長所を非常に簡単にRのコーディングに取り込める"
  • 『Rで学ぶ統計的データ解析』林賢一(著)の書評 - StatModeling Memorandum

    統計家やデータサイエンティストを志す大学生・大学院生に読んでほしい、正統派のです。 目次はこちら。コードを含むサポートページはこちら。類書としては『Rによる統計的学習入門』があります。 このの特徴は、親しみやすい説明とRを実行する部分と、背景の数理を説明するガチの数理編の2パートから構成される点です。ふつうだと著者の能力の限界により前半パートだけ集めた、あるいは後半パートだけ集めたになりがちですが、そうはなっていません。数理を専門とする著者が、学生を指導する経験を通して書かれた教育的なになっています。 Rを実行する部分は丁寧で、私も知らなかった関数や引数があり勉強になりました。特に好きだった章は以下です。 2章 データの可視化と要約 10章 ブートストラップ法 11章 Rを用いたシミュレーション:数理統計学を「実感」する それぞれの章末にある練習問題 早速2章に可視化を据えるとこ

    『Rで学ぶ統計的データ解析』林賢一(著)の書評 - StatModeling Memorandum
    sh19910711
    sh19910711 2022/08/26
    2020 / "親しみやすい説明 + 背景の数理を説明するガチの数理編 / 数理を専門とする著者が、学生を指導する経験を通して / 統計学で行列がどのように使われるのか、どう役に立つのかをきちんと見せてくれます"
  • PythonのSymPyで変分ベイズの例題を理解する - StatModeling Memorandum

    この記事の続きです。 ここではPRMLの10.1.3項の一変数ガウス分布の例題(WikipediaのVariational_Bayesian_methodsのA basic exampleと同じ)をSymPyで解きます。すなわちデータが に従い*1、とが、 に従うという状況です。ここでデータ()が得られたとして事後分布を変分ベイズで求めます。 まずはじめに、上記の確率モデルから同時分布を書き下しておきます。 なので、 となります。 この問題は単純なので事後分布は厳密に求まるのですが、ここでは変分ベイズで解きます。すなわち、事後分布をで近似します。さらにと因子分解可能と仮定します。そして、前の記事の最後の2つの式を使って、とが収束するまで繰り返し交互に更新して求めるのでした。以下ではこれをSymPyでやります。 from sympy import * from sympy.stats imp

    PythonのSymPyで変分ベイズの例題を理解する - StatModeling Memorandum
    sh19910711
    sh19910711 2022/02/28
    "式変形には「一般的な場合のようにコンセプトが重要で深く理解しなければならない式変形」と「SymPyなどの数式処理ソフトで追えれば十分であるような式変形」があると個人的に思っています"
  • データ解析で割安賃貸物件を探せ!(山手線沿線編) - StatModeling Memorandum

    @housecat442さんのプレゼンにインスパイアされて、某S社様のサイトからスクレイピングさせていただき家賃予測を行いました。目的は広さ・最寄駅・築年や各種設備の割にお得な割安物件を探すことです。首都圏の賃貸物件を全て扱うのは大変なので、まずは山手線の各駅から徒歩15分以内の物件(32945件)について解析を行いました。およそ10分の1ぐらいの物件数です。 解析に使うデータは最終的には、応答変数が「費用.2年間」で説明変数が226個になりました。ここで予測したい「費用.2年間」は (賃料+管理費)*24 + 礼金 + 敷金 + 仲介手数料 + その他初期費用 - フリーレント.price で求めています。また今回は駐車場の費用に関しては考慮にいれませんでした。さらにデータを十分に可視化した上で説明変数に関していくつか前処理を追加しました。例えば「間取り」は「専有面積」と相関が高すぎるの

    データ解析で割安賃貸物件を探せ!(山手線沿線編) - StatModeling Memorandum
    sh19910711
    sh19910711 2021/11/14
    2015 / "広さ・最寄駅・築年や各種設備の割にお得な割安物件を探す / 「防犯強化地域」は価値を下げています / 特筆すべきことがなくて無理にこれを付け加えているのか、犯罪頻発地域の裏返しなのかは分かりませんが"
  • RStanで『予測にいかす統計モデリングの基本』の売上データの分析をする - StatModeling Memorandum

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

    RStanで『予測にいかす統計モデリングの基本』の売上データの分析をする - StatModeling Memorandum
    sh19910711
    sh19910711 2021/06/18
    "統計モデリングを勉強&実践する際のはじめの難所は手頃なデータが得られるかどうか / 統計モデリングは和で分解 / 値が少し変わると結果が大幅に変わるような場合はMCMCサンプリングによる推定は難しい"
  • COVID-19 日本国内の潜在的な陽性者数を推定する試み - StatModeling Memorandum

    国内の潜在的な陽性者数を推定することは有益ですが、簡単ではありません。PCR検査がランダムになっていないことが推定を難しくしています。有症状者が検査されやすいというselection biasがあるからです。この記事ではいくつか仮定を置いて潜在的な陽性者数を推定したいと思います。 仮定 全国民のうち潜在的に陽性になっている割合 この割合は年代によらず一定と仮定します。ここでは と書きます(posはpositiveの略)。例えば0.0001なら日人約1億2千万人中、おおよそ12000人が潜在的に陽性になっている計算です。 なお、国民の年代別人口の値はこのページの令和2年3月報 (令和元年10月確定値,令和2年3月概算値) (PDF:301KB) の「2019年10月1日現在(確定値)」の総人口 男女計の値を使用しました。 陽性者中の有症状者の割合 若年層で無症状が多いなど、年代で異なる

    COVID-19 日本国内の潜在的な陽性者数を推定する試み - StatModeling Memorandum
  • 『わけがわかる機械学習』中谷秀洋(著)の書評 - StatModeling Memorandum

    僕が中谷さんと初めて会ったのはみどりぼんの読書会で、初めて話したのは岩波DSの打ち合わせだったと思います。今でもそんなに親しくはないと思います。しかし、中谷さんのブログは10年ぐらい前から読んでいました。自然言語処理を中心とする機械学習に関連する理論(の解釈)・論文レビュー・数値実験の記事が多く、他のブログでは見られない独特かつ理解の深い内容で、毎日勉強させてもらっていました。今でも何度も読むべきブログです。その中谷さんが機械学習についてまるごと一冊書いたものが書になります。もともと買うつもりでしたが、献いただいたので簡単にご紹介いたします。 わけがわかる機械学習 ── 現実の問題を解くために、しくみを理解する 作者: 中谷秀洋出版社/メーカー: 技術評論社発売日: 2019/08/28メディア: 単行(ソフトカバー)この商品を含むブログを見る 目次は以下になります。 0章: はじめ

    『わけがわかる機械学習』中谷秀洋(著)の書評 - StatModeling Memorandum
  • 「StanとRでベイズ統計モデリング」松浦健太郎 という本を書きました - StatModeling Memorandum

    僕が筆者なので、この記事は書評ではなく紹介になります。まずこのはRのシリーズの一冊にもかかわらずStanという統計モデリングのためのプログラミング言語の方がメインです。このようなわがままを許してくれた、ゆるいふところの深い石田先生と共立出版には感謝しかありません。 StanとRでベイズ統計モデリング (Wonderful R) 作者:健太郎, 松浦発売日: 2016/10/25メディア: 単行 目次と概要 共立出版のページを見てください。GitHubのリポジトリもあります。 前提とする知識 「はじめに」の部分で触れていますが、確率と統計の基的な知識はある方、R(やPython)で簡単なデータ加工や作図が一通りできる方を想定しています。そのため、確率分布なんて聞いたことがない、プログラミングがはじめて、Rがはじめて、という方が読み進めるのは厳しいかもしれません。なお、Rの基的な関数し

    「StanとRでベイズ統計モデリング」松浦健太郎 という本を書きました - StatModeling Memorandum
  • データ解析で割安mobile PCを探す - StatModeling Memorandum

    この記事の続編です。一緒にやろうという人がなかなか現れないので、一人でたたき台を作りました。 目的 目的は機能の割にお得な割安mobile PCを探すことです。mobile PCの厳密な定義はないのですが、ここではディスプレイが12型~14型で重さが1kg前後としました。また、各社の最新モデルだけを対象としました。 データの取得方法 メーカーを決める→気で買うつもりで公式サイトと価格comを比較して安い方にする→人力スクレイピング です。現時点では公式サイトも多く、スクレイピングのコードを書いても労力のもとが取れないので10時間ほどかけて人力スクレイピングして集めました。 データの内容 8社・10モデルで44商品です。おすすめモデルを中心にしました。生データを置いておきます(これとこれ)。 次の統計モデリングで使用する、PCの機能を表す説明変数は18個考慮しました。CPU・メモリ・SSD

    データ解析で割安mobile PCを探す - StatModeling Memorandum
  • 1