So-net無料ブログ作成

新しいlmerにはまる [統計]

足軽日記: lmer研究(6)lme4 Version: 0.999375-17に解説があるが、最近のlmer()は いろいろかわっている。それはいいのだが、以前は動作していたコードが動かないという現象が発生している。なんだか関数内での変数のスコープがおかしいようだ。


library(lme4)

x <- runif(100, 0, 10)
b <- rep(seq(1, 5), 20)
r <- rnorm(5, 0, 1)

y <- 2 * x + 3 + r[b] + rnorm(100, 0, 1)

f.lmer <- function(obj) {
  f <- as.formula(paste(obj, "~ x + (1|as.factor(b))"))
  lmer(f, family=gaussian)
}

f.glm <- function(obj) {
  f <- as.formula(paste(obj, "~ x + as.factor(b)"))
  glm(f, family=gaussian)
}

としておいて、関数を呼び出すと:
> f.lmer("y")
 以下にエラー inherits(object, "formula") :  オブジェクト "f" は存在しません 
> f.glm("y")

Call:  glm(formula = f, family = gaussian) 

Coefficients:
  (Intercept)              x  as.factor(b)2  as.factor(b)3  as.factor(b)4  
       3.8198         2.0396        -0.9259        -2.3038        -2.0689  
as.factor(b)5  
      -2.6553  

Degrees of Freedom: 99 Total (i.e. Null);  94 Residual
Null Deviance:	    3216 
Residual Deviance: 100.1 	AIC: 297.9 

タグ:R lmer
nice!(0)  コメント(2)  トラックバック(2) 
共通テーマ:学問

nice! 0

コメント 2

martesorex

最近lme4が立て続けにアップグレードしましたね。
v.0.999375-20が最新のようです。
このバージョンでも上のコードが動かないですね。
近いうちにまだアップグレードするんでしょうかね?
by martesorex (2008-07-05 21:04) 

hiroki

ううむ。落ち着くまでもうちょっと時間がかかるかもしれませんね。
by hiroki (2008-07-05 22:21) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 2