Fits a Bayesian time-varying regression on a 'tidyFit' R6
class. The function can be used with regress
.
Arguments
- self
a 'tidyFit' R6 class.
- data
a data frame, data frame extension (e.g. a tibble), or a lazy data frame (e.g. from dbplyr or dtplyr).
Details
Hyperparameters:
None. Cross validation not applicable.
Important method arguments (passed to m
)
mod_type
niter
(number of MCMC iterations)
The function provides a wrapper for shrinkTVP::shrinkTVP
. See ?shrinkTVP
for more details.
Implementation
An argument index_col
can be passed, which allows a custom index to be added to coef(m("tvp"))
(e.g. a date index, see Examples).
References
Peter Knaus, Angela Bitto-Nemling, Annalisa Cadonna and Sylvia Frühwirth-Schnatter (2021).
Shrinkage in the Time-Varying Parameter Model Framework Using the R Package shrinkTVP.
Journal of Statistical Software 100(13), 1--32.
doi:10.18637/jss.v100.i13
.
See also
.model.bayes
, .model.mslm
and m
methods
Examples
# Load data
data <- tidyfit::Factor_Industry_Returns
data <- dplyr::filter(data, Industry == "HiTec")
data <- dplyr::select(data, -Industry)
# Stand-alone function (using low niter for illustration)
fit <- m("tvp", Return ~ ., data, index_col = "Date", niter = 50)
fit
#> # A tibble: 1 × 5
#> estimator_fct `size (MB)` grid_id model_object settings
#> <chr> <dbl> <chr> <list> <list>
#> 1 shrinkTVP::shrinkTVP 1.59 #0010000 <tidyFit> <tibble [1 × 3]>
# Within 'regress' function (using low niter for illustration)
fit <- regress(data, Return ~ ., m("tvp", niter = 50, index_col = "Date"))
tidyr::unnest(coef(fit), model_info)
#> # A tibble: 4,956 × 7
#> # Groups: model [1]
#> model term estimate upper lower posterior.sd index
#> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 tvp (Intercept) 0.0402 0.179 -0.0151 0.0779 196307
#> 2 tvp (Intercept) 0.0612 0.298 -0.0398 0.108 196308
#> 3 tvp (Intercept) 0.0624 0.254 -0.0582 0.107 196309
#> 4 tvp (Intercept) 0.0835 0.270 -0.0260 0.112 196310
#> 5 tvp (Intercept) 0.0903 0.387 -0.0442 0.132 196311
#> 6 tvp (Intercept) 0.0843 0.256 -0.0213 0.115 196312
#> 7 tvp (Intercept) 0.116 0.311 -0.0165 0.123 196401
#> 8 tvp (Intercept) 0.126 0.420 -0.0291 0.147 196402
#> 9 tvp (Intercept) 0.151 0.396 -0.00356 0.127 196403
#> 10 tvp (Intercept) 0.170 0.460 -0.00275 0.155 196404
#> # ℹ 4,946 more rows