https://github.com/kasaai/deeptriangle
DeepTriangle: A Deep Learning Approach to Loss Reserving
https://github.com/kasaai/deeptriangle
actuarial-science deep-learning insurance rstats
Last synced: 3 months ago
JSON representation
DeepTriangle: A Deep Learning Approach to Loss Reserving
- Host: GitHub
- URL: https://github.com/kasaai/deeptriangle
- Owner: kasaai
- License: other
- Created: 2018-04-24T15:18:06.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-09-16T23:46:11.000Z (over 5 years ago)
- Last Synced: 2024-08-13T07:16:26.400Z (6 months ago)
- Topics: actuarial-science, deep-learning, insurance, rstats
- Language: TeX
- Homepage: https://www.mdpi.com/2227-9091/7/3/97
- Size: 1.04 MB
- Stars: 45
- Watchers: 6
- Forks: 23
- Open Issues: 2
-
Metadata Files:
- Readme: README.Rmd
- Changelog: NEWS.md
- License: LICENSE.md
Awesome Lists containing this project
- jimsghstars - kasaai/deeptriangle - DeepTriangle: A Deep Learning Approach to Loss Reserving (TeX)
README
---
output: github_document
---```{r setup, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
library(deeptriangle)
library(tidyverse)
```[](https://travis-ci.org/kasaai/deeptriangle)
# DeepTriangle
This is the companion repository to the paper [*DeepTriangle: A Deep Learning Approach to Loss Reserving*](https://www.mdpi.com/2227-9091/7/3/97).
## Experiments
To get started, either clone the repo and build the R package, or install with
``` r
devtools::install_github("kasaai/deeptriangle")
```You will also need the [insurance](https://github.com/kasaai/insurance) package, which can be installed with
```r
devtools::install_github("kasaai/insurance")
```The experiments can be found in `analysis/main.R`. It is recommended that you use a GPU since many instances of the models are fit.
For convenience, we provide a `predictions.feather` file in the release.
```{r, message = FALSE}
predictions <- feather::read_feather("datasets/predictions.feather")model_results <- dt_compute_metrics(predictions) %>%
bind_rows(stochastic_model_results) %>%
bind_rows(read_csv("datasets/automl_results.csv")) %>%
gather(metric, value, mape, rmspe)dt_tabulate_metrics(model_results, metric = "mape") %>%
knitr::kable(booktabs = "T", digits = 3)
```To create actual vs. predicted plots, use the `dt_plot_predictions()` function. Here are successful and unsuccessful examples of the model's forecasting attempts.
Company 1767 commercial auto.
```{r, echo = FALSE, message = FALSE, out.width = "80%"}
library(cowplot)p1 <- dt_plot_predictions(predictions, "1767", "commercial_auto", "paid_loss") + xlab("")
p2 <- dt_plot_predictions(predictions, "1767", "commercial_auto", "claims_outstanding")
p12 <- plot_grid(
p1 + theme(legend.position = "none"),
p2 + theme(legend.position = "none"),
align = "v",
ncol = 1
)
legend <- get_legend(p1)
plot_grid(p12, legend, rel_widths = c(1, 0.2), nrow = 1)
```Company 337 workers' compensation.
```{r, echo = FALSE, message = FALSE, out.width = "80%"}
library(cowplot)p1 <- dt_plot_predictions(predictions, "337", "workers_compensation", "paid_loss") + xlab("")
p2 <- dt_plot_predictions(predictions, "337", "workers_compensation", "claims_outstanding")
p12 <- plot_grid(
p1 + theme(legend.position = "none"),
p2 + theme(legend.position = "none"),
align = "v",
ncol = 1
)
legend <- get_legend(p1)
plot_grid(p12, legend, rel_widths = c(1, 0.2), nrow = 1)
```## Testing different architectures
If you would like to try out different architectures or hyperparameters, you can do so by providing a function that returns a keras model. See the source code of `dt_model()` for a template.
For more details on the **keras** R package, visit [https://keras.rstudio.com/](https://keras.rstudio.com/).