Perform XYZ analysis on a set of time series.
xyz(x, m = NULL, prc = c(0.2, 0.3, 0.5), type = c("naive", "ets", "cv"))
Return object of class abc
and contains:
value
: a vector containing the forecastability value of each series.
class
: a vector containing the class membership of each series.
rank
: a vector containing the rank of each series, with 1 being the lowest forecastability series.
conc
: the forecastability concentration of each class, as percentage of total value.
model
: fitted model for each series.
this can either be an array, where each column is a series, or a vector of values. If x
is a vector of values forecastability is not calculated and the input is used as such.
seasonal length for time series. Required when type is "naive"
or "ets"
.
a vector of percentages indicating how many items are included in each class. By default this is c(0.2,0.3,0.5)
, but any set of percentage values can be used as long as 0<=prc[i]<=1
and sum(prc)==1
.
the type of forecastability calculation. This can be:
"naive"
: fit naive and seasonal naive and calculate forecastability using RMSE/mean level.
"ets"
: fit ets and calculate and calculate forecastability using RMSE/mean level.
"cv"
: use coefficient of variation as a proxy of forecastability.
Nikolaos Kourentzes, nikolaos@kourentzes.com.
Ord K., Fildes R., Kourentzes N. (2017) Principles of Business Forecasting, 2e. Wessex Press Publishing Co., p.515-518.
abc
, plot.abc
, abcxyz
.
x <- abs(matrix(cumsum(rnorm(5400,0,1)),36,150))
z <- xyz(x,m=12)
print(z)
plot(z)
Run the code above in your browser using DataLab