# Regression with exponential decay

I have the data from Li et al. 2003 paper "Belowground biomass dynamics in the Carbon Budget Model of the Canadian Forest Sector". I am trying to recreate equation 6 in R so that I can produce the same parameter estimates. (eq. 6), however, Pf has a maximum value of 0.426, as values greater will produce a 0. The paper doesn't state whether a linear or non linear model is used so I am having trouble figuring out how to go about coding this is R.

At first I was thinking something like model3<-lm(log(fine_prop)~log(total_roots),data=Li2003_root_proportion) But this isn't correct as it won't match the parameters stated in the table 3 for equation number 6.

I know this isn't much to go on but I would appreciate any help. Thanks!   At first I was thinking something like model3<-lm(log(fine_prop)~log(total_roots),data=Li2003_root_proportion). But this isn't correct as it won't match the parameters

What you fitted was

$$\log(P_f) = a + b \log(RB)$$

which relates to a power law instead of an exponential distribution

$$P_f = e^{\log P_f} = e^{a + b \log(RB)} = (e^a) RB^b$$

To fit the exponential function $$Pf = a+b \exp(c RB)$$ you use a non-linear fitting method instead.

however, Pf has a maximum value of 0.426, as values greater will produce a 0.

To impose a maximum for the function you can impose limits on the parameters. The easiest is if you can reparameterize the function in terms of the maximum. In the case that $$RB>0$$ and the exponential term is decaying, we have for the function $$P_f(RB) = a+b \exp(c RB)$$ the maximum

$$m = \max(P_f) = a+b$$

So we could rewrite $$a$$ as

$$a = m-b$$ and fit the equation

$$P_f(RB) = m-b+b \exp(c RB) = m(1-b \exp(c RB))$$

while imposing a maximum restriction on $$m$$. For these restrictions see the lower and upper parameters of the function nls in R (https://stat.ethz.ch/R-manual/R-devel/library/stats/html/nls.html).

• Thank you very much for your answer, I really appreciate you taking the time to help. Would you be able to help with how to code this in R, especially if the Pf has a max value of 0.426. Forgive my ignorance, I am a bit of a novice. Feb 25, 2022 at 4:29
• Thank you very much for your thorough explanation. Forgive my ignorance but I am a novice with R at least when it comes to nls. Would it be possible give me an example of how I would code Pf=m(1-b exp(cRB) with the limit. I usually try and learn from previous examples but the few examples I have found are beyond me. Feb 25, 2022 at 17:35