gpt4 book ai didi

r - 随机效应变量是否自动被视为 R 中 lmer(或 lme)的因子?

转载 作者:行者123 更新时间:2023-12-01 16:21:52 24 4
gpt4 key购买 nike

我知道在混合效应模型中将连续变量或数值变量作为随机效应没有多大意义(例如,请参阅 here )。

但我想知道 R 中的 lme4::lmernlme::lme 是否故意阻止您这样做......

具体来说,我要问的是:如果我提供 lmer (或 lme)任何非因子(非分类)变量作为随机效应,< strong>该函数是否自动将其视为一个因素?

factor() 直接插入 lmer(这是使用 lm 时的常用方法)会产生以下错误:

lmer(y ~ z + (1|factor(x)), data = dat)
Error: couldn't evaluate grouping factor factor(x) within model frame: try adding grouping factor to data frame explicitly if possible

虽然上述错误提到直接向数据添加分组因子,但它没有指定所述分组因子是否需要是一个因子(或者这可能是从单词选择中隐含的)?

我知道直接从我的数据创建一个新的因子类变量相当简单,但我只是好奇在使用lmer(或lme)时是否确实有必要>)。

最佳答案

好像没什么关系。

library(lme4)

sl <- sleepstudy
sl$Subject <- as.numeric(levels(sl$Subject))[sl$Subject]

## subject as factor
m1 <- lmer(Reaction ~ Days + (1|Subject), data = sleepstudy)

## subject as numeric
m2 <- update(m1, data = sl)

all.equal(VarCorr(m1), VarCorr(m2))
# TRUE

检查对象的其余部分,调用不同(这是有道理的,我将数据框称为不同的东西),并且框架不同(由于主题中的数字与因子差异)。其他一切都是相同的。

all.equal(m1, m2)
#[1] "Attributes: < Component “call”: target, current do not match when deparsed >"
#[2] "Attributes: < Component “frame”: Component “Subject”: 'current' is not a factor >"

分组因子在mkBlist()内受到factorize()的影响,在 mkReTrms() 内调用,它创建随机效应的模型矩阵。 factorize() 是一个帮助函数,最终会调用随机效应公式右侧项的 factor(x)(取决于它是否已经是一个因子等)

关于r - 随机效应变量是否自动被视为 R 中 lmer(或 lme)的因子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39962750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com