【问题标题】:predicted values for glmer AICcmodavgglmer AICcmodavg 的预测值
【发布时间】:2016-09-22 12:37:36
【问题描述】:

我知道可以使用 AICcmodavg 获得固定效应的预测值(以原始比例 ~ 概率)及其 SE,但我正在尝试但没有成功...有人可以帮助我吗?提前致谢

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)

【问题讨论】:

    标签: r glm predict


    【解决方案1】:

    最好阅读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.
    
    如果您的模型有两个因素;
    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
    

    【讨论】:

    • 完美!感谢你能这么快回复。如果我的模型有两个因素,你能告诉我如何为“newdata”写一行。
    • 很抱歉滥用你的知识@cuttlefish44 我正在这样做,当我按照你所说的使用这些数据并适合时出现错误Error in eval(expr, envir, enclos) : object 'inter1' not founddf= gsheet2tbl("https://docs.google.com/spreadsheets/d/1GotdpK0x036O4Reus9c-C6lqeiQkc35rx1z7N0Dx6PQ/edit?usp=sharing") ; fit&lt;- glmer(cbind(diseased,n-diseased)~ var:trt + (1|blk/var/trt), family="binomial",data=df); newd &lt;- expand.grid(var = levels(df[,"var"]), trt = levels(df[,"trt"])); predictSE(fit, newdata = newd) 你知道发生了什么吗这里?谢谢!
    • @Juanchi;我无法在没有消息的情况下制作 fit 并且 predictSE(fit, newdata=df) 无法运行,这意味着您未能制作合适的模型来提供 predictSE()。例如,fit3&lt;- glmer(cbind(diseased,n - diseased) ~ var*trt + (1|blk), family="binomial",data=df); predictSE(fit, newdata = newd) 运行。
    • 太棒了!是的,我收到了这条消息fixed-effect model matrix is rank deficient so dropping 1 column / coefficient,我发现它的数据集有点小……谢谢!
    • Brillant...它现在很合适,没有错误。非常感谢您的宝贵时间!
    猜你喜欢
    • 2015-10-07
    • 1970-01-01
    • 2020-11-13
    • 2015-09-09
    • 2019-09-22
    • 2020-01-03
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    相关资源
    最近更新 更多