Non-Linear Regressions – Equivalent for Interaction Term in Linear Models

interactionlinear modelnonlinear regressionr

I’m working on how different temperatures affect the scaling of metabolic rate and gill area with body mass. It is commonly accepted that both metabolic rate and gill surface area increase with body mass in a non-linear way, according to power-law relationships of the form of µ(Y)= a * body mass^b + ϵ. Here µ(Y) is either the mean metabolic rate or gill surface area.

enter image description here

A is the metabolic rate, and B is the gill area. I've fitted these functions individually using nls(Y ~ a*body mass^b) in R. I wonder whether there is a way to statistically test whether these scaling relationships, or the regression parameters for the relationships, are significantly different between temperature treatments (for gill area and metabolic rate respectively)? I’m aware that I could log-log transform the data to linearise them and then fit linear models and include “temperature treatment” as an interaction term (e.g., lm( log10(body mass)~log10(Y)*treatment), however I would prefer to work with the data in normal space.
The reason for this is that I'm also interested in how the ratio between gill area and metabolic rate changes with increasing body mass (see figure C). This gives us an indication on how much gill surface area is available to supply the growing fish body with oxygen. We can calculate the regression parameters for this relationship as aGA/aMR and bGSA-bMR (where GA is gill area and MR is metabolic rate). I would like to calculate SE or confidence intervals for this relationship from the SE’s given around the regression parameters for metabolic rate and gill surface area, but I’m not sure that it is correct to simply back transform the regression parameters ± SE into normal space and use these to do further calculations.
Long story short: Is there an equivalent for an interaction term in linear models for non-linear regressions? And if not, would comparing 95% confidence intervals for regression parameters between treatments in A and B respectively be an indicator of significant difference (i.e., if confidence intervals do not overlap, then regression parameters are different)?

Thanks a lot for your help!

Best Answer

That's an interesting scientific problem and an interesting question.

You wrote that $Y = a x^b$, where $x$ is body mass and $Y$ is either metabolic rate or gill area. However, this has no noise term. I suspect you mean that equation holds with "$Y$" replaced by its mean "$\mu$". Notice that \begin{align*} & \mu = a x^b \\ \leftrightarrow\, & \log \mu = \log a + b \log x, \end{align*} so that each line is equivalent. Therefore assuming the error is additive (iid) Gaussian, as indicated by your preference for using a linear model, we can fit this model using

mod <- glm(y~I(log(x)), family=gaussian(link='log'))

You can access standard errors and tests through the command summary(mod).

This model is appropriate for a given outcome, but not for both simultaneously. To handle both, you need to (vertically) stack the data, with an additional variable temp which determines the temperature. Then the following model will fit the bill:

mod <- glm(y~temp*I(log(x)), family=gaussian(link='log'))

I encourage you to further consider the modeling assumptions. Are the errors really additive gaussian? Does the error distribution for each temperature really have the same variance? If not, the above should be updated.

Related Question