I have a set of data with 3 numeric variables: X, Y and Z.

I have access to data with 15 <= X + Y <= 40 (training set).

The goal is to predict the value of Z when 40 < X + Y <= 60. (test set).

From this graph I had the idea of modelling with this equation :

Z = A * exp(-B*X) * exp(-C*Y)

In other words, Z has a initial value equals to A when X and Y are nil, and X and Y cause an exponential decay at different speed.

As we can see the effect of X is bigger than the effect of Y then B should be greater than C.

This model has the advantage to be linear after log transformation: Log(Y) = log(A) - B*X - C*Y

I applied a OLS regression and the results are not good!


  1. Some value of C are nil so I added a very small value to Z. It's called Z2. Z2 = Z +0.001

  2. The prediction are bad:

Since the errors are computed after log transformation, the OLS tends to focus on the prediction of small values and big values'prediction are bad.

Potential solutions

Here are the solutions I have in mind but I think there is a better way.

  1. Find a better model than Z = A * exp(-B*X) * exp(-C*Y)

  2. Use the solution from the OLS after log transformation as initial parameters of a non-linear regression.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.