Хабр Курсы для бэкендеров
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!

R шикарен и любим. Но еще все любят смотреть на графики, которые с легкостью в нем создаются. Поэтому смотрим на шансы и выбираем стратегию, которой мы будем придерживаться.
library(tidyverse)
tpxg <- function(x, t, m, b) {
exp(exp((x - m) / b) * (1 - exp(t / b)))
}
dt <- tidyr::expand_grid(
x = seq(0, 100),
live_to_be_old = seq(10, 100, 10)
) |>
dplyr::filter(x <= live_to_be_old) |>
dplyr::mutate(
t = live_to_be_old - x,
m = 74.18,
b = 13.99,
live_to_be_old = as.factor(live_to_be_old),
p = tpxg(x, t, m, b)
)
dt
#> # A tibble: 560 × 6
#> x live_to_be_old t m b p
#> <int> <fct> <dbl> <dbl> <dbl> <dbl>
#> 1 0 10 10 74.2 14.0 0.995
#> 2 0 20 20 74.2 14.0 0.984
#> 3 0 30 30 74.2 14.0 0.963
#> 4 0 40 40 74.2 14.0 0.921
#> 5 0 50 50 74.2 14.0 0.841
#> 6 0 60 60 74.2 14.0 0.699
#> 7 0 70 70 74.2 14.0 0.479
#> 8 0 80 80 74.2 14.0 0.221
#> 9 0 90 90 74.2 14.0 0.0454
#> 10 0 100 100 74.2 14.0 0.00179
#> # ℹ 550 more rows
dt |>
ggplot(aes(x, p, color = live_to_be_old)) +
geom_line() +
scale_y_continuous(labels = scales::percent_format()) +
labs(
x = "возраст, года",
y = "вероятность, %",
color = "хочу дожить до `t` лет"
) +
theme_minimal()

Пенсионные рецепты на языке R