# Forecasting within limits

**Hyndsight » R**, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

It is common to want forecasts to be positive, or to require them to be within some specified range . Both of these situations are relatively easy to handle using transformations.

### Positive forecasts

To impose a positivity constraint, simply work on the log scale. With the forecast package in R, this can be handled by specifying the Box-Cox parameter . For example, consider the real price of a dozen eggs (1900–1993; in cents):

library(fpp) fit <- ets(eggs, lambda=0) plot(forecast(fit, h=50)) |

### Forecasts constrained to an interval

To see how to handle data constrained to an interval, imagine that the egg prices were constrained to lie within and . Then we can transform the data using a scaled logit transform which maps to the whole real line:

where is on the original scale and is the transformed data.

# Bounds a <- 50 b <- 400 # Transform data y <- log((eggs-a)/(b-eggs)) fit <- ets(y) fc <- forecast(fit, h=50) # Back-transform forecasts fc$mean <- (b-a)*exp(fc$mean)/(1+exp(fc$mean)) + a fc$lower <- (b-a)*exp(fc$lower)/(1+exp(fc$lower)) + a fc$upper <- (b-a)*exp(fc$upper)/(1+exp(fc$upper)) + a fc$x <- eggs # Plot result on original scale plot(fc) |

The prediction intervals from these transformations have the same coverage probability as on the transformed scale, because quantiles are preserved under monotonically increasing transformations.

**leave a comment**for the author, please follow the link and comment on their blog:

**Hyndsight » R**.

R-bloggers.com offers

**daily e-mail updates**about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.