Reproducible Finance with R – book review

Reproducible Finance with R is a clever book, with modern treatment of classical concepts. Here below is what I liked- and disliked about the book.

Back when I was practicing Judo, there was a guy in my group who mastered that one exercise (called Uchi Mata). He could go fighting 20 consecutive fights without losing once, flooring all his opponents by doing what he did best. That’s how I think about this book. It does the one thing, but that it does excellently.

Things I liked more

  • Light on math formulas.
  • Nice treatment of elementary topics like higher moments.
  • The book shows how to do the same thing using different frameworks (e.g. zoo, tidyverse and tidyquant), which is very nice if you want to have a wholesome understanding of the numerous, most modern frameworks.
  • All code is at the ready from the book website.
  • Very illustrative Shiny app examples.

Things I liked less

  • Light on math formulas.
  • It’s not a long book (just over 200 pages), but it could have been shortened even further by removing code chunks\charts which have substantial overlap. For example, chart the scatter plot with a regression line overlay directly, rather than creating two charts, one without a regression line, and one with.
  • The focus of the book is not finance per se, but would be nice to see extensions of traditional concepts, e.g. more up-to-date CAPM models, or some deeper intuition behind the results.


I have met Jonathan numerous times during different R events. We always had nice long chats, so I am not sure what I would do if I would not like the book. If you assume the Bayesian philosophy, that should not matter for you; just the one realization matters. But if you are a classical statistician, then the review is for you upward biased; since it comes from a distribution capped/censored from below (e.g. I would not bash the book even if I thought it is awful).

One comment on “Reproducible Finance with R – book review”

Leave a Reply

Your email address will not be published. Required fields are marked *