统计信息中 SSasym() 函数的结构

Structure of the SSasym() function in stats

我正在使用 SSasym() 为几年不同的数据生成拟合。这都是指数衰减的人口死亡率数据。如果我在由 SSasym() 生成的 nls 函数上使用 predict(),用于生成这些值的方程式的结构是什么?

一些示例数据:

df = data.frame(value = c(8.96, 6.32, 6.10, 5.85, 5.75, 5.41, 5.91, 5.83, 5.21, 4.84, 5.80, 5.72, 5.58, 5.30, 4.53),
                x = c(5,6,6,7,7,8,9,10,11,12,13,14,15,16,17)

nlsfit = nls(value ~ SSasymp(x, Asym, R0, lrc), data = df)
plot(predict(nlsfit)~df$x, type ='l')

用于生成 predict() 行的函数是什么?我通读了文档但没有找到任何东西,我尝试用标准指数衰减方程复制它但它们不匹配。任何帮助将不胜感激。

这在 ?SSasymp 中有解释。表达式为 Asym + (R0-Asym)*exp(-exp(lrc)*x).

df <- data.frame(
  value = c(8.96, 6.32, 6.10, 5.85, 5.75, 5.41, 5.91, 5.83, 5.21, 4.84, 5.80, 5.72, 5.58, 5.30, 4.53),
  x = c(5,6,6,7,7,8,9,10,11,12,13,14,15,16,17))

nlsfit <- nls(value ~ SSasymp(x, Asym, R0, lrc), data = df)

coefs <- coef(nlsfit)
Asym <- coefs["Asym"]
R0 <- coefs["R0"]
lrc <- coefs["lrc"]

Asym + (R0-Asym)*exp(-exp(lrc)*df$x)
# [1] 8.935511 6.300831 6.300831 5.641607 5.641607 5.476663 5.435392 5.425066
# [9] 5.422482 5.421836 5.421674 5.421634 5.421624 5.421621 5.421620
predict(nlsfit)
# [1] 8.935511 6.300831 6.300831 5.641607 5.641607 5.476663 5.435392 5.425066
# [9] 5.422482 5.421836 5.421674 5.421634 5.421624 5.421621 5.421620