BookmarkSubscribeRSS Feed
Hanyu
Fluorite | Level 6

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

3 REPLIES 3
SteveDenham
Jade | Level 19

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

Hanyu
Fluorite | Level 6

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

SteveDenham
Jade | Level 19

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

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

What is ANOVA?

ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 3 replies
  • 1424 views
  • 3 likes
  • 2 in conversation