Title: | Quality Assessment for Seasonal Adjustment |
---|---|
Description: | Add-in to the 'RJDemetra' package on seasonal adjustments. It allows to produce dashboards to summarise models and quickly check the quality of the seasonal adjustment. |
Authors: | Alain Quartier-la-Tente [aut, cre] |
Maintainer: | Alain Quartier-la-Tente <[email protected]> |
License: | EUPL |
Version: | 0.1.6 |
Built: | 2024-11-05 14:19:43 UTC |
Source: | https://github.com/AQLT/rjdqa |
Function to plot Statistics Canada dashboard of a seasonal adjustment model.
## S3 method for class 'sc_dashboard' plot( x, main = "Seasonal Adjustment Dashboard", subtitle = "", reference_date = TRUE, raw_color = "#33A02C", sa_color = "#E31A1C", trend_color = "black", ... )
## S3 method for class 'sc_dashboard' plot( x, main = "Seasonal Adjustment Dashboard", subtitle = "", reference_date = TRUE, raw_color = "#33A02C", sa_color = "#E31A1C", trend_color = "black", ... )
x |
a |
main |
main title. |
subtitle |
subtitle. |
reference_date |
boolean indicating if the reference date should be printed. |
raw_color |
color for the raw series. |
sa_color |
color for the seasonal adjusted series. |
trend_color |
color for the trend. |
... |
other parameters (unused). |
sa_model()
reproduces Statistics Canada dashboard used to provide a snapshot snapshot of an single seasonal adjustment model at a point in time and to point out some possible problems (see references).
The dashboard is divided into four sections:
Recent History (top left panel): plot of the raw series, the seasonal adjusted series and the trend for the most recent periods (n_recent_obs
last observations: 24 by default). It is intended to identify trendF direction, overall volatility and obvious outliers.
Summary of Key Diagnostics (top right panel):
Adjustability (only for X13 models): M7 statistic. Colors: red if M7 > 1.75, yellow if 1.25 < M7 < 1.75 and green if M7 < 1.25.
Residual seasonality: qs (auto-correlations at seasonal lags) and f (Friedman) test on seasonal adjusted series. Colors: red if p-value < 0.01, yellow if 0.01 < p-value < 0.05 and green if p-value > 0.05.
Residual trading-days effects: f (Friedman) test on seasonal adjusted serie. Colors: red if p-value < 0.01, yellow if 0.01 < p-value < 0.05 and green if p-value > 0.05.
Independence of RegARIMA residuals: Ljung-Box test. Colors: red if p-value < 0.01, yellow if 0.01 < p-value < 0.05 and green if p-value > 0.05.
Recent outliers on last (t) and penultimate (t-1) observation. Colors: Red if there is an extreme value (only for X13: when table C17 equals to 0), yellow if there is an outlier in the RegARIMA model and green otherwise.
Estimated Patterns and Anticipated Movements (middle panel): estimated trading day, moving holiday and seasonal pattern. It presents expected movement in unadjusted series based on the current and previous period.
Net Effect of Seasonal Adjustment (bottom panel): movement in the raw series, compared to typical ranges centered around “neutral” value (when the seasonal adjusted series of the last period is equal to the penultimate period). It also shows the movement in the seasonally adjusted series, compared to typical ranges.
KIRCHNER R., LADIRAY D., MAZZI G. L. (2018), "Quality Measures and Reporting for Seasonal Adjustment", edited by G. L. Mazzi, co-edited by D. Ladiray, European Union, Luxembourg. https://ec.europa.eu/eurostat/web/products-manuals-and-guidelines/-/KS-GQ-18-001
MATTHEWS S. (2016), "Quality Assurance of Seasonal Adjustment for a Large System of Time Series", 36th International Symposium on Forecasting Santander, Spain.
data <- window(RJDemetra::ipi_c_eu[, "FR"], start = 2003) sa_model <- RJDemetra::x13(data, "RSA5c") dashboard_data <- sc_dashboard(sa_model) plot(dashboard_data, main = "My first seasonal adjustment dashboard", subtitle = "SA with X13")
data <- window(RJDemetra::ipi_c_eu[, "FR"], start = 2003) sa_model <- RJDemetra::x13(data, "RSA5c") dashboard_data <- sc_dashboard(sa_model) plot(dashboard_data, main = "My first seasonal adjustment dashboard", subtitle = "SA with X13")
Functions to plot a simple dashboard of a seasonal adjustment model.
## S3 method for class 'simple_dashboard' plot( x, main = "Simple Dashboard with outliers", subtitle = NULL, color_series = c(y = "#F0B400", t = "#1E6C0B", sa = "#155692"), reference_date = TRUE, ... )
## S3 method for class 'simple_dashboard' plot( x, main = "Simple Dashboard with outliers", subtitle = NULL, color_series = c(y = "#F0B400", t = "#1E6C0B", sa = "#155692"), reference_date = TRUE, ... )
x |
a |
main |
main title. |
subtitle |
subtitle. |
color_series |
Color of the raw time series, the trend and the seasonally adjusted component. |
reference_date |
boolean indicating if the reference date should be printed. |
... |
other parameters (unused). |
data <- window(RJDemetra::ipi_c_eu[, "FR"], start = 2003) sa_model <- RJDemetra::jx13(data, "RSA5c") dashboard_data <- simple_dashboard(sa_model) plot(dashboard_data, main = "Simple dashboard IPI - FR") dashboard_data2 <- simple_dashboard2(sa_model) plot(dashboard_data2, main = "Simple dashboard with outliers IPI - FR")
data <- window(RJDemetra::ipi_c_eu[, "FR"], start = 2003) sa_model <- RJDemetra::jx13(data, "RSA5c") dashboard_data <- simple_dashboard(sa_model) plot(dashboard_data, main = "Simple dashboard IPI - FR") dashboard_data2 <- simple_dashboard2(sa_model) plot(dashboard_data2, main = "Simple dashboard with outliers IPI - FR")
Function to compute the data to produce the Statistics Canada seasonal adjustment dashboard
sc_dashboard(x, n_recent_obs = 24)
sc_dashboard(x, n_recent_obs = 24)
x |
a seasonal adjustment model made by 'RJDemetra' (object of class |
n_recent_obs |
number of observation in the recent history panel (see details). By default |
sa_model()
reproduces Statistics Canada dashboard used to provide a snapshot snapshot of an single seasonal adjustment model at a point in time and to point out some possible problems (see references).
The dashboard is divided into four sections:
Recent History (top left panel): plot of the raw series, the seasonal adjusted series and the trend for the most recent periods (n_recent_obs
last observations: 24 by default). It is intended to identify trend direction, overall volatility and obvious outliers.
Summary of Key Diagnostics (top right panel):
Adjustability (only for X13 models): M7 statistic. Colors: red if M7 1.75, yellow if 1.25
M7 < 1.75 and green if M7 < 1.25.
Residual seasonality: qs (auto-correlations at seasonal lags) and f (Friedman) test on seasonal adjusted series. Colors: red if p-value 0.01, yellow if 0.01 < p-value
0.05 and green if p-value > 0.05.
Residual trading-days effects: f (Friedman) test on seasonal adjusted serie. Colors: red if p-value 0.01, yellow if 0.01 < p-value
0.05 and green if p-value > 0.05.
Independence of RegARIMA residuals: Ljung-Box test. Colors: red if p-value 0.01, yellow if 0.01 < p-value
0.05 and green if p-value > 0.05.
Recent outliers on last (t) and penultimate (t-1) observation. Colors: Red if there is an extreme value (only for X13: when table C17 equals to 0), yellow if there is an outlier in the RegARIMA model and green otherwise.
Estimated Patterns and Anticipated Movements (middle panel): estimated trading day, moving holiday and seasonal pattern. It presents expected movement in unadjusted series based on the current and previous period.
Net Effect of Seasonal Adjustment (bottom panel): movement in the raw series, compared to typical ranges centered around “neutral” value (when the seasonal adjusted series of the last period is equal to the penultimate period). It also shows the movement in the seasonally adjusted series, compared to typical ranges.
KIRCHNER R., LADIRAY D., MAZZI G. L. (2018), "Quality Measures and Reporting for Seasonal Adjustment", edited by G. L. Mazzi, co-edited by D. Ladiray, European Union, Luxembourg. https://ec.europa.eu/eurostat/web/products-manuals-and-guidelines/-/KS-GQ-18-001
MATTHEWS S. (2016), "Quality Assurance of Seasonal Adjustment for a Large System of Time Series", 36th International Symposium on Forecasting Santander, Spain.
data <- window(RJDemetra::ipi_c_eu[, "FR"], start = 2003) sa_model <- RJDemetra::x13(data, "RSA5c") sc_dashboard_data <- sc_dashboard(sa_model) plot(sc_dashboard_data, main = "My first seasonal adjustment dashboard", subtitle = "SA with X13")
data <- window(RJDemetra::ipi_c_eu[, "FR"], start = 2003) sa_model <- RJDemetra::x13(data, "RSA5c") sc_dashboard_data <- sc_dashboard(sa_model) plot(sc_dashboard_data, main = "My first seasonal adjustment dashboard", subtitle = "SA with X13")
Functions to compute the data to produce a simple seasonal adjustment dashboard. 'simple_dashboard2()' is a slightly variation of 'simple_dashboard()' with smaller description text to include a table with last outliers.
simple_dashboard( x, digits = 2, scale_var_decomp = FALSE, remove_others_contrib = FALSE, add_obs_to_forecast = TRUE, td_effect = NULL ) simple_dashboard2( x, digits = 2, scale_var_decomp = FALSE, remove_others_contrib = FALSE, digits_outliers = digits, columns_outliers = c("Estimate", "T-stat"), n_last_outliers = 4, order_outliers = c("AO", "LS", "TC", "SO"), add_obs_to_forecast = TRUE, td_effect = NULL )
simple_dashboard( x, digits = 2, scale_var_decomp = FALSE, remove_others_contrib = FALSE, add_obs_to_forecast = TRUE, td_effect = NULL ) simple_dashboard2( x, digits = 2, scale_var_decomp = FALSE, remove_others_contrib = FALSE, digits_outliers = digits, columns_outliers = c("Estimate", "T-stat"), n_last_outliers = 4, order_outliers = c("AO", "LS", "TC", "SO"), add_obs_to_forecast = TRUE, td_effect = NULL )
x |
a seasonal adjustment model made by 'RJDemetra' (object of class |
digits |
number of digits used in the tables. |
scale_var_decomp |
boolean indicating if the variance decomposition table should be rescaled to 100. |
remove_others_contrib |
boolean indication if the "Others" contribution (i.e.: the pre-adjustment contribution) should be removed from the variance decomposition table. |
add_obs_to_forecast |
Boolean indicating if the last observed values should be added to the forecast table (for the plot). |
td_effect |
Boolean indicating if the residual trading days effect test should be printed. By default ('td_effect = NULL') the test is only printed for monthly series. |
digits_outliers |
number of digits used in the table of outliers. |
columns_outliers |
informations about outliers that should be printed in the summary table. Can be either a vector of characters among 'c("Estimate", "Std. Error", "T-stat", "Pr(>|t|)")'; or an vector of integer: '1' corresponding to the estimate coefficient ('"Estimate"'), '2' corresponding to the standard deviation error ('"Std. Error"'), '3' corresponding to the t-statistic ('"T-stat"') or '4' corresponding to the p-value ('"Pr(>|t|)"'). By default only the estimate coefficients and the t-statistics are printed ('columns_outliers = c("Estimate", "T-stat")'). |
n_last_outliers |
number of last outliers to be printed (by default 'n_last_outliers = 4'). |
order_outliers |
order of the outliers in case of several outliers at the same date. |
data <- window(RJDemetra::ipi_c_eu[, "FR"], start = 2003) sa_model <- RJDemetra::jx13(data, "RSA5c") dashboard_data <- simple_dashboard(sa_model) plot(dashboard_data, main = "Simple dashboard IPI - FR") dashboard_data2 <- simple_dashboard2(sa_model) plot(dashboard_data2, main = "Simple dashboard with outliers IPI - FR")
data <- window(RJDemetra::ipi_c_eu[, "FR"], start = 2003) sa_model <- RJDemetra::jx13(data, "RSA5c") dashboard_data <- simple_dashboard(sa_model) plot(dashboard_data, main = "Simple dashboard IPI - FR") dashboard_data2 <- simple_dashboard2(sa_model) plot(dashboard_data2, main = "Simple dashboard with outliers IPI - FR")