如何使用LMER运行大型data.frame?
我使用的是一个大的data.frame,它包含大约140万个观测值。最初,当我运行模型时,我正在处理一个子样本(占全部样本的10%)。这是因为使用原始数据运行一个模型可能需要大约两个小时。一旦我确定所有变量都很协调,所有回归都运行良好,我就使用完整的样本运行了我的模型。然而,回归没有收敛,我从两个不同的模型中得到了以下两个错误:如何使用LMER运行大型data.frame?,r,hierarchical-data,large-data,lme4,R,Hierarchical Data,Large Data,Lme4,我使用的是一个大的data.frame,它包含大约140万个观测值。最初,当我运行模型时,我正在处理一个子样本(占全部样本的10%)。这是因为使用原始数据运行一个模型可能需要大约两个小时。一旦我确定所有变量都很协调,所有回归都运行良好,我就使用完整的样本运行了我的模型。然而,回归没有收敛,我从两个不同的模型中得到了以下两个错误: Error in fun(xaa, ...) : Downdated VtV is not positive definite Error in fun(xss, .
Error in fun(xaa, ...) : Downdated VtV is not positive definite
Error in fun(xss, ...) : Downdated VtV is not positive definite
我不确定这是否相关,但我的笔记本电脑规格如下:
MacBook Pro(视网膜,15英寸,2015年年中)
处理器:2.5 GHz四核Intel Core i7
内存:16 GB 1600 MHz DDR3
图形:英特尔Iris Pro 1536 MB
数据的层次结构如下:个人(1级)->国家/年(2级)->国家(3级)
我使用lmer
函数将此模型拟合在一起,并在第2和第3层包含一个随机斜率。下面是一个可复制的代码。有人能指导我如何回避这个问题吗
df <- tibble(
y = rnorm(1400000),
x1 = rnorm(1400000),
x2 = rnorm(1400000),
country =sample.int(30,size=1400000,replace=TRUE)-1,
country_year =sample.int(10,size=1400000,replace=TRUE)-1
)
df$country = as.factor(df$country)
df$country_year = as.factor(df$country_year)
library(lme4)
model1 <- lmer(y~ x1 + x2 +
(x1 + x2 |country_year) +
(x1 + x2 |country), data=df)
df