Skip to content

Fits a Bayesian time-varying regression on a 'tidyFit' R6 class. The function can be used with regress.

Usage

# S3 method for tvp
.fit(self, data = NULL)

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).

Value

A fitted 'tidyFit' class model.

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

.fit.bayes, .fit.mslm and m methods

Author

Johann Pfitzinger

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.0406 0.223 -0.173        0.136 196307
#>  2 tvp   (Intercept)   0.0715 0.466 -0.208        0.207 196308
#>  3 tvp   (Intercept)   0.0540 0.538 -0.219        0.275 196309
#>  4 tvp   (Intercept)   0.101  0.592 -0.265        0.237 196310
#>  5 tvp   (Intercept)   0.0996 0.541 -0.216        0.214 196311
#>  6 tvp   (Intercept)   0.110  0.484 -0.244        0.222 196312
#>  7 tvp   (Intercept)   0.135  0.603 -0.167        0.236 196401
#>  8 tvp   (Intercept)   0.150  0.646 -0.264        0.252 196402
#>  9 tvp   (Intercept)   0.157  0.694 -0.252        0.267 196403
#> 10 tvp   (Intercept)   0.173  0.859 -0.146        0.298 196404
#> # ℹ 4,946 more rows