R emmeans函数赢得';跑不动或跑得太久

R emmeans函数赢得';跑不动或跑得太久,r,statistics,linear-regression,covariance,R,Statistics,Linear Regression,Covariance,我是新来的。我想使用emmeans函数来计算基于模型的估计边际均值。此模型通过lmer功能完成。问题是我有很多固定效应变量和一个随机效应变量。我可以毫无问题地运行lmer。顺便说一下,在运行lmer之前,我将20ish分类变量设置为因子。当我使用emmeans时,会显示错误 错误:无法分配大小为49391.4 Gb的向量 我知道这是一个记忆问题。如果我使用2-3个变量来构建模型,emmeans函数将运行,尽管它需要20分钟才能完成。数据集相当大(20K)。有人经历过同样的事情吗?或者我应该使用不

我是新来的。我想使用
emmeans
函数来计算基于模型的估计边际均值。此模型通过
lmer
功能完成。问题是我有很多固定效应变量和一个随机效应变量。我可以毫无问题地运行
lmer
。顺便说一下,在运行
lmer
之前,我将20ish分类变量设置为因子。当我使用
emmeans
时,会显示错误

错误:无法分配大小为49391.4 Gb的向量

我知道这是一个记忆问题。如果我使用2-3个变量来构建模型,emmeans函数将运行,尽管它需要20分钟才能完成。数据集相当大(20K)。有人经历过同样的事情吗?或者我应该使用不同的函数?有没有办法让它在R中工作?我是一个spss用户,它似乎不需要spss很长时间来计算这个,我不明白为什么我不能在R运行它

我的R脚本如下所示:

mod1 <- lmer(overall ~ age + gender + job + a + b + ... + c + (1 | groupcode), data=dat, REML=T)
res1 <- emmeans::emmeans(mod1, specs = "age")
res2 <- emmeans::emmeans(mod1, specs = "gender")
...

mod1不确定这是否做了完全相同的事情,但在我尝试过的少数情况下,它似乎是相似的。最大的区别在于所使用的自由度,
ggpredict()
不使用Kenward Roger(或任何其他)对DF的修正

library(lme4)
fm2 <- lmer(Reaction ~ Days + (Days || Subject), sleepstudy)
emmeans::emmeans(fm2, specs="Days")
# Days emmean   SE df lower.CL upper.CL
# 4.5    299 8.88 25      280      317
# 
# Degrees-of-freedom method: kenward-roger 
# Confidence level used: 0.95 

library(ggeffects)
m <- mean(sleepstudy$Days)
ggpredict(fm2, terms="Days [m]")

# # Predicted values of Reaction
# # x = Days
# 
#    x | Predicted |   SE |           95% CI
# ------------------------------------------
# 4.50 |    298.51 | 8.88 | [281.11, 315.91]
# 
# Adjusted for:
# * Subject = 0 (population-level)
库(lme4)

fm2 Hi pink99欢迎来到SO!你能分享一个可复制的例子吗?请参见此处了解执行此操作的方法:当然。我将在几天后回来。如果K-R确实是问题所在(这似乎是合理的),OP可能会使用
lmer.df=“satterthwaite”
library(lme4)
fm2 <- lmer(Reaction ~ Days + (Days || Subject), sleepstudy)
emmeans::emmeans(fm2, specs="Days")
# Days emmean   SE df lower.CL upper.CL
# 4.5    299 8.88 25      280      317
# 
# Degrees-of-freedom method: kenward-roger 
# Confidence level used: 0.95 

library(ggeffects)
m <- mean(sleepstudy$Days)
ggpredict(fm2, terms="Days [m]")

# # Predicted values of Reaction
# # x = Days
# 
#    x | Predicted |   SE |           95% CI
# ------------------------------------------
# 4.50 |    298.51 | 8.88 | [281.11, 315.91]
# 
# Adjusted for:
# * Subject = 0 (population-level)