我尝试使用 stat_smooth 和 ggplot 函数图拟合我的指数函数,但它拟合不正确。如何使用正确的公式?

I have try to fit my exponential function using stat_smooth and ggplot function graph but it did not fit properly. How to use the proper formula?

数据

Theoritical Strength
26.88 3.16
28.57 4.21
30.94 2.97
33.90 3.06
37.24 2.87
39.76 2.95
41.89 2.70
44.37 1.25
27.20 5.04
26.54 6.69
29.21 4.42
33.26 3.15
34.80 3.20
37.87 3.11
41.88 2.95
44.13 2.26
26.42 7.07
24.02 8.72
29.73 6.38
31.10 3.85
33.16 3.00
36.76 3.28
43.26 3.18
42.06 2.73
26.73 9.44
23.03 9.72
27.07 6.98
29.04 4.67
31.83 3.55
36.29 3.89
39.45 3.55
42.17 3.37
23.51 10.44
21.98 10.90
27.21 8.13
28.63 5.76
30.92 3.96
35.57 3.94
38.33 3.88
40.91 3.58
25.15 13.05
19.44 15.91
25.94 10.37
28.03 5.17
31.25 4.04
35.31 4.24
37.02 4.31
38.89 3.99
25.12 15.66
18.36 19.86
25.05 12.82
27.58 6.07
28.83 4.11
33.76 4.17
34.48 4.30
37.32 3.97
21.27 20.49
16.61 25.53
22.68 16.58
25.63 6.34
28.15 4.40
32.80 3.99
35.27 4.59
36.75 4.35
CODE

S1_mean_2 = ggplot(data = df1, aes(x=C_Theoritical_P_Per_mean, y=Strength_mean))+
  geom_point(size=3.0)+
  stat_smooth(method=lm, formula= (y~(exp(x))))+
  stat_poly_eq(formula = (y~exp(x)), label.x=0.5, label.y=0.85,
               aes(label = paste(..rr.label..)), 
               parse = TRUE, size = 3.5)+
  stat_regline_equation(label.x=30, label.y=25)+
  theme_minimal()+
  xlab("Total P") +
  ylab("Strength")+
  ggtitle("Strength vs Total P") +
  theme(
    plot.title = element_text(color="red", size=14, face="bold.italic"),
    axis.title.x = element_text(color="black", size=14, face="bold"),
    axis.title.y = element_text(color="black", size=14, face="bold"),
    axis.line.x = element_line(colour = 'black', size=0.5, linetype='solid'),
    axis.line.y = element_line(colour = 'black', size=0.5, linetype='solid')
  )
print(S1_mean_2)

结果

需要的功能

但是在excel我的曲线几乎不错

在数据中看到很多点都没有接近x-axis。这与 y=b * exp(c * x) 形式且 c<0 的指数模型不一致。这导致尝试 y=a+b * exp(c * x) .

形式的模型

指定拟合标准(LMSE 或 LMSRE 或 LMAE 等)也很重要。问题中缺少这一点。例如,使用标准最小均方误差,非线性回归的结果是:

评论后添加。

我使用了https://fr.scribd.com/doc/14674814/Regressions-et-equations-integrales

中描述的方法

这非常简单,因为它不需要初始猜测并且演算是线性的(不是迭代的):

注意a,b,c的值与上面的略有不同。这是正确的,因为拟合的标准是不一样的。如果我们想要上述值 (LMSE),则必须使用经典 non-linear 回归进行细化。事实上,结果非常接近,以至于人们看不出图表上各个蓝调曲线之间有任何差异。