我正在尝试在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个小时,并且一直陷入僵局。谢谢!