Source: https://journal.r-project.org/archive/2015-1/qiu.pdf