Рассчитать ожидаемое количество выживших с течением времени с известным уровнем смертности - PullRequest
0 голосов
/ 05 марта 2020

С общим числом N, ежедневная смертность: p1. Я хотел бы рассчитать количество выживших после определенных дней.

day1 : N - N*p1 
day2 : (N - N*p1) -  (N - N*p1)*p1
day3 : ((N - N*p1) -  (N - N*p1)*p1) - ((N - N*p1) -  (N - N*p1)*p1)*p1
...

Это то, что я сделал до сих пор, чтобы начать получать номер дня 1. Предложения будут оценены.

df <- data.frame(day = c(1:30))  
N <- 1000
p1 <- 0.06
apply(df,1, function(x) N-N*p1) 

1 Ответ

4 голосов
/ 05 марта 2020

По сути, вы можете использовать сложное уравнение процентов.

foo = function(N, p1, d){
    for (i in 1:d){
        N = N - N * p1
    }
    N
}

foo(1000, 0.06, 30)

ИЛИ

bar = function(N, p1, d){
    N * (1 - p1)^d
}

bar(1000, 0.06, 1:30)

ИЛИ, если вам нужен только график

curve(1000 * (1 - 0.06) ^ x, 0, 30, n = 31)
...