0, 1でやっときゃFactor型と同じ結果になる

回帰の時あえて変数をFactorにする必要あるのかな?ってのを確かめておいた。
Factorが0,1の場合だけだけど。

> set.seed(71)
> x <- 1:100
> z <- rep(0:1, 50)
> y <- 1.2*x + 2.3*z + 3.4 + rnorm(100)

これで普通に回帰すると

> glm(y ~ . , data=data.frame(x, y, z))

Call:  glm(formula = y ~ ., data = data.frame(x, y, z))

Coefficients:
(Intercept)            x            z  
      3.177        1.202        2.517  

Degrees of Freedom: 99 Total (i.e. Null);  97 Residual
Null Deviance:	    120800 
Residual Deviance: 107.8 	AIC: 299.3

となる。
一方、無理やりFactor入れたデータフレーム(data.frame)にして同じ計算をしてみても・・・

> str(data.frame(x, y, as.factor(z)))
'data.frame':	100 obs. of  3 variables:
 $ x           : int  1 2 3 4 5 6 7 8 9 10 ...
 $ y           : num  4.17 7.65 6.52 10.92 8.98 ...
 $ as.factor.z.: Factor w/ 2 levels "0","1": 1 2 1 2 1 2 1 2 1 2 ...
> glm(y ~ . , data=data.frame(x, y, as.factor(z)))

Call:  glm(formula = y ~ ., data = data.frame(x, y, as.factor(z)))

Coefficients:
  (Intercept)              x  as.factor.z.1  
        3.177          1.202          2.517  

Degrees of Freedom: 99 Total (i.e. Null);  97 Residual
Null Deviance:	    120800 
Residual Deviance: 107.8 	AIC: 299.3

となりちゃんと一致する。まぁ、そりゃそうだよなという。