※今回の内容はDr.STONEという漫画のネタバレを含みます 唐突ですが、Dr.STONEという漫画が好きです。 Dr.STONE 1 (ジャンプコミックスDIGITAL)作者:稲垣理一郎,Boichi集英社Amazon 物理や化学に詳しくないので内容を理解しながら読めているわけではないので…
それでは前回の記事に続いてelnet1の紹介です。前回の記事はこちらです。 ushi-goroshi.hatenablog.com ushi-goroshi.hatenablog.com ushi-goroshi.hatenablog.com ushi-goroshi.hatenablog.com ループ③(回帰係数の推定) ループ④(分散共分散行列の計算) …
それでは前回の記事に続いてelnet1の紹介です。過去の記事はこちらです。 ushi-goroshi.hatenablog.com ushi-goroshi.hatenablog.com ushi-goroshi.hatenablog.com elnet1の実装 前処理 ループ①(almの更新) ループ②(罰則の定義) elnet1の実装 前回の記事…
前回の記事では R の関数 elnet の中で elnet という Fortran のサブルーチンが呼ばれ(やっぱりややこしいですね)、さらに type.gaussian の値( covariance と naive )によって elnetu と elnetn のいずれかが呼ばれるところまで確認しました。 今回は e…
前回の記事では glmnet の中身を確認し、引数の family によって呼び出す関数を変えていることがわかりました。 今回はそのなかでも gaussian が指定された場合の関数である elnet を見ていきましょう。 なお前回の記事はこちらです。 ushi-goroshi.hatenabl…
久しぶりの更新です(いつも言っています)。 背景 glmnet の実行結果 glmnet の実装 1. パラメータの設定、前処理、エラーチェック 2. フィッティング 3. 後処理 背景 データサイエンス入門シリーズの「スパース回帰分析とパターン認識」を読んでいたら大変…
1/31に開催された統計数理研究所の公開講座「統計の哲学を理解するために」に参加してきましたのでそのメモを共有しておきます。全体的にはエリオット・ソーバーという尤度主義者から見た頻度主義・ベイズ主義に対する批判的観点の紹介という構成で、それぞ…
前回の続きです。過去記事はこちらから。 ushi-goroshi.hatenablog.com ushi-goroshi.hatenablog.com ushi-goroshi.hatenablog.com GAMの実装 bakfit backf1 1. 前処理 2. バックフィッティング 3. eta の再定義 gam.fit gam 終わりに GAMの実装 bakfit さて…
11/5に開催された元統計数理研究所の所長である樋口先生の退任記念シンポジウムに参加してきましたので、そのメモを共有しておきます。ご参考まで。やっぱり長らく研究をされてきた方のお話というのは面白いですね。 ご挨拶 統数研 椿広計 氏 統数研はモデリ…
前回の続きです。過去記事はこちらから。 ushi-goroshi.hatenablog.com ushi-goroshi.hatenablog.com GAMの実装 s.wam 1. 平滑化の対象変数について元のデータを順位に置き換え、smooth.frameを再定義する 2. 後でFortranに渡すために必要な指定を行う 3. Fo…
10/19に開催された応用統計学フロンティアセミナーに参加してきましたので、そのメモを共有しておきます。話を聴きながらのメモなので単語しか書けず意味がわかりにくいところもありますが、ご参考まで。なおセミナーの様子は以下のtogetterでまとめられてい…
前回の続きです。 gam.fit() から。 前回記事はこちら。 ushi-goroshi.hatenablog.com GAMの実装 gam.fit() それでは gam.fit の中身を覗いてみましょう。 ### gam.fit は x, y に加えて smooth.frame を受け取る。これは gam で作った mf で、中身は平滑化…
とても久しぶりの更新です。 背景 GAMの実行結果 GAMの実装 gam() 背景 業務でモデリングを行うとき、私は大抵の場合GLMから始めます。目的変数に合わせて柔軟に分布を選択することが可能で、回帰係数という極めて解釈性の高い結果を得ることができるという…
前回の記事の続きです。 ushi-goroshi.hatenablog.com 今回は図3.23に挑戦します。データはこちらから該当する部分を取ってきました。 まずはプロットしてみます。一部のデータは除外しました。 dat <- read.table("./Data/World_Record.dat", sep = "\t", c…
前回の記事の続きです。 ushi-goroshi.hatenablog.com 今回は図3.16と3.20に挑戦します。データはサポートサイト(http://chasen.org/~daiti-m/gpbook/data/gpr.dat)から取得しました。 dat <- read.table("http://chasen.org/~daiti-m/gpbook/data/gpr.dat",…
前回の記事の続きです。 ushi-goroshi.hatenablog.com 今回は図3.9と3.11(P71と75)を作成してみます。generate_vectorはそのままですが、図3.9は二次元平面なのでget_cov_matはx2を考慮できるように修正しました。またapplyについてですが、この書き方なら…
※ 3/13 一部修正 いま「ガウス過程と機械学習」を読んでいるのですが、第3章のグラフが非常に面白かったので自分でも作図してみたところちょっと腹落ちするものがありました。せっかくなので記事にしておきます。今回グラフを作成したのは図3.7と3.8(P69、7…
背景 手順 実装 1. 共通処理 1. X、yをそれぞれ小集団に分割する 2. 各小集団のXをQR分解する 2. R^{-1}を計算する 1. 各小集団からのRを統合する 2. 再度QR分解してRを得る 3. Rの逆行列を求める(R^{-1}) 3. Q'を計算する 1. 1-2で得られたQを2-2で得たQ…
背景 doublepoissonを触ってみる 切片を推定してみる glmで推定してみる dglmで推定してみる 回帰係数を推定してみる glm、dglmで推定してみる optimで推定してみる 終わりに 背景 カウントデータをモデリングしようと思ったとき、まず思い浮かべる分布とい…
背景 実装 1. データ、説明変数を与えると閾値の候補を返す関数 2. データ、目的変数、説明変数、閾値を与えるとGini係数を返す関数 3. 現在のGini係数との差分が最大となる(最良な)閾値を返す関数 終わりに 背景 前回、前々回の記事でrandomForestを使っ…
背景 概要 実装 1. Random Forestでモデルを作る 2. 各決定木から分岐に用いられた変数ペアを得る 3. 出現回数のカウントを取る 4. 交互作用効果を確かめてみる 終わりに 背景 GLMは発想がわかりやすく解釈性も高くて良いアルゴリズム1なのですが、線形の仮…
RのrandomForestを使っていてはまったのでメモしておきます。 ①目的変数がcharacterだと分類として扱ってくれない ②説明変数がcharacterだとダミー化してくれない 終わりに ①目的変数がcharacterだと分類として扱ってくれない 最初にはまったのがこちらでし…
前回の記事では、結局GLMというのは以下の方程式: を用いて、を反復的に求めることであると説明しました(IRLS)。 ushi-goroshi.hatenablog.com そのために必要なパーツとしてはとであり、これらは(を除けば)、とそれらのそれぞれに対する微分です。 で…
前回の記事において、GLMでは以下の方程式を用いてパラメータベクトルを推定するという話をしました:ushi-goroshi.hatenablog.com 今回はその続きです。※ 1/25 記事を修正しました 最尤推定 上の式には情報行列の逆行列が入っているので、前から情報行列を…
前回の記事からだいぶ間が空いてしまいましたが続きを書いてみます。なおこの記事は主にDobsonの「一般化線形モデル入門」の第3・4章を参考にしていますので、そちらも合わせてご確認ください。良書です。 ushi-goroshi.hatenablog.com 一般化線形モデル入門…
以下は全て憶測に依るもので、全く根拠のない話です。 ハイパフォーマーを発見するための分析を考えたとき、過去の個人ごとの業績から予測モデルを構築すると、「性別」の効果が有意に効くのではと思います1。そしてそれはきっと、男性の効果がプラス(また…
背景 glm glm.fit C_Cdqrls F77_CALL 背景 一般化線形モデル(GLM)は、一般に線形回帰モデルを正規分布を含む指数分布族に拡張したものだと捉えられています。アイディアとしてはシンプルである割に非常に有用で、GLMによって 整数値(ポアソン回帰) 二値(…
小ネタ①:ロジスティック回帰は集計値を用いても同じ結果となる tmp <- epitools::expand.table(Titanic) library(tidyverse) dat_table <- tmp %>% group_by(Class, Sex, Age) %>% summarise("Yes" = sum(Survived == "Yes"), "No" = sum(Survived == "No")…
背景 RからPythonを呼び出す 線形回帰 ロジスティック回帰 終わりに 背景 通常、私はデータを分析する際には主にRを使用します。しかし分析結果を既存のシステムに投入するなど実装を考えた場合には、Rではなく別の言語を求められることもあると思います。 …
背景 データ準備 ライブラリの読み込み シミュレーションデータの作成 フィッティング stan_glmによるフィッティング 結果の確認 追試 終わりに 背景 Stanを使ってモデリングをしている時に不満を感じる点として、変数選択が難しいということが挙げられます…