2016-09-22 5 views
1

AICcmodavgで固定効果の予測値(元のスケール〜確率)とSEを得ることができますが、何の成功もなしに試しています。それ?事前のおかげglmerの予測値AICcmodavg

library(lme4) 
(gm1 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd), 
       data = cbpp, family = binomial)) 
fixef(gm1) 

library("AICcmodavg") 

predictSE(gm1, 
      newdata=as.data.frame(period=c("period1","period2","period3","period4")), 
      type="response", 
      se.fit=TRUE, 
      level=0, 
      print.matrix=F) 

答えて

2

levels(cbpp$period)、およびないas.data.frame()しかしdata.frame()

levels(cbpp$period) 
# [1] "1" "2" "3" "4" 

predictSE(gm1, 
      newdata = data.frame(period=c("1", "2", "3", "4")), 
      type = "response", 
      se.fit = TRUE, 
      level = 0, 
      print.matrix = F) 


[編集]

エラーの原因を検索する簡単な方法を読む方が良いでしょう
fit <- ...(..., data = df) 

predictSE(fit, newdata = df) 
predictSE(fit, newdata = ...) 

# If 1st predictSE() doesn't run, it means the model causes error. 
# If 1st runs but 2nd doesn't, it means it is due to newdata. 
あなたのモデルには2つの要素があります。
newd <- expand.grid(name1 = levels(df$name1), name2 = levels(df$name2)) 
predictSE(fit, newdata = newd) 
# pred <- predictSE(fit, newdata = newd) 
# cbind(newd, pred)   # help to interpret 
+0

完璧!迅速な返信をありがとう。私のモデルに2つの要素がある場合、 'newdata'の行を書く方法を教えてください。 – Juanchi

+0

あなたのknoledgment @ cuttlefish44を悪用して申し訳ありません。私はこれをやっています。このデータであなたが言ったことを実行してフィットするとエラーeval(expr、envir、enclos):オブジェクト 'inter1' df = gsheet2tbl( "https://docs.google.com/spreadsheets/d/1GotdpK0x036O4Reus9c-C6lqeiQkc35rx1z7N0Dx6PQ/edit?usp=sharing");フィット= - glmer(cbind(病気にかかった、病気にかかった)〜var:trt + (1 | blk/var/trt)、family = "binomial"、data = df); newd < - expand.grid(var = levels(df [、 "var"])、 trt = levels(df [、 "trt"])); predictSE(fit、newdata = newd) 'ここで何が起こっているのか理解していますか?ありがとう! – Juanchi

+0

@Juanchi; 'fitSE(fit、newdata = df)'が実行されない場合、 'predictSE()'を与えるための適切なモデルを作成できなかったことを意味します。例えば、 'fit3 < - glmer(cbind(病気にかかった、病気にかかった)〜var * trt +(1 | blk)、family =" binomial "、data = df); predictse(fit、newdata = newd) 'が実行されます。 – cuttlefish44