ffp 0.2.0 está no CRAN

Bernardo Reckziegel 2022-02-22 2 min read

A versão 0.2.0 do ffp finalmente está no CRAN.

Já fazia algum tempo que gostaria de ter lançado essa atualização, que possui algumas melhorias importantes em relação a versão anterior:

  1. A função bind_probs() agora adiciona a call do usuário como identificador em uma tidy-tibble:
library(ffp)
library(ggplot2)

x <- exp_decay(EuStockMarkets, lambda = 0.001)
y <- exp_decay(EuStockMarkets, lambda = 0.002)
bind_probs(x, y)
## # A tibble: 3,720 x 3
##    rowid        probs fn                                           
##    <int>        <ffp> <fct>                                        
##  1     1 0.0001844669 exp_decay(x = EuStockMarkets, lambda = 0.001)
##  2     2 0.0001846515 exp_decay(x = EuStockMarkets, lambda = 0.001)
##  3     3 0.0001848363 exp_decay(x = EuStockMarkets, lambda = 0.001)
##  4     4 0.0001850212 exp_decay(x = EuStockMarkets, lambda = 0.001)
##  5     5 0.0001852063 exp_decay(x = EuStockMarkets, lambda = 0.001)
##  6     6 0.0001853916 exp_decay(x = EuStockMarkets, lambda = 0.001)
##  7     7 0.0001855771 exp_decay(x = EuStockMarkets, lambda = 0.001)
##  8     8 0.0001857627 exp_decay(x = EuStockMarkets, lambda = 0.001)
##  9     9 0.0001859486 exp_decay(x = EuStockMarkets, lambda = 0.001)
## 10    10 0.0001861346 exp_decay(x = EuStockMarkets, lambda = 0.001)
## # ... with 3,710 more rows

Como os dados estão no formato “longo” - tidy - é fácil usar o ggplot2:

bind_probs(x, y) |> 
  ggplot(aes(x = rowid, y = probs, color = fn)) +
  geom_line() +
  theme(legend.position = "bottom")

  1. A função entropy_pooling(), o carro chefe por trás das “probabilidades totalmente flexíveis”, agora é uma função exportável. O objetivo com essa mudança é facilitar a criação de opiniões por parte do usuário, de modo a não limitar sua utilização apenas as alternativas propostas pelo pacote. A função agora também suporta três solvers: nlminb, solnl e nloptr (anteriormente todas as otimizações aconteciam utilizando solnl.)

  2. A principal feature desse lançamento é a criação da classe ffp_views. Essa classe torna mais fácil para o usuário sistematizar a geração de opiniões em praticamente qualquer característica de uma distribuição multivariada (retornos, volatilidades, correlações, copulas, etc.). Veja a família de funções view_*();

  3. Uma vez que o novo vetor de probabilidades tenha sido calculado, o próximo passo é computar os momentos compatíveis com esse novo vetor. Essa missão pode ser facilmente atingida com a função ffp_moments(). Os momentos preditivos disponibilizados por essa função podem ser utilizados em um otimizador para construção de uma fronteira eficiente condicional as opiniões do usuário.

Mais sobre essa técnica extraordinária chamada entropy-pooling nos próximos posts.