Skip to content

Instantly share code, notes, and snippets.

@olooney
Created April 23, 2015 19:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save olooney/56c6725ffadf5c84f273 to your computer and use it in GitHub Desktop.
Save olooney/56c6725ffadf5c84f273 to your computer and use it in GitHub Desktop.
arima.simulation <- function(linear=1, exponential=0, seasonal=0, season=25, random=1, ahead=10) {
sim.data <- (1:100 * linear/100) + exponential*exp( (1:100/100))/exp(1) + seasonal*sin(1:100 * 2 * pi / season ) + random*rnorm(100);
sims <- ts(sim.data, frequency=25)
sim.model <- auto.arima(sims);
sim.past.future <- c(as.vector(fitted(sim.model)),as.vector(forecast(sim.model, h=ahead)$mean));
ylimits = c( min(sim.past.future), max(sim.past.future))
plot(sim.data, pch=20, col=rgb(0,0,1, alpha=0.5), ylim=ylimits, xlim=c(0,length(sim.past.future)));
lines(seq_along(sim.past.future), sim.past.future, col=rgb(0,1,0, alpha=0.75));
return(sim.model);
}
arima.simulation(linear=-0.1, exponential=0.4, season=25, seasonal=0.2, random=0.1, ahead=25)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment