Programming the statistical procedures from SAS

about the transformation of error term

Reply
Contributor
Posts: 44

about the transformation of error term

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 );

  fit y;

  run;

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.

SAS/ETS(R) 9.22 User's Guide

Respected Advisor
Posts: 2,655

Re: about the transformation of error term

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.

Steve Denham

Contributor
Posts: 44

Re: about the transformation of error term

Thank you Steve. What is the criteria of stable region? Can you give me some reference about this issue?

Respected Advisor
Posts: 2,655

Re: about the transformation of error term

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.

Steve Denham

Ask a Question
Discussion stats
  • 3 replies
  • 228 views
  • 3 likes
  • 2 in conversation