【问题标题】:random model formula object随机模型公式对象
【发布时间】:2011-11-15 02:27:20
【问题描述】:

我想将公式放入随机模型中,但我认为以下错误是由于错误的公式对象(?),但无法修复。

set.seed(1234)
mydata <- data.frame (A = rep(1:3, each = 20), B = rep(1:2, each = 30),
                      C = rnorm(60, 10, 5))
mydata$A <- as.factor(mydata$A)
mydata$B <- as.factor(mydata$B)
myfunction <- function (mydata, yvars, genovar, replication) { 
              require("lme4")
              formula = paste ("yvars" ~ 1|"genovar" + 1|"replication")
              model1 <- lmer(formula, data = dataframe, REML = TRUE)
              return(ranef(model2))
}

myfunction(mydata=dataf, yvars = "C", genovar = "A", replication = "B")

错误:length(formula

【问题讨论】:

    标签: r formula lme4


    【解决方案1】:

    这里有一些不可靠的东西,但我认为这与你想要的很接近。

    set.seed(1234)
    mydata <- data.frame (A = factor(rep(1:3, each = 20)),
                          B = factor(rep(1:2, each = 30)),
                          C = rnorm(60, 10, 5))
    require("lme4")
    myfunction <- function (mydata, yvars, genovar, replication) { 
      formula <- paste (yvars,"~ (1|",genovar,") + (1|",replication,")")
      model1 <- lmer(as.formula(formula), data = mydata, REML = TRUE)
      return(ranef(model1))
    }
    myfunction(mydata=mydata, yvars = "C", genovar = "A", replication = "B")
    

    当心,然而,lmer 不像经典随机效应方差分析那样工作——它可能在如此少量的复制中表现得非常糟糕。 (在示例中,我尝试将A 的方差设置为零,这至少不是不合理的。)GLMM FAQ 对此问题进行了一些讨论。 (在这种情况下,随机效应 ANOVA 的功效会非常低,但可能不会那么糟糕。)如果您真的想对如此小的样本进行随机效应模型,您可能需要考虑重建经典的矩量法方法(我记得S-PLUS 中有一个raov 公式可以进行随机效应方差分析,但我不知道它是否曾经在 R 中实现过)。

    最后,对于这些方面的未来问题,您可能会在r-sig-mixed-models@r-project.org 邮件列表中做得更好——Stack Overflow 很好,但那里有更多的 R/混合模型专业知识。

    【讨论】:

    • 感谢 Ben 解决了这个问题和关于复制大小的问题。提供的示例仅用于显示我遇到的错误,但真实数据有大量重复...再次感谢您的建议
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 2021-09-25
    • 2020-11-23
    • 1970-01-01
    相关资源
    最近更新 更多