我正在一个稍大的数据集(130,000行)上运行二项式glmmTMB
模型。该模型本身很简单-2个固定变量(连续和因子),一个嵌套随机变量(单个事件,有4个个体)。当我添加ar1()
结构时,就会出现问题。数据以规则的1分钟网格显示,但是事件的长度不同,事件之间可以间隔数小时。因此,我指定该模型在每个事件(分别嵌套)中具有自相关结构。
我收到cannot allocate vector of size xx Gb
错误。每个事件的数量在80到140之间(所有事件都有唯一的名称,Event
是一个因子变量)。 Running.WithinF
列是一个因子变量,用于跟踪事件中数据点的顺序。事件长度范围是50到1300个样本。
m <- glmmTMB(Response ~ poly(Continuous, 4) + Discrete + (1|Individual) +
(1|Event) + ar1(Running.WithinF + 0| Event), data = df, family = "binomial")
一旦我使用了300多个事件,该模型就会给我错误。如果仅使用300个事件,则会收到extreme or very small eigen values detected
警告。小插图并未提供有关如何在二项式设置中处理这些信息的大量信息...一旦删除了ar1()
结构,模型就会收敛,而不会出现任何警告或错误。
我对模型的要求太多了吗?我在具有16 GB RAM的64位Windows计算机上使用R 3.5.1。为了避免这些问题,我可以进行哪些更改?
数据结构(因为我无法创建玩具数据集):
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 54532 obs. of 10 variables:
$ Response : num 1 1 0 1 1 1 1 1 1 1 ...
$ Discrete : Factor w/ 2 levels "B",..: 1 1 1 1 1 1 1 1 1 1 ...
$ Individual : Factor w/ 4 levels "N01","N02",..: 1 1 1 1 1 1 1 1 1 1 ...
$ Continuous : num 0 0 0 0 0 0 0 0 0 0 ...
$ RunningF : Factor w/ 100 levels "0","1","2","3",..: 1 1 1 1 1 1 1 1 1 1 ...
$ Running.WithinF: Factor w/ 1219 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ...