SlideShare ist ein Scribd-Unternehmen logo
1 von 102
心理学者のための
GLMM・階層ベイズ
清水裕士
関西学院大学社会学部
自己紹介
• 清水裕士
– 関西学院大学社会学部
• 専門
– 社会心理学・グループダイナミックス
• 趣味
– 心理統計
– フリーの統計ソフトHADの開発
• Web
– http:norimune.net
– twitter:@simizu706
このスライドは・・・
• 心理学者のための統計モデリングの続き
– http://www.slideshare.net/simizu706/ss-58585233
– 統計モデリングやGLMの話についてまとめてます
– GLMMの話の助走的なスライドです
• ここからでも独立に見れます
– GLMM = G + M + LM
• 一般化線形混合モデル = 一般化+混合+線形モデル
– 前のスライドはG(一般化)の話
– このスライドはM(混合)の話と,GLMMの話
Mの話
Gの話が終わったので
• Mの話:Linear Mixed Model
– 線形混合モデル
• Mixedとはなにか
– 固定効果と変量効果の両方が混ざってるモデル
– Fixed effectとRandom effect
– 固定効果は,従来の切片や回帰係数のこと
– というわけで,Mの話は変量効果の話
変量効果の導入の動機
• 大きく分けて2つある
– 集団ごとにネストされたデータを分析するため
• 個人が反復測定された場合もここ
– 1パラメータの分布(ポアソン,二項)の過分散問
題を解決するため
• 今日は上の動機から説明
– 社会心理学者にはこっちのほうがわかりよい
– 過分散の話も後でします
階層線形モデル:HLM
• 最もシンプルなLMM
– (正規分布の)回帰分析+変量効果
– Mixed Modelというと,もう少し広い意味
• HLMはどういうときに使う?
– データがグループでネストされているような場合
– このようなデータを階層的なデータと呼ぶ
個人-集団データの階層性
• 集団ごとにネストされたデータ
• 集団内で類似したデータ
• 学校-生徒、カップルデータ、反復測定データ・・・etc
このようなデータを階層的データと呼ぶ
集団1 集団2
個
人
1
個
人
2
個
人
3
個
人
4
個
人
5
個
人
6
8
またもやプロ野球データ
• 日本プロ野球は12球団に分かれる
– 球団によって,モデルが変わる可能性
広島・・・!?
年俸をHRで予測
• チーム別の回帰直線
teamID 切片 傾き
DeNA 16.415 5.509
ヤクルト 19.767 4.872
巨人 10.757 13.057
広島 25.402 2.376
阪神 31.144 12.030
中日 20.227 9.165
オリックス 54.865 3.291
ソフトバンク 57.501 11.436
ロッテ 16.689 11.390
楽天 55.265 3.497
西武 27.366 6.923
日本ハム 14.588 6.832
0
100
200
300
400
500
600
0 10 20 30 40
salary
HR
広島・・・!?
チームによってモデルは違うっぽい
• お金がある球団ほど,HRの効果が大きそう
– でもそれをどうやってモデリングしたらいいだろうか?
• 愚直な考え:12個の回帰モデルを解釈する
– 巨人のHRの効果はいくら,広島の効果はいくら・・・
– 12ならまだいいが,集団が100個の場合は?
• パラメータ数が増える→オーバーフィッティング
– そもそも個々の集団に興味がない場合は?
• 実験的に作られた集団それぞれの効果が出ても・・・
そこで階層線形モデル
• グループごとの違いを同時にモデリング
– 回帰直線をグループごとに仮定することなく,一
度に推定する
– しかし,グループごとの違いをうまく表現する
• そこで使えるのが変量効果
– 個々の推定値には興味がないが,全体的な散ら
ばりはモデルに含めておきたい場合
少し違う視点:回帰分析の仮定
• データは独立に生成されている
– 独立性(正確には無相関の仮定)
• データ内に局所的な相関がない
• データは同じ(分散の)分布から生成されている
– 同一性(均一分散の仮定)
• データはすべて同じ(分散の)分布に従っている
• データは正規分布から生成されている
– 正規性
年俸は球団が払う
• 当然,球団単位で年俸は影響を受ける
– 年俸データが各選手について,独立に生成されてい
ると考えるのは無理がある
– 球団内に,局所的な相関が存在すると考えられる
独立性の仮定の逸脱
• 推定がうまくいかない
– パラメータの標準誤差を過少推定してしまう
– 極端な話,チームごとにすべて同じデータが入っ
ている場合,データが単純に水増しされているこ
とになる!
• 非独立の程度をモデリングしてやる
– データがどれほどチーム内で相関があるのかを
推定することで,それを解決
HLM早わかり
普通の回帰分析
切片a
回帰係数b
1単位
17
複数のグループの回帰分析
100個の回帰直線
Aグループ
Bグループ
・
・
・
100回も回帰分析をするの・・・?
切片と回帰係数が100個ずつ・・・
18
HLMによる回帰直線
切片の集団間変動
固定効果(平均)
変量効果(分散)
変量効果・・・集団ごとに異なる値
19
HLMによる回帰直線
切片と回帰係数の集団間変動
固定効果(平均)
変量効果(分散)
変量効果(分散)
100個のパラメータを,平均と分散で(つまり2個)で表現する
20
HLMのモデリング
おさらい:回帰分析ってなんだっけ
• 基本の回帰分析(一般線形モデル)の式
– Yi = β0 + β1Xi + ei 式1
• ただし、Yは従属変数、Xは独立変数、eは残差得点
• β0は切片、β1は回帰係数
添え字のiは個人を表す 添え字を持つ記号は、個人ごとで異なる
切片β0
回帰係数β1
Xが1単位増えたときのYの増加量
Xが0のときの
Yの予測値
22
おさらい:回帰分析ってなんだっけ
• Yi = β0 + β1Xi + ei 式1
• 切片と回帰係数
– β0とβ1は定数なので,「固定効果」と呼ぶ
• 残差得点
– eiは人によって値が違うので,「変量効果」と呼ぶ
– 変量効果は,その分散(残差分散)を推定する
• eiの分散をσ(シグマと読む)と表現する
• ei ~ N(0, σ )
• 残差は,平均0,標準偏差σの正規分布に従う
23
HLMの考え方1
複数の回帰分析
• 基本の回帰分析の式
– Yi = β0 + β1Xi + ei 式1
• ここで、各母数が集団ごとで違うと仮定する
– たとえば、集団ごとに、切片と傾きが異なる
• いわゆる多母集団分析
– Yij = β0j + β1jXij + eij 式2
添え字のjは集団を表し、iは個人を表す
24
HLMの考え方2
複数の回帰分析を縮約する
Aグループ
Bグループ
・
・
・
100回も回帰分析をするの・・・?
切片と回帰係数が100個ずつ・・・
25
HLMの考え方2
複数の回帰分析を縮約する
• 集団が増えるとパラメータの数も増えていく
– 100集団なら、100個の切片と傾きが算出される
• 十分な数があるなら、確率変数として扱える
– 確率変数 = 確率分布に従う変数
– 各集団の切片・回帰係数が正規分布に従う
• 平均と分散で100集団のパラメータを表現
– 全体的な傾向を平均値,集団間変動を分散
– 100個のパラメータがたった2個で表現できる!
26
HLMの考え方2
複数の回帰分析を縮約する
固定効果(平均)
変量効果(分散)
変量効果(分散)
100個のパラメータを,平均と分散で(つまり2個)で表現する
27
HLMの考え方3
切片の集団間変動(変量切片モデル)
• 複数集団の回帰分析の式
– Yij = β0j + β1jXij + eij 式2
– β0j = γ00 + u0j 式3
• 集団ごとの違いは変量効果で表現
– 変量効果u0jは、平均0,分散τ0の正規分布に従う
– u0j ~ N(0, τ0 )
添字のiは個人を意味する
添え字のjは集団を意味する
切片の平均(固定効果)
切片の集団ごとの違い(変量効果)
添え字のjは集団を意味する
N()は正規分布に従うことを意味する
τはタウと読む
28
HLMの考え方4
変量係数モデル
• 回帰係数にも変量効果を考える
– 変量係数と呼ぶこともある
– β0j = γ00 + u0j 式3
– β1j = γ10 + u1j 式4
• ただし、γはパラメータの固定効果、uは変量効果
• u0j u1jは平均0の多変量正規分布に従うと仮定
両方の平均が0である
ことを示す
分散がτ00、τ11、
共分散がτ01=τ10
正規分布に従うこと
を示す
添え字のjは集団を意味する
u0j
u1j
~ N
0
0
τ00 τ01
τ10 τ11,
29
年俸とHRのHLM
• RではlmerTestパッケージがおすすめ
– しかし,なぜかlmer()では,salaryを直接モデリン
グするとエラーが出る
• ほかのソフトならちゃんと推定してくれる
• 謎 lmerの挙動はイマイチ怪しいところがある
• というわけで,回帰係数のみ変動を推定
– たしかに,散布図を見ると切片の集団間変動は
小さい
– 傾きのみが異なるモデルを推定
年俸をHRで予測
• lmer()を使う
– fit.lmm <- lmer(salary~HR+(0+HR|team),dat)
– summary(fit.lmm)
平均して,HR1本で760万上昇
しかし,球団間でSD=335万程度のちらばり
年俸とHRのHLM
集団ごとの違いに興味がない場合
• 変量効果を導入しないという選択肢
– まずは変量効果を仮定するかどうかを決める
– AICなどの情報量基準が使える
• 集団間変動を無視してモデリングすると・・?
– 点推定値もそうだが,標準誤差がかなり違う
– TypeⅠエラーを犯す確率が上がる
• 予測精度を過剰に高く見積もってしまうため
lm()とlmer()を比較
• lmで回帰分析をした場合
– 変量効果は仮定しない
– AIC=2263
• lmerで階層線形モデルをした場合
– 回帰係数の変量効果を仮定
– AIC=2231
変量効果を組み合わせる
• 年齢グループによる違い
– 年齢によって,HRの効果違うんじゃないの?
• lmer()でやってみる
>fit.lmm2 <- lmer(salary~HR+(0+HR|team)+(0+HR|age),dat)
>summary(fit.lmm2)
え,でも年齢なら交互作用でも?
• 年齢を固定効果と交互作用で推定
– fit.lmm3 <- lmer(salary~HR*age+(0+HR|team),dat)
– summary(fit.lmm3)
固定効果にするか変量効果にするか
• 判断基準1:連続量ではない
– 連続量は素直に固定効果にしたほうがいい
• 判断基準2:分布の仮定に合うか
– その変数による得点の散らばりが正規分布になるか
• 判断基準3:パラメータを予測に使うか
– 推定したパラメータを予測に使えるかどうか
– 性別や年齢・・・予測に使える
– 実験参加者・・・次の実験には使えない
時系列データの場合
• 例:選手成績を10年追いかけたデータ
– HRの本数の推移
• 選手ごとに相関があるので・・・
– やはり変量効果を仮定したほうが良い
• 年度が近い成績は,相関が高い?
– データに自己相関が生じる!
たとえばこんなデータ
• 分散分析だと球面性の仮定が成り立たない
時系列データの場合
• これまでの話
– データ内の相関は,球団によって生じていた
– 球団間の変動をモデル化すれば解決!
• 球団の分散をとりのぞけば,残差は独立になる
• 時系列データの場合
– データ内の相関は,ひとつ前のデータに依存
– 時系列が近いデータ間の相関は強いが,離れる
ほど弱くなる
相関構造の違い
• ネスト構造の相関 時系列構造の相関
球団
選手1
選手2
選手3
Time1
Time2
Time3
球団の分散を推定すれば,
選手間の関連は説明される
選手の分散を推定しても,まだ
残差間に系列相関が残る
選手
残差共分散行列の構造
• 分散成分:VC
– 時点間に相関を仮定しない
• 複合シンメトリ:CS
– 時点間にすべて同じ相関を仮定する
• 自己相関:AR(1)
– 隣同士の時点に相関があり,離れるほど小さくなる
• 無構造:UN
– すべての時点間に別々の相関を仮定
• 切片の変量効果を推定していると,識別できない
変量効果+自己相関
• 個人差と系列相関をモデリング
– 選手ごとの打力の効果(変量効果)
– 年度ごとの時系列的な相関(自己相関)
• Rだとうまく推定してくれるパッケージがない
– lme4は残差共分散を指定できない
– nlmeパッケージのlme()で残差共分散を指定でき
る
こういうデータにmixedモデル
lme()を使った場合
• library(nlme)
• fit.lmm4 <- lme(fixed = data ~ time*condition,
• data=dat,
• random = data~1|ID,
• correlation=corAR1())
• summary(fit.lmm4)
– この場合,corAR1()で1次自己相関を指定している
SASもおすすめ
PROC MIXED noitprint noclprint DATA = HAD2glimmix METHOD = ML;
CLASS ID timec;
MODEL data = time | condtion /s DDFM = KR;
RANDOM intercept / subject =ID TYPE=UN;
REPEATED timec/ subject = ID TYPE = AR(1) RCORR;
RUN;
Mixedプロシージャを使う場合
GLIMMIXプロシージャを使う場合
PROC GLIMMIX noitprint noclprint DATA = HAD2glimmix METHOD = MSPL;
CLASS ID;
MODEL data = time | condtion /s DIST = gaussian DDFM = KR;
RANDOM intercept / subject =ID TYPE=UN;
RANDOM residual / subject = ID TYPE = AR(1);
RUN;
GLMMの話
ようやくGLMM
• G+M+LM = GLMM
– 基本的なところは,これまでの足し算で理解可能
– 正規分布以外の分布を使う
– 変量効果で局所的な相関,自己相関をモデル化
• GLMM特有の話
– 過分散問題の解決の話
– 推定アルゴリズムの問題
過分散問題の解決
過分散問題の解決法としてのGLMM
• 1パラメータの分布
– 二項分布
– ポアソン分布
– 分散が平均値によってのみ決まるので,実際の
データと分散が合わないことがよくおこる
– 過分散問題
過分散問題
• ポアソン分布の過分散
– HRをポアソンと負の二項分布で推定
ポアソン分布
負の二項分布
上手くいきそう!
全然ダメ!
GLMMで解決
• 過分散を変量効果で推定する
– ポアソン分布の場合
– λの対数が,正規分布に従って散らばると仮定
• つまり,λが対数正規分布に従うと仮定
– すると,ポアソン分布の分散に加えて,λの変動を
加えることができる→過分散を解決!
– つまり,個人ごとの打力を変量効果でモデリング
ポアソン分布+変量効果
• glmer()を使って解く
>fit.pois2 <- glmer(HR~1+(1|player),dat,family=poisson)
>summary(fit.pois2)
二項分布+変量効果
• glmer()を使う
>fit.bin3 <- glmer(cbind(HIT,ATbats-HIT)~league+(1|player),
dat,family=binomial)
>summary(fit.bin3)
普通の二項分布の結果
>fit.bin2 <- glm(cbind(HIT,ATbats-HIT)~league,dat,family=binomial)
>summary(fit.bin2)
マルチレベルモデルとしての
GLMM
「みどり本」
57
久保(2012) データ解析のための統計モデリング入門
一般化されたHLM
• 正規分布以外の分布を扱うHLM
– ロジスティックHLM
– ポアソンHLM
– 対数正規HLM・・・
• 二つの分布を混ぜ合わせる
– 二項分布+正規分布
– ポアソン分布+正規分布
– 対数正規分布+正規分布
GLMMの尤度関数
• 尤度関数が複雑
– 複数の確率分布の積を積分する
– 多くの場合は直接評価はできない
• 解決法
– 疑似尤度を使う
– 数値積分を行う
– ラプラス近似によって尤度関数が正規分布に近似で
きると仮定する
疑似尤度を最適化する方法
• 尤度っぽいものを使う
– 尤度ではない
– しかし,それっぽい解が得られる
• あまり良い方法ではないらしい
– 一致推定量ではない
– しかしSPSSは疑似尤度による推定しかできな
い・・・
最尤法でGLMMを推定する限界
• 数値積分を使う方法
– 変量効果の種類が増えると推定が不可能
– 次元の呪いにとらわれる
• 近似法を使う方法
– 単純なモデルの場合はよい推定
– ただし、複雑なモデルになると近似がうまくいか
ない場合もある
最尤法でGLMMを推定する限界
• 変量効果の分散(SD)が不偏推定量ではない
– 小標本で,変量効果の分散推定値にバイアス
• グループ間変動をより小さく推定してしまう
• グループ数が少ない場合により深刻
• 推定値の分布に正規分布を仮定
– 小標本では,推定精度を高く見積もりすぎる
• 最小二乗法ではt分布を使うことを思い出そう
– 分散は非負なので,一般に正規分布にならない
• 集団間変動についての正しい区間推定ができない
階層モデル
• 階層モデルとは
– 確率分布のパラメータ自体が、別の確率分布に
従うようなモデル
• HLMなども階層モデルに含まれる
– 個人・集団のデータの階層性とはちょっと違う
• 最尤法では階層モデルは苦手
– 尤度関数のなかで積分を評価しないといけない
– しかし、それは一般に難しい
そこで、ベイズ推定
• ベイズさんが考えた定理を使って推論する
– ベイズの定理
– P(θ|X):事後分布(パラメータの分布)
– P(x|θ):尤度
– P(θ):事前分布
– θ:パラメータ
– X:データ
ベイズ統計については・・・
• こちらのスライドをご覧ください
– 心理学者のためのベイズ統計入門
– http://www.slideshare.net/simizu706/ss-57721033
GLMMとベイズ
マルチレベルモデルとベイズ
• とても相性が良い
– モデルが複雑になりがち
• 変量効果の共分散行列の推定がやっかい
• 複数の分布を混ぜるともっとやっかい
• 最近のMCMCは複雑なモデルでも収束してくれる
– 標本サイズが小さくなりがち
• グループの数はそれほど用意できない
• 最尤法は大標本を仮定
• ベイズは小標本でもそこそこいける
階層ベイズ
• ベイズでは階層モデルは自然に推定可能
– パラメータの事前分布としてより高次なパラメータ
の分布を想定すればいい
– ローカルパラメータを推定しつつ,グローバルな
パラメータの分布制約を置くことが可能
– x ~ P(θ) θによってデータがモデル化
– θ ~ P(ψ) Ψによってθがモデル化
MCMCで階層ベイズも簡単推定!
• マルコフ連鎖モンテカルロ法
– 推定値をたくさんサンプリングして事後分布を推定
– 複雑な階層モデルでも,比較的安定してベイズ推定
することができる
• MCMCを実行できるソフト
– stan・・・今日使うのはこれ!
– BUGS・・・結構前からある古株ソフト
– JAGS・・・BUGSに近い文法の最近のソフト
MCMC
MCMCは何をやっているか
• 事後分布をシミュレーションで求める
– 事後分布が定常分布となるようなマルコフ連鎖を発
生させる
– 各パラメータが推移する確率はいずれ収束し,それ
が定常分布=事後分布となる
• MCMCにもいろんな方法が
– ギブスサンプラー
– メトロポリス・ヘイスティング
– ハミルトニアンモンテカルロ
MCMC法は何をやっているのか
• パラメータの推定値をたくさん計算する
– 1000とか2000とか
– 推定値をどんどんマルコフ連鎖で生成する
• 推定値の集合体が事後分布になる
MCMCによる事後分布 解析的に求めた事後分布
MCMCのイメージ
0.38
初期値
0.87 0.76 0.75
マルコフ連鎖に従って乱数が生成
0.45
最初のほうのパラメータは初期値に依存してしまうので,
切り捨てることが多い→バーンイン期間という
初期値から順番に,推定
された値に対応したマル
コフ連鎖の推移確率行列
に従ってどんどん値が決
まっていく
2000回走らせた場合
• バーンイン期間として100個を捨てた
– 定常分布=事後分布に収束する
いつになったら収束するのか
• 複数のマルコフ連鎖を走らせる
– 違う初期値から始まったマルコフ連鎖を比較して,
収束を判断する
• 𝑅で判断(stanなどの場合)
– 「あーるはっと」と読む
– 1になれば収束。1.05以下ぐらいでOKと判断する
事後分布の要約
• 普通に平均値を計算すればよい
– Rだとmean()を使えばすぐ出せる
– 平均値0.712
• 標準誤差はSDを計算すればよい
– sd()をつかう
– SDは0.164
• 95%信用区間
– パーセンタイル点を計算する
– quantile(object, probs=c(0.025,0.975))を使う
– 0.352~0.957
stanでベイズ推定
stanの紹介
• 今、もっとも開発が熱いMCMC用フリーソフト
stanの特徴
• ハミルトニアンモンテカルロ法を採用
– 階層ベイズのような複雑なモデルでもとても効率
的に収束してくれる
• ギブスサンプラーに比べてより広範囲なモデルに対応
• メトロポリスヘイスティングより収束がかなり早い
• 変分ベイズ法も採用
– MCMC以外のベイズ推定も可能
– ただ、こちらはまだ発展途上ではある
rstanパッケージ
• stanをR上で動かすためのパッケージ
– CRANに登録されているため、簡単
– 現在、rstan2.9.0-3が最新
– 動かすためには対応するツールが必要
• WindowsはRtools
• MacはXcode
• 詳しくはrstanのページ
– https://github.com/stan-dev/rstan/wiki/RStan-Getting-Started
• stanコードを書いてRに渡す
– "*.stan"でコードを保存
– R上でstan(".stan ", data=**)で実行
stanのデモンストレーション
例:平均値の推定
• Rで正規乱数を発生
>y <- rnorm(100,5,1) #平均5,SD1の乱数を100個
• Stanコードを書く("normal.stan")
• Stanを走らせる
>fit <- stan(file="normal.stan",data=list(y=y))
MCMCで推定
>traceplot(fit)
推定結果
• stanの出力
• 平均値の事後分布
>mu <- rstan::extract(fit)$mu
>hist(mu)
要約統計量
• 平均値
>mean(mu)
5.1802
• 95%信用区間
>quantile(mu, probs=c(0.025,0.975))
4.984144 5.377316
• モード(事後確率最大値)
>density(mu)$x[which.max(density(mu)$y)]
5.19473
平均値の差の推定
二群の平均値の差の検定
• いわゆるt検定
– ただし,t検定は二群の分散が等しいという仮定
がある
– Welchの検定を用いて補正する必要がある
• ベイズなら,そんな仮定はいらない
– 分散が違っても,それぞれモデリングできる
– なんなら分布は正規分布じゃなくてもいい
データ
• Rで二つのデータを作る
– 母数がN(7,6)のグループと,N(6,2)のグループ
– x <- rnorm(100,7,6)
– y <- rnorm(100,6,2)
• 平均値
– x:平均=7.54 SD=5.95
– y:平均=6.21 SD=2.14
普通にWelchの検定
>t.test(x,y)
t = 2.1043, df = 124.21, p-value = 0.03737
– 5%水準で有意
• 続いてMCMCでやってみる
stanコード
結果
• Stanの出力
• 差の事後分布
– 平均1.33[0.07, 2.60]
– 差があると見てよさそう
効果量dも計算してみる
• Cohenのdの計算
>sigma_p <- (99*(var(x)+var(y))) / 198
>d <- diff / sigma_p^0.5
• dの平均値
>mean(d)
0.296791
• dの事後分布
>hist(d)
階層ベイズをMCMCで解く
• ポアソン分布をベイズで解く
– 過分散があるので,困ったな
• 負の二項分布を使う
– ホームランの分布を計算
• GLMM 階層モデル
– ホームランの分布を計算
λの変動を考える
• λの確率的な変動を考慮したポアソン分布
– λがガンマ分布(gamma(φ, μφ-1))に従うとする
• このとき,混合した確率分布は
– 負の二項分布になる
• 成功率: p = φ / (μ+φ), 成功数: r=φ
負の二項分布でHRを推定
• fit1 <- stan(file="hbayes1.stan",data=list(y=dat$HR))
• fit1
ポアソンとガンマの階層ベイズ
• fit2 <- stan(file="hbayes2.stan",data=list(y=dat$HR))
• print(fit2,pars=c("m","s"))
一般化線形混合モデルをMCMCで
• stanコードを書かなくても,自動で走らせてくれる
• rstanarm
– stanチームが作成したパッケージ
• brms
– lme4のベイズ版を目指したパッケージ
• glmmstan
– 清水が作ったパッケージ
– glmmstanでググってもらえると解説スライドが出てきます
glmmstanについては・・・
• 詳しくはこちらのスライドをご覧ください
– glmmstanパッケージを作ってみた
– http://www.slideshare.net/simizu706/glmmstan-55104119
• ざっくり説明すると,
– glmer()とほぼ同じ文法でglmmをベイズ推定可能
– 分布はfamily = "poisson"というように""で囲む
glmmstanで対数正規分布モデル
• 年俸をHRで予測
– library(glmmstan)
– fit3 <- glmmstan(salary~HR+(1+HR|team),dat,family="lognormal")
– output_result(fit3)
stanコードが知りたい場合
• Cglmmstan()を使う
– 最初にCを付けるだけ
– code <- Cglmmstan(salary~HR+(1+HR|team),dat,
– family="lognormal")
– これで中身を確認できる
• Dglmmstan()もある
– stanに入れる用のデータオブジェクトを作成
– 最初にDを付けるだけ
– CとDを使えば,stan()を自分で直接走らせられる
まとめ
階層ベイズで簡単GLMM
• stanを使えば階層ベイズも簡単推定
– 最初は自分でコードを書くのは大変
– ラッパーパッケージを使って慣れていこう
• とはいえ,最尤法でも全然問題はない
– lme4やnlmeパッケージも使えるようになるとよい
– ただ,最尤法の範囲ではその推定が上手くいってい
るかどうかがわからない
– できれば,両方試して,挙動をチェックするのがよい

Weitere ähnliche Inhalte

Was ist angesagt?

階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門shima o
 
2 5 3.一般化線形モデル色々_Gamma回帰と対数線形モデル
2 5 3.一般化線形モデル色々_Gamma回帰と対数線形モデル2 5 3.一般化線形モデル色々_Gamma回帰と対数線形モデル
2 5 3.一般化線形モデル色々_Gamma回帰と対数線形モデルlogics-of-blue
 
混合モデルを使って反復測定分散分析をする
混合モデルを使って反復測定分散分析をする混合モデルを使って反復測定分散分析をする
混合モデルを使って反復測定分散分析をするMasaru Tokuoka
 
(実験心理学徒だけど)一般化線形混合モデルを使ってみた
(実験心理学徒だけど)一般化線形混合モデルを使ってみた(実験心理学徒だけど)一般化線形混合モデルを使ってみた
(実験心理学徒だけど)一般化線形混合モデルを使ってみたTakashi Yamane
 
2 4.devianceと尤度比検定
2 4.devianceと尤度比検定2 4.devianceと尤度比検定
2 4.devianceと尤度比検定logics-of-blue
 
2 7.一般化線形混合モデル
2 7.一般化線形混合モデル2 7.一般化線形混合モデル
2 7.一般化線形混合モデルlogics-of-blue
 
重回帰分析で交互作用効果
重回帰分析で交互作用効果重回帰分析で交互作用効果
重回帰分析で交互作用効果Makoto Hirakawa
 
階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布についてhoxo_m
 
心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]daiki hojo
 
マルチレベルモデル講習会 理論編
マルチレベルモデル講習会 理論編マルチレベルモデル講習会 理論編
マルチレベルモデル講習会 理論編Hiroshi Shimizu
 
SEMを用いた縦断データの解析 潜在曲線モデル
SEMを用いた縦断データの解析 潜在曲線モデルSEMを用いた縦断データの解析 潜在曲線モデル
SEMを用いた縦断データの解析 潜在曲線モデルMasaru Tokuoka
 
第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)Yoshitake Takebayashi
 
Stanの便利な事後処理関数
Stanの便利な事後処理関数Stanの便利な事後処理関数
Stanの便利な事後処理関数daiki hojo
 
負の二項分布について
負の二項分布について負の二項分布について
負の二項分布についてHiroshi Shimizu
 
pymcとpystanでベイズ推定してみた話
pymcとpystanでベイズ推定してみた話pymcとpystanでベイズ推定してみた話
pymcとpystanでベイズ推定してみた話Classi.corp
 
GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論Koichiro Gibo
 
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれRで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれHiroshi Shimizu
 
Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Hiroshi Shimizu
 
ブートストラップ法とその周辺とR
ブートストラップ法とその周辺とRブートストラップ法とその周辺とR
ブートストラップ法とその周辺とRDaisuke Yoneoka
 

Was ist angesagt? (20)

階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門
 
2 5 3.一般化線形モデル色々_Gamma回帰と対数線形モデル
2 5 3.一般化線形モデル色々_Gamma回帰と対数線形モデル2 5 3.一般化線形モデル色々_Gamma回帰と対数線形モデル
2 5 3.一般化線形モデル色々_Gamma回帰と対数線形モデル
 
混合モデルを使って反復測定分散分析をする
混合モデルを使って反復測定分散分析をする混合モデルを使って反復測定分散分析をする
混合モデルを使って反復測定分散分析をする
 
(実験心理学徒だけど)一般化線形混合モデルを使ってみた
(実験心理学徒だけど)一般化線形混合モデルを使ってみた(実験心理学徒だけど)一般化線形混合モデルを使ってみた
(実験心理学徒だけど)一般化線形混合モデルを使ってみた
 
2 4.devianceと尤度比検定
2 4.devianceと尤度比検定2 4.devianceと尤度比検定
2 4.devianceと尤度比検定
 
2 3.GLMの基礎
2 3.GLMの基礎2 3.GLMの基礎
2 3.GLMの基礎
 
2 7.一般化線形混合モデル
2 7.一般化線形混合モデル2 7.一般化線形混合モデル
2 7.一般化線形混合モデル
 
重回帰分析で交互作用効果
重回帰分析で交互作用効果重回帰分析で交互作用効果
重回帰分析で交互作用効果
 
階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について
 
心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]
 
マルチレベルモデル講習会 理論編
マルチレベルモデル講習会 理論編マルチレベルモデル講習会 理論編
マルチレベルモデル講習会 理論編
 
SEMを用いた縦断データの解析 潜在曲線モデル
SEMを用いた縦断データの解析 潜在曲線モデルSEMを用いた縦断データの解析 潜在曲線モデル
SEMを用いた縦断データの解析 潜在曲線モデル
 
第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)
 
Stanの便利な事後処理関数
Stanの便利な事後処理関数Stanの便利な事後処理関数
Stanの便利な事後処理関数
 
負の二項分布について
負の二項分布について負の二項分布について
負の二項分布について
 
pymcとpystanでベイズ推定してみた話
pymcとpystanでベイズ推定してみた話pymcとpystanでベイズ推定してみた話
pymcとpystanでベイズ推定してみた話
 
GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論
 
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれRで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
 
Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説
 
ブートストラップ法とその周辺とR
ブートストラップ法とその周辺とRブートストラップ法とその周辺とR
ブートストラップ法とその周辺とR
 

Mehr von Hiroshi Shimizu

階層ベイズと自由エネルギー
階層ベイズと自由エネルギー階層ベイズと自由エネルギー
階層ベイズと自由エネルギーHiroshi Shimizu
 
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)Hiroshi Shimizu
 
SapporoR#6 初心者セッションスライド
SapporoR#6 初心者セッションスライドSapporoR#6 初心者セッションスライド
SapporoR#6 初心者セッションスライドHiroshi Shimizu
 
glmmstanパッケージを作ってみた
glmmstanパッケージを作ってみたglmmstanパッケージを作ってみた
glmmstanパッケージを作ってみたHiroshi Shimizu
 
媒介分析について
媒介分析について媒介分析について
媒介分析についてHiroshi Shimizu
 
rstanで簡単にGLMMができるglmmstan()を作ってみた
rstanで簡単にGLMMができるglmmstan()を作ってみたrstanで簡単にGLMMができるglmmstan()を作ってみた
rstanで簡単にGLMMができるglmmstan()を作ってみたHiroshi Shimizu
 
Rで潜在ランク分析
Rで潜在ランク分析Rで潜在ランク分析
Rで潜在ランク分析Hiroshi Shimizu
 
エクセルで統計分析5 マルチレベル分析のやり方
エクセルで統計分析5 マルチレベル分析のやり方エクセルで統計分析5 マルチレベル分析のやり方
エクセルで統計分析5 マルチレベル分析のやり方Hiroshi Shimizu
 
エクセルでテキストマイニング TTM2HADの使い方
エクセルでテキストマイニング TTM2HADの使い方エクセルでテキストマイニング TTM2HADの使い方
エクセルでテキストマイニング TTM2HADの使い方Hiroshi Shimizu
 
マルチレベルモデル講習会 実践編
マルチレベルモデル講習会 実践編マルチレベルモデル講習会 実践編
マルチレベルモデル講習会 実践編Hiroshi Shimizu
 
Excelでも統計分析 HADについて SappoRo.R#3
Excelでも統計分析 HADについて SappoRo.R#3Excelでも統計分析 HADについて SappoRo.R#3
Excelでも統計分析 HADについて SappoRo.R#3Hiroshi Shimizu
 
エクセルで統計分析2 HADの使い方
エクセルで統計分析2 HADの使い方エクセルで統計分析2 HADの使い方
エクセルで統計分析2 HADの使い方Hiroshi Shimizu
 
エクセルで統計分析4 因子分析のやり方
エクセルで統計分析4 因子分析のやり方エクセルで統計分析4 因子分析のやり方
エクセルで統計分析4 因子分析のやり方Hiroshi Shimizu
 
エクセルで統計分析3 回帰分析のやり方
エクセルで統計分析3 回帰分析のやり方エクセルで統計分析3 回帰分析のやり方
エクセルで統計分析3 回帰分析のやり方Hiroshi Shimizu
 
エクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについてエクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについてHiroshi Shimizu
 
Mplusの使い方 中級編
Mplusの使い方 中級編Mplusの使い方 中級編
Mplusの使い方 中級編Hiroshi Shimizu
 
Mplusの使い方 初級編
Mplusの使い方 初級編Mplusの使い方 初級編
Mplusの使い方 初級編Hiroshi Shimizu
 

Mehr von Hiroshi Shimizu (20)

Stanでガウス過程
Stanでガウス過程Stanでガウス過程
Stanでガウス過程
 
階層ベイズと自由エネルギー
階層ベイズと自由エネルギー階層ベイズと自由エネルギー
階層ベイズと自由エネルギー
 
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
 
SapporoR#6 初心者セッションスライド
SapporoR#6 初心者セッションスライドSapporoR#6 初心者セッションスライド
SapporoR#6 初心者セッションスライド
 
Tokyo r53
Tokyo r53Tokyo r53
Tokyo r53
 
glmmstanパッケージを作ってみた
glmmstanパッケージを作ってみたglmmstanパッケージを作ってみた
glmmstanパッケージを作ってみた
 
媒介分析について
媒介分析について媒介分析について
媒介分析について
 
rstanで簡単にGLMMができるglmmstan()を作ってみた
rstanで簡単にGLMMができるglmmstan()を作ってみたrstanで簡単にGLMMができるglmmstan()を作ってみた
rstanで簡単にGLMMができるglmmstan()を作ってみた
 
Rで潜在ランク分析
Rで潜在ランク分析Rで潜在ランク分析
Rで潜在ランク分析
 
エクセルで統計分析5 マルチレベル分析のやり方
エクセルで統計分析5 マルチレベル分析のやり方エクセルで統計分析5 マルチレベル分析のやり方
エクセルで統計分析5 マルチレベル分析のやり方
 
Latent rank theory
Latent rank theoryLatent rank theory
Latent rank theory
 
エクセルでテキストマイニング TTM2HADの使い方
エクセルでテキストマイニング TTM2HADの使い方エクセルでテキストマイニング TTM2HADの使い方
エクセルでテキストマイニング TTM2HADの使い方
 
マルチレベルモデル講習会 実践編
マルチレベルモデル講習会 実践編マルチレベルモデル講習会 実践編
マルチレベルモデル講習会 実践編
 
Excelでも統計分析 HADについて SappoRo.R#3
Excelでも統計分析 HADについて SappoRo.R#3Excelでも統計分析 HADについて SappoRo.R#3
Excelでも統計分析 HADについて SappoRo.R#3
 
エクセルで統計分析2 HADの使い方
エクセルで統計分析2 HADの使い方エクセルで統計分析2 HADの使い方
エクセルで統計分析2 HADの使い方
 
エクセルで統計分析4 因子分析のやり方
エクセルで統計分析4 因子分析のやり方エクセルで統計分析4 因子分析のやり方
エクセルで統計分析4 因子分析のやり方
 
エクセルで統計分析3 回帰分析のやり方
エクセルで統計分析3 回帰分析のやり方エクセルで統計分析3 回帰分析のやり方
エクセルで統計分析3 回帰分析のやり方
 
エクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについてエクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについて
 
Mplusの使い方 中級編
Mplusの使い方 中級編Mplusの使い方 中級編
Mplusの使い方 中級編
 
Mplusの使い方 初級編
Mplusの使い方 初級編Mplusの使い方 初級編
Mplusの使い方 初級編
 

心理学者のためのGlmm・階層ベイズ