0

我一直在尝试将连续变量(Y)建模为时间(以秒为单位)的函数(Time ),使用 lme4 包的函数来考虑对象内(ID )相关性。lmer()我注意到,如果我使用完整的数据集(超过 100 个时间点),模型无法收敛,并且我收到以下错误消息:

Error in eval_f(x, ...) : Downdated VtV is not positive definite. In addition: Warning message:
Some predictor variables are on very different scales: consider rescaling

我不明白这是怎么回事,因为模型中唯一的预测变量是时间。为了查看问题是否出在时间点的数量上,我创建了一个截断的数据帧,其中每个主题的时间仅从 0-50 秒变化,并注意到该模型将收敛多达 50 个时间点:

> body_rs <- lmer(Y ~ 1 + Time + (1 + Time | ID), data = truncatedph)
> summary(body_rs)
Linear mixed model fit by REML ['lmerMod']
Formula: Y ~ 1 + Time + (1 + Time | ID)
   Data: truncatedph

REML criterion at convergence: -806.5

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-5.9843 -0.1106  0.0119  0.2692  3.9455 

Random effects:
 Groups   Name        Variance  Std.Dev. Corr 
 ID       (Intercept) 9.679e-03 0.098383      
          Time        6.237e-06 0.002497 -0.77
 Residual             5.168e-03 0.071890      
Number of obs: 357, groups:  ID, 7

Fixed effects:
              Estimate Std. Error t value
(Intercept)  6.6780198  0.0379340  176.04
Time        -0.0009101  0.0009787   -0.93

Correlation of Fixed Effects:
     (Intr)
Time -0.773

这是具有 51 个时间点的数据结构(不会收敛):

> dput(truncatedph)
structure(list(Time = c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 
28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 
44, 45, 46, 47, 48, 49, 50, 51, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 
26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 
42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 1, 2, 3, 4, 5, 6, 
7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 
23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 
39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 1, 2, 
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 
36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 
34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 
50, 51, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 
48, 49, 50, 51, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 
14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 
30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 
46, 47, 48, 49, 50, 51), Y = c(6.85, 6.78, 6.68, 6.8, 6.74, 6.63, 
6.7, 6.72, 6.75, 6.8, 6.62, 6.8, 6.7, 6.72, 6.7, 6.89, 6.72, 
6.57, 6.7, 6.68, 6.7, 6.7, 6.7, 6.7, 6.7, 6.68, 6.7, 6.7, 6.7, 
6.72, 6.7, 6.7, 6.65, 6.68, 6.7, 6.7, 6.67, 6.68, 6.7, 6.7, 6.7, 
6.68, 6.68, 6.72, 6.7, 6.7, 6.7, 6.68, 6.65, 6.68, 6.72, 6.7, 
6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 
6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 
6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 
6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 
6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.67, 6.66, 6.6, 6.6, 
6.56, 6.58, 6.6, 6.6, 6.6, 6.6, 6.58, 6.61, 6.61, 6.6, 6.61, 
6.6, 6.61, 6.61, 6.6, 6.6, 6.61, 6.6, 6.6, 6.6, 6.6, 6.6, 6.6, 
6.6, 6.61, 6.6, 6.6, 6.6, 6.6, 6.6, 6.6, 6.6, 6.6, 6.6, 6.6, 
6.61, 6.61, 6.6, 6.6, 6.6, 6.61, 6.6, 6.6, 6.61, 6.61, 6.6, 6.6, 
6.6, 6.61, 6.63, 6.79, 6.84, 6.79, 6.33, 6.47, 6.66, 6.79, 6.86, 
6.77, 6.79, 6.81, 6.88, 6.88, 6.77, 6.64, 6.7, 6.71, 6.7, 6.77, 
6.75, 6.75, 6.77, 6.7, 6.81, 6.77, 6.77, 6.78, 6.78, 6.75, 6.73, 
6.75, 6.75, 6.78, 6.77, 6.77, 6.75, 6.77, 6.75, 6.73, 6.77, 6.73, 
6.75, 6.77, 6.77, 6.73, 6.77, 6.77, 6.75, 6.77, 6.75, 6.77, 6.63, 
6.67, 6.61, 6.65, 6.72, 6.63, 6.62, 6.62, 6.63, 6.62, 6.59, 6.65, 
6.62, 6.62, 6.62, 6.63, 6.57, 6.62, 6.62, 6.62, 6.62, 6.62, 6.62, 
6.62, 6.62, 6.62, 6.63, 6.63, 6.61, 6.59, 6.63, 6.55, 6.53, 6.47, 
6.57, 6.3, 6.72, 6.62, 6.61, 6.23, 6.61, 6.4, 6.69, 6.13, 6.23, 
6.84, 6.76, 6.72, 6.63, 6.55, 6.72, 6.55, 6.9, 6.91, 6.84, 6.86, 
6.84, 6.81, 6.79, 6.81, 6.51, 6.7, 6.81, 6.86, 6.88, 6.86, 6.86, 
6.81, 6.75, 6.77, 6.64, 6.66, 6.66, 6.6, 6.66, 6.63, 6.63, 6.66, 
6.66, 6.66, 6.62, 6.62, 6.64, 6.62, 6.62, 6.68, 6.68, 6.71, 6.57, 
6.62, 6.68, 6.73, 6.71, 6.68, 6.68, 6.66, 6.64, 6.64, 6.62, 6.3, 
6.7, 6.53, 6.27, 6.4, 6.32, 6.45, 6.51, 6.53, 6.55, 6.56, 6.56, 
6.56, 6.58, 6.56, 6.58, 6.58, 6.58, 6.58, 6.58, 6.58, 6.6, 6.56, 
6.58, 6.58, 6.58, 6.58, 6.6, 6.6, 6.6, 6.6, 6.58, 6.62, 6.56, 
6.58, 6.6, 6.6, 6.6, 6.58, 6.6, 6.6, 6.6, 6.6, 6.6, 6.58, 6.58, 
6.6, 6.6, 6.6, 6.6, 6.6, 6.61, 6.6, 6.6, 6.6, 6.6, 6.6), ID = c("Patient1", 
"Patient1", "Patient1", "Patient1", "Patient1", "Patient1", "Patient1", 
"Patient1", "Patient1", "Patient1", "Patient1", "Patient1", "Patient1", 
"Patient1", "Patient1", "Patient1", "Patient1", "Patient1", "Patient1", 
"Patient1", "Patient1", "Patient1", "Patient1", "Patient1", "Patient1", 
"Patient1", "Patient1", "Patient1", "Patient1", "Patient1", "Patient1", 
"Patient1", "Patient1", "Patient1", "Patient1", "Patient1", "Patient1", 
"Patient1", "Patient1", "Patient1", "Patient1", "Patient1", "Patient1", 
"Patient1", "Patient1", "Patient1", "Patient1", "Patient1", "Patient1", 
"Patient1", "Patient1", "Patient1", "Patient2", "Patient2", "Patient2", 
"Patient2", "Patient2", "Patient2", "Patient2", "Patient2", "Patient2", 
"Patient2", "Patient2", "Patient2", "Patient2", "Patient2", "Patient2", 
"Patient2", "Patient2", "Patient2", "Patient2", "Patient2", "Patient2", 
"Patient2", "Patient2", "Patient2", "Patient2", "Patient2", "Patient2", 
"Patient2", "Patient2", "Patient2", "Patient2", "Patient2", "Patient2", 
"Patient2", "Patient2", "Patient2", "Patient2", "Patient2", "Patient2", 
"Patient2", "Patient2", "Patient2", "Patient2", "Patient2", "Patient2", 
"Patient2", "Patient2", "Patient2", "Patient2", "Patient2", "Patient2", 
"Patient2", "Patient3", "Patient3", "Patient3", "Patient3", "Patient3", 
"Patient3", "Patient3", "Patient3", "Patient3", "Patient3", "Patient3", 
"Patient3", "Patient3", "Patient3", "Patient3", "Patient3", "Patient3", 
"Patient3", "Patient3", "Patient3", "Patient3", "Patient3", "Patient3", 
"Patient3", "Patient3", "Patient3", "Patient3", "Patient3", "Patient3", 
"Patient3", "Patient3", "Patient3", "Patient3", "Patient3", "Patient3", 
"Patient3", "Patient3", "Patient3", "Patient3", "Patient3", "Patient3", 
"Patient3", "Patient3", "Patient3", "Patient3", "Patient3", "Patient3", 
"Patient3", "Patient3", "Patient3", "Patient3", "Patient3", "Patient4", 
"Patient4", "Patient4", "Patient4", "Patient4", "Patient4", "Patient4", 
"Patient4", "Patient4", "Patient4", "Patient4", "Patient4", "Patient4", 
"Patient4", "Patient4", "Patient4", "Patient4", "Patient4", "Patient4", 
"Patient4", "Patient4", "Patient4", "Patient4", "Patient4", "Patient4", 
"Patient4", "Patient4", "Patient4", "Patient4", "Patient4", "Patient4", 
"Patient4", "Patient4", "Patient4", "Patient4", "Patient4", "Patient4", 
"Patient4", "Patient4", "Patient4", "Patient4", "Patient4", "Patient4", 
"Patient4", "Patient4", "Patient4", "Patient4", "Patient4", "Patient4", 
"Patient4", "Patient4", "Patient4", "Patient5", "Patient5", "Patient5", 
"Patient5", "Patient5", "Patient5", "Patient5", "Patient5", "Patient5", 
"Patient5", "Patient5", "Patient5", "Patient5", "Patient5", "Patient5", 
"Patient5", "Patient5", "Patient5", "Patient5", "Patient5", "Patient5", 
"Patient5", "Patient5", "Patient5", "Patient5", "Patient5", "Patient5", 
"Patient5", "Patient5", "Patient5", "Patient5", "Patient5", "Patient5", 
"Patient5", "Patient5", "Patient5", "Patient5", "Patient5", "Patient5", 
"Patient5", "Patient5", "Patient5", "Patient5", "Patient5", "Patient5", 
"Patient5", "Patient5", "Patient5", "Patient5", "Patient5", "Patient5", 
"Patient5", "Patient6", "Patient6", "Patient6", "Patient6", "Patient6", 
"Patient6", "Patient6", "Patient6", "Patient6", "Patient6", "Patient6", 
"Patient6", "Patient6", "Patient6", "Patient6", "Patient6", "Patient6", 
"Patient6", "Patient6", "Patient6", "Patient6", "Patient6", "Patient6", 
"Patient6", "Patient6", "Patient6", "Patient6", "Patient6", "Patient6", 
"Patient6", "Patient6", "Patient6", "Patient6", "Patient6", "Patient6", 
"Patient6", "Patient6", "Patient6", "Patient6", "Patient6", "Patient6", 
"Patient6", "Patient6", "Patient6", "Patient6", "Patient6", "Patient6", 
"Patient6", "Patient6", "Patient6", "Patient6", "Patient6", "Patient7", 
"Patient7", "Patient7", "Patient7", "Patient7", "Patient7", "Patient7", 
"Patient7", "Patient7", "Patient7", "Patient7", "Patient7", "Patient7", 
"Patient7", "Patient7", "Patient7", "Patient7", "Patient7", "Patient7", 
"Patient7", "Patient7", "Patient7", "Patient7", "Patient7", "Patient7", 
"Patient7", "Patient7", "Patient7", "Patient7", "Patient7", "Patient7", 
"Patient7", "Patient7", "Patient7", "Patient7", "Patient7", "Patient7", 
"Patient7", "Patient7", "Patient7", "Patient7", "Patient7", "Patient7", 
"Patient7", "Patient7", "Patient7", "Patient7", "Patient7", "Patient7", 
"Patient7", "Patient7", "Patient7")), class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"), row.names = c(NA, -364L), groups = structure(list(
    ID = c("Patient1", "Patient2", "Patient3", "Patient4", "Patient5", 
    "Patient6", "Patient7"), .rows = list(1:52, 53:104, 105:156, 
        157:208, 209:260, 261:312, 313:364)), row.names = c(NA, 
-7L), class = c("tbl_df", "tbl", "data.frame"), .drop = TRUE))

我一直在寻找解决此问题的方法,但遇到相同错误的其他人似乎拥有更复杂的模型(更多预测变量)。对于理解我在这里做错的任何帮助,我将不胜感激,并且非常愿意接受其他建议。

谢谢你。

4

0 回答 0