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
となりちゃんと一致する。まぁ、そりゃそうだよなという。