10-23-2014 04:25 AM
I want to estimate a multiplicative error model. In the link below, there is a discussion about model of non-additive error term. In it, the manual says that when we have a non-additive error term, we should use:
proc model data=in;
parms alpha beta;
y = alpha * x ** beta;
resid.y = log( actual.y / pred.y );
However, the log function cannot take value zero, which is the case when actual.y equals to zero. Is there any other way to estimate a non-additive error model with some zero actual values? Thank you in advance.
10-23-2014 07:30 AM
The most used approach is to add a small increment to y, but the fit may well depend on the number of zeroes in the dataset and the size of the increment. Some exploration, followed by model averaging once you find a stable region for the increment might work.
10-24-2014 01:17 PM
No references, other than introductory texts, where the log transformation is discussed.
The criteria of a stable region would be when the parameter estimates no longer move more than 1e-3 (relatively) for a log unit change in the added constant part. In other words, if you went from Y+1 to Y+0.1 as a way around the zeroes, and the largest relative change in any of the estimated model parameters was 1e-3 (larger estimate minus smaller estimate, and then divided by smaller estimate), then the estimates are stable with respect to the added constant.