了解 R 中的 SSasymp 函数及其拟合值

Understanding the SSasymp function in R and its fitted values

我在 r 中有 运行 以下非线性模型:

model <- nls(y ~ SSasymp(x, Asym, R0, lrc), data = df_z)
summary(model)

这是输出:

Formula: y ~ SSasymp(y, Asym, R0, lrc)

Parameters:
     Estimate Std. Error t value Pr(>|t|)    
Asym  1.11415    0.01093  101.90   <2e-16 ***
R0    2.01447    0.02194   91.83   <2e-16 ***
lrc   4.88583    0.04830  101.15   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.1958 on 1796 degrees of freedom

Number of iterations to convergence: 11 
Achieved convergence tolerance: 9.266e-06
  (26 observations deleted due to missingness)

根据documentation,如果我是对的,表达式的值为:

其中α(或Asym)代表y的渐近值,β(或RO)代表x为0时y的值,ln(k)为速率常数的自然对数。

当我用这个模型拟合数据时,我得到了这个图:

现在,当我手动计算某些特定 x 值的结果时,我得到以下结果:

y = 1.114 + (2.01 - 1.114) * exp(-exp(4.886)) * 1 = 1.114
y = 1.114 + (2.01 - 1.114) * exp(-exp(4.886)) * 0.1 = 1.114
y = 1.114 + (2.01 - 1.114) * exp(-exp(4.886)) * 0.01 = 1.114
y = 1.114 + (2.01 - 1.114) * exp(-exp(4.886)) * 0.001 = 1.114

我期望得到超过红线的 y 值。但事实并非如此。

我哪里错了?

您的值 x 在最后一个括号之外。它应该在里面:

xvals <- seq(0, 0.2, 0.001)
yvals <- 1.114 + (2.01447 - 1.114) * exp(-exp(4.886) * xvals)
plot(xvals, yvals, type = "l")