Learn R Programming

tsmethods (version 1.0.2)

plot.tsmodel.distribution: Plots of predictive distributions

Description

Plots for objects generated from probabilistic models returning a forecast distribution.

Usage

# S3 method for tsmodel.distribution
plot(
  x,
  y = NULL,
  median_color = "black",
  median_type = 1,
  median_width = 3,
  interval_quantiles = c(0.025, 0.975),
  gradient_color = "steelblue",
  interval_color = "cyan",
  interval_type = 2,
  interval_width = 2,
  ylim = NULL,
  ylab = "",
  n_x = NCOL(x),
  x_axes = TRUE,
  add = FALSE,
  zero_out = FALSE,
  date_class = "Date",
  ...
)

# S3 method for tsmodel.predict plot( x, y = NULL, plot_original = TRUE, median_color = "black", median_type = 1, median_width = 3, interval_quantiles = c(0.025, 0.975), gradient_color = "steelblue", interval_color = "cyan", interval_type = 2, interval_width = 2, ylim = NULL, ylab = "", n_original = NULL, x_axes = TRUE, zero_out = FALSE, ... )

Value

a plot of the predicted distribution.

Arguments

x

an object of class “tsmodel.distribution” or “tsmodel.predict”.

y

not used.

median_color

the color used for plotting the median value.

median_type

the line type for the median.

median_width

the width of the median line.

interval_quantiles

the quantiles to include in the plot.

gradient_color

the gradient color to use for the distribution.

interval_color

the color of the quantile lines.

interval_type

the line type for the quantiles.

interval_width

the width of the quantile lines.

ylim

user specified limits for the y-axis.

ylab

user specified label for y-axis.

n_x

the number of time periods from the end to plot for x.

x_axes

whether to print the x-axis (usually time/date).

add

whether to overlay another “tsmodel.distribution” on top of a current plot. This will only plot the median and quantiles and not the full distribution with gradient color.

zero_out

whether to zero any negative value in the prediction intervals.

date_class

when overlaying (add argument) one distribution (“tsmodel.distribution” on top of another, particularly if it is added to a plot based on “tsmodel.predict”, then in order for this to work correctly the two date classes have to be the same. The “tsmodel.predict” plot method infers the class from the original time series which is contained in the object. Since the “tsmodel.distribution” carries no additional information other than the column names of the date/time stamps, then it is upto the user to supply what this should be.

...

additional arguments to the plot.default function.

plot_original

whether to include the original dataset in the plot.

n_original

the number of time periods from the end to plot for the original series. Defaults to plotting the whole series.

Examples

Run this code
library(xts)
months <- c("01","02","03","04","05","06","07","08","09","10","11","12")
dates <- as.Date(paste0(sort(rep(1973:1978, 12)),"-",rep(months, 6), "-",rep("01",12*6)))
y <- xts(as.numeric(USAccDeaths), dates)
samples <- do.call(cbind, lapply(1:12, 
function(i){sample(as.numeric(y[format(index(y),"%m") == months[i]]), 100, replace = TRUE)}))
predict_dates <- as.Date(paste0(rep(1979, 12),"-",months, "-",rep("01",12)))
expected_value <- colMeans(samples)
p <- list()
colnames(samples) <- as.character(predict_dates)
class(samples) <- "tsmodel.distribution"
p$original_series <- y
p$distribution <- samples
p$mean <- xts(expected_value, predict_dates)
class(p) <- "tsmodel.predict"
actuals_available <- c(7798,7406,8363,8460,9217,9316)
plot(p, main = "USAccDeaths Resample Based Forecast", n_original = 12*3, 
gradient_color = "orange", interval_color = "deepskyblue", median_width = 1.5)
points(predict_dates[1:6], actuals_available, col = "green", cex = 1.5)

Run the code above in your browser using DataLab