(初心者向け)一般化線形モデル
Kobe.R 第22回2015年11月3日
@hikaru1122
はじめに
•五島 光(ごとう・ひかる) @hikaru1122
• R歴およそ1年ちょっと。
•修論(専門職)ではMplus使いました。
•基本、統計分析は独学です。
• IT系のお作法は知りません。
• 『子犬本』はコツコツ読んでます。いっしょに読みませんか?
• ブログやってます。
http://hikaru1122.hatenadiary.jp/
(初心者向け)一般化線形モデル
Kobe.R 第22回2015年11月3日
@hikaru1122
ウソです
•一般化線形モデルだけではつまんなくなったので・・・
初心者向け統計モデリングを見てみよう正規線形モデルから
一般化線形混合モデルまで
Kobe.R 第22回2015年11月3日
@hikaru1122
今日のモチベーション
•岩波DSを読んだ感想。
• 「ベイズ推定するにはモデリングに慣れないと・・・」
•統計モデルを考えることは苦手かな?
• では、学んでみよう!
•事例として使うのは次のデータ。
ファームの三振と本塁打の関係
この現象をもっと見てみよう!
「いつもの」
久保先生・みどり本より
今日の儀式
library(ggvis) → ggvis()
library(psych) → pairs.panels()
library(glmmML) → glmmML()
library(lme4) → glmer()
今日は他にも以下を使います。
summary()
AIC()
チャレンジ!
•日本プロ野球2軍チーム全選手を対象
• ホームランと三振の関係を考える
正規線形モデル
kekka_lm <- lm(honruida ~ 1 + sanshin, data = yakyu)
> summary(kekka_lm)Coefficients:
Estimate Std. Error t value Pr(>|t|) (Intercept) 0.372178 0.233870 1.591 0.112 sanshin 0.083520 0.007271 11.487 <2e-16 ***
> AIC(kekka_lm)[1] 1644.714
一歩先へ
•応答変数のホームラン(本塁打)は正規分布なの?
psych::pairs.panels(yakyu[,c(10,13)])
一般化線形モデル
kekka_glm <- glm(honruida ~ 1 + sanshin, data = yakyu, family = "poisson")
> summary(kekka_glm)Coefficients:
Estimate Std. Error z value Pr(>|z|) (Intercept) 0.114761 0.060930 1.883 0.0596 . sanshin 0.025022 0.001285 19.469 <2e-16 ***
> AIC(kekka_glm)[1] 1560.325
もっと先へ
• チームごとに傾向が違うんじゃない?
一般化線形混合モデル①
kekka_glmmML <- glmmML(honruida ~ 1 + sanshin, cluster = team, data = yakyu, family = "poisson")
> summary(kekka_glmmML)coef se(coef) z Pr(>|z|)
(Intercept) 0.07895 0.09202 0.858 0.391sanshin 0.02552 0.00135 18.898 0.000
Residual deviance: 883.6 on 336 degrees of freedom AIC: 889.6
一般化線形混合モデル②
kekka_glmer <- glmer(honruida ~ 1 + sanshin + (1| team), data = yakyu, family = "poisson")
> summary(kekka_glmer)Random effects:Groups Name Variance Std.Dev.team (Intercept) 0.05318 0.2306
Fixed effects:Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.078951 0.091922 0.859 0.39 sanshin 0.025519 0.001347 18.939 <2e-16 ***
> AIC(kekka_glmer)[1] 1538.681
一般化線形混合モデル③
kekka_glmer <- glmer(honruida ~ 1 + sanshin + (1| team), nAGQ = 10, data = yakyu, family = "poisson")
> summary(kekka_glmer)Random effects:Groups Name Variance Std.Dev.team (Intercept) 0.05326 0.2308 Number of obs: 339, groups: team, 12
Fixed effects:Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.07893 0.09206 0.857 0.391 sanshin 0.02552 0.00135 18.897 <2e-16 ***
> AIC(kekka_glmer)[1] 889.5581
三振も考慮するとAICが増えてしまった
kekka_glmer2 <- glmer(honruida ~ 1 + sanshin +(1 + sanshin| team), data = yakyu, family = "poisson")
> summary(kekka_glmer2)Random effects:Groups Name Variance Std.Dev. Corr team (Intercept) 1.619e-02 0.127248
sanshin 4.451e-05 0.006671 -0.37Number of obs: 339, groups: team, 12
Fixed effects:Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.04973 0.07561 0.658 0.511 sanshin 0.02629 0.00244 10.773 <2e-16 ***
> AIC(kekka_glmer2)[1] 1529.176
まとめ
• プロ野球2軍の三振とホームランの関係は辛うじてある
• チームごとの差も影響を与えている
• ただ、数値は有意ではあっても、「ほとんどない」感じ。
•同じモデルなのに、glmmML() と glmer() の計算結果が違う。
• もっと自由なモデリングのためにベイズを勉強したい。
参考文献
Top Related