データ解析のための統計モデリング3章

> d <- read.csv("data3a.csv")
> d
     y     x f
1    6  8.31 C
2    6  9.44 C
3    6  9.50 C
# 略
99   7 10.86 T
100  9  9.97 T
> d$x # xだけ表示
  [1]  8.31  9.44  9.50  9.07 10.16  8.32 10.61 10.06  9.93 10.43 10.36 10.15
 [13] 10.92  8.85  9.42 11.11  8.02 11.93  8.55  7.19  9.83 10.79  8.89 10.09
 [25] 11.63 10.21  9.45 10.44  9.44 10.48  9.43 10.32 10.33  8.50  9.41  8.96
 [85]  9.73 10.78 10.21 10.51 10.73  8.85 11.20  9.86 11.54 10.03 11.88  9.15
 [97]  8.52 10.24 10.86  9.97
> d$y # yだけ表示
  [1]  6  6  6 12 10  4  9  9  9 11  6 10  6 10 11  8  3  8  5  5  4 11  5 10
 [97]  6  8  7  9
> d$f # fだけ表示
  [1] C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C
 [37] C C C C C C C C C C C C C C T T T T T T T T T T T T T T T T T T T T T T
 [73] T T T T T T T T T T T T T T T T T T T T T T T T T T T T
Levels: C T
> class(d)
[1] "data.frame"
> class(d$y)
[1] "integer"
> class(d$x)
[1] "numeric"
> class(d$f)
[1] "factor"
> summary(d)
       y               x          f     
 Min.   : 2.00   Min.   : 7.190   C:50  
 1st Qu.: 6.00   1st Qu.: 9.428   T:50  
 Median : 8.00   Median :10.155         
 Mean   : 7.83   Mean   :10.089         
 3rd Qu.:10.00   3rd Qu.:10.685         
 Max.   :15.00   Max.   :12.400         
> plot(d$x, d$y, pch = c(21,19)[d$f])
> legend("topleft", legend = c("C", "T"), pch = c(21,19))
> fit <- glm(y ~ x, data ~ d, family = poisson)
 以下にエラー as.data.frame.default(data) : 
  cannot coerce class ""formula"" to a data.frame
> fit <- glm(y ~ x, data = d, family = poisson)
> fit # プリントでもいい

Call:  glm(formula = y ~ x, family = poisson, data = d)

Coefficients:
(Intercept)            x  
    1.29172      0.07566  

Degrees of Freedom: 99 Total (i.e. Null);  98 Residual
Null Deviance:      89.51 
Residual Deviance: 84.99        AIC: 474.8
> summary(fit)

Call:
glm(formula = y ~ x, family = poisson, data = d)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.3679  -0.7348  -0.1775   0.6987   2.3760  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  1.29172    0.36369   3.552 0.000383 ***
x            0.07566    0.03560   2.125 0.033580 *  
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 89.507  on 99  degrees of freedom
Residual deviance: 84.993  on 98  degrees of freedom
AIC: 474.77

Number of Fisher Scoring iterations: 4

> logLik(fit)
'log Lik.' -235.3863 (df=2)
> plot(d$x, d$y, pch = c(21, 19)[d$f])
> xx <- seq(min(d$x), max(d$x), length = 100)
> lines(xx, exp(1.29 + 0.0757 * xx), lwd = 2)
> fit.f <- glm(y ~ f, data = d, family = poisson)
> fit.f

Call:  glm(formula = y ~ f, family = poisson, data = d)

Coefficients:
(Intercept)           fT  
    2.05156      0.01277  

Degrees of Freedom: 99 Total (i.e. Null);  98 Residual
Null Deviance:      89.51 
Residual Deviance: 89.48        AIC: 479.3
> fit.all <- glm(y ~ x + f, data = d, family = poisson)
> fit.all

Call:  glm(formula = y ~ x + f, family = poisson, data = d)

Coefficients:
(Intercept)            x           fT  
    1.26311      0.08007     -0.03200  

Degrees of Freedom: 99 Total (i.e. Null);  97 Residual
Null Deviance:      89.51 
Residual Deviance: 84.81        AIC: 476.6
> logLik(fit.all)
'log Lik.' -235.2937 (df=3)