我希望对此有所帮助。我正在尝试将指数衰减曲线放在我拥有的某些车辆数据上。我一直在搜索Stack Overflow,但没有一个答案有帮助。
这是我当前的无效代码。它基于ggplot2文档,仍然无法正常工作。
plot <- ggplot(data = rawData, aes(x = Mileage, y = Cost, color = Car)) + geom_point() + stat_smooth(method = 'nls', formula = y ~ a*exp(b *-x), se = FALSE, start = list(a=1,b=1))
plot
它可以绘制我的数据,但不显示曲线。
I can't embed photos for some reason so here it is
我收到的当前警告消息是:
1:在(函数(公式,数据= parent.frame(),开始,控制= nls.control(),:未为某些参数指定起始值。 将“ a”,“ b”初始化为“ 1”。考虑指定“开始”或使用 selfStart模型2:
stat_smooth()
中的计算失败:单数 初始参数估计时的梯度矩阵
我也尝试了这些其他选项,但无济于事。
ggplot(mtcars,aes(x = Mileage,y = Cost))+ geom_point()+
stat_smooth(method =“ nls”,公式= y〜a * exp(x * b),se = FALSE, method.args = list(start = list(a = 1,b = 1)))
这导致以下错误消息:
在
stat_smooth()
中计算失败:缺少值或无穷大 评估模型时产生的
我也尝试过
ggplot(mtcars,aes(x = wt,y = mpg))+ geom_point()+
stat_smooth(method =“ nls”,公式= y〜a * exp(x * -b),se = FALSE, method.args = list(开始= list(a = 1,b = 1), 较低= c(0), algorithm =“ port”))
这导致以下错误消息:
在
stat_smooth()
中的计算失败:处的奇异梯度矩阵 初始参数估计
更新 如果我将所有值除以100,000,趋势线会突然起作用,尽管没有置信区间。我不知道为什么这行得通,并且因为我的所有轴值现在都偏移了100,000,所以无法为我提供可接受的答案。
rawData%>%mutate(里程=里程/ 100000, 费用=费用/ 100000)%>% ggplot(aes(x =里程,y =成本,颜色=汽车))+ geom_point()+ stat_smooth(method =“ nls”,公式= y〜a * exp(x * -b),se = FALSE)
这是我的数据-https://docs.google.com/spreadsheets/d/1SKhkqHK-qFGG8IST67iUhMIIdvA_k6htVid7lAwCb3A/edit?usp=sharing