【发布时间】:2021-08-28 16:47:46
【问题描述】:
我有一个数据集,我想拟合按 4 个不同因素(主题、种族、目标和干扰因素)分组的 Gompertz 模型。 Gompertz 模型在应用于整个数据集时有效(即,不应用“group_by”)。 group_by 函数在我使用(更简单的)线性回归时起作用。但是,当我尝试将 group_by 与 Gompertz 模型一起使用时,我收到以下错误:
Error in chol2inv(object$m$Rmat()) :
element (3, 3) is zero, so the inverse cannot be computed
In addition: Warning messages:
1: In nls(yt ~ ymin + ymax * (exp(-exp((alpha * 2.718282/ymax) * (lambda - :
Convergence failure: false convergence (8)
2: In nls(yt ~ ymin + ymax * (exp(-exp((alpha * 2.718282/ymax) * (lambda - :
Convergence failure: singular convergence (7)
代码如下:
grouped_data = all_merged %>%
group_by(subject,race,target,distractor)
gomp_fits = do(grouped_data, tidy(nls(yt ~ ymin+ymax*(exp(-exp((alpha* 2.718282/ymax)*(lambda-time)+1))), data = ., start = list(lambda = 0.480, alpha = 5.8, ymin = 0, ymax = 1.6),
control = list(warnOnly = TRUE),
algorithm = "port",
lower = c(0,-Inf, -Inf, 0),
upper= c(2, Inf, Inf, 2))))
谢谢!
【问题讨论】:
-
您正在按 4 个不同的变量进行分组,并试图拟合一个 4 参数模型。您确定每组都有足够的样本 (> 5) 来进行拟合吗?
-
如果您确实有足够的数据,请尝试使用从未分组的 nls 获得的总体值作为每个组的起始值。