Plot_Tradeoff {ForeComp} | R Documentation |
Visualizes the size distortion maximum power loss tradeoff from the Diebold-Mariano test for equal predictive accuracy
Description
'Plot_Tradeoff' creates a plot to show sensitivity of statistical significance to the choice of bandwidth and how size distortion and maximum power loss vary. It is designed for the Diebold-Mariano test for equal predictive accuracy (Diebold and Mariano, 2002). For a size-power tradeoff plot, see Lazarus, Lewis, Stock, and Watson (2018) and Lazarus, Lewis, and Stock (2021).
Usage
Plot_Tradeoff(
data,
f1 = NULL,
f2 = NULL,
y = NULL,
loss_function = NULL,
n_sim = 1000,
m_set = NULL,
verbose = TRUE,
no_m_label = FALSE
)
Arguments
data |
A data frame. |
f1 |
Column containing forecaster 1's predictions. Should be a string. |
f2 |
Column containing forecaster 2's predictions. Should be a string. |
y |
Column containing the realized value for the outcome variable. Should be a string. |
loss_function |
The transformation applied to the forecast error. Defaults to squared error loss. The user supplied function should take two inputs and a scalar output, loss = loss_function(f, y). For example, quadratic loss function would be defined as |
n_sim |
The number of simulations used to generate the ARIMA model. Defaults to 1,000. |
m_set |
The truncation parameter. Defaults to c(1:10, seq( 11, floor(nrow(data)/2), 10)). For a standard long-run variance calculation (for example, using Bartlett kernel), it controls the number of terms used in estimating the autocovariance matrix. It should be a vector of integers with the values of M you would like to plot. |
verbose |
TRUE to print out the progress to the console. Defaults to TRUE. |
no_m_label |
TRUE to plot without m labels. Defaults to FALSE. |
Value
A list of length 2. The first element is a ggplot2 object of the size-power tradeoff. The second element is the underlying data used to construct the plot in element 1.
Author(s)
Nathan Schor and Minchul Shin
References
Diebold, F. X. & Mariano, R. S. (2002), Comparing Predictive Accuracy, Journal of Business & Economic Statistics, 20(1), 134-144.
Lazarus, E., Lewis, D. J., Stock, J. H. & Watson, M. W. (2018), HAR Inference: Recommendations for Practice, Journal of Business & Economic Statistics, 36(4), 541-559.
Lazarus, E., Lewis, D. J. & Stock, J. H. (2021), The Size-Power Tradeoff in HAR Inference, Econometrica, 89(5), 2497-2516.
Examples
# A typical example
set.seed(1234)
output = Plot_Tradeoff(
data = TBILL,
f1 = "SPFfor_Step1",
f2 = "NCfor_Step1",
y = "Realiz1",
m_set = seq(from = 1, to = 70, by = 10)
)
output[[1]] # The first element is a ggplot2 object of the size-power tradeoff.
output[[2]] # The second element is the underlying data used to construct the plot in element 1.
# An example with a user supplied loss function
# To use the mean absolute error as a loss function rather than a quadratic loss function
set.seed(1234)
output = Plot_Tradeoff(
data = TBILL,
f1 = "SPFfor_Step1",
f2 = "NCfor_Step1",
y = "Realiz1",
loss_function = function(f,y){ abs(f-y) },
m_set = seq(from = 1, to = 50, by = 10)
)
# An example without (f1, f2, y). The function will take the first three columns and use them
set.seed(1234)
tmpdata = TBILL[, c("SPFfor_Step1", "NCfor_Step1", "Realiz1")] # data with [f1, f2, y]
Plot_Tradeoff(
data = tmpdata,
m_set = seq(from = 1, to = 50, by = 10)
)