GGPlot2中的NLS回归,绘制y = Ax ^ b趋势线错误

时间:2018-08-15 18:49:51

标签: r ggplot2 regression nls non-linear-regression

我正在尝试在3个数据点上拟合基本幂趋势线,就像您在Excel中可以模拟y = Ax ^ b函数一样。我将一个非常简单的数据集加载到LCurve.data中,如下所示:

MDPT = {4,10.9,51.6}

AUC = {287069.4,272986.0,172426.1}

fm0 <- nls(log(LCurve.data$AUC) ~ log(a) + b * log(LCurve.data$MDPT), data = LCurve.data, start = list (a = 1, b =1))
  ggplot(LCurve.data, aes(x=MDPT, y = AUC)) + geom_line() +
    geom_point() +
    stat_smooth(method = 'nls', formula = y ~ a * x ^ b, method.args = list(
      start=c(a = coef(fm0)[1], b = coef (fm0)[2]))) 

由于某些原因,此代码会产生以下错误。

警告:stat_smooth()中的计算失败: 初始参数估计时的奇异梯度矩阵

fm0数组在“ a”和“ b”字段或coef(fm0)[1]和[2]中分别具有正确的值。我通过打印变量确认了这一点。

我无法弄清楚为什么我无法在stat_smooth中绘制NLS趋势线。有任何想法吗?我已经搜寻了将近2个小时,并且一直陷入僵局。谢谢!

0 个答案:

没有答案