首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R_在流行病学中求解一个攻击率和生殖数的方程

R_在流行病学中求解一个攻击率和生殖数的方程
EN

Stack Overflow用户
提问于 2017-10-25 03:20:33
回答 1查看 253关注 0票数 0

我想根据一个估计的繁殖数(R0)来估计一个攻击率(AR) (成为感染的种群的一部分)(一个感染个体在感染期间在易感人群中产生的次级病例的数量)。

S=exp(-R0(1-S)),与S的比例,仍然易感的人后,流行病已经烧毁。

感染后进行终生免疫,AR = 1-S。

我把R0放在一个由MonthYear (城市)组成的.csv表中,并希望计算每个月/城市的AR值。

我试过:

代码语言:javascript
复制
library(rootSolve)
f<- function(y,x){Tab$AR=1-(y-exp(-x*(1-y)))}
x=Tab$R0
solve(f)

错误消息:

代码语言:javascript
复制
Error in as.vector(x, mode) : 
  cannot coerce type 'closure' to vector of type 'any'

然后我试着

代码语言:javascript
复制
R0.vec = Tab$R0 
AR.vec = numeric(length(R0.vec)) 

for(ii in 1:length(AR.vec)){   
AR.vec[ii] = 1 -optimize(f=function(S){(S-exp(-R0.vec[ii]*(1-S)))},interval=c(0,1))$minimum
    } 
AR.fun.vec = approxfun(R0.vec,AR.vec)

错误消息:

代码语言:javascript
复制
There were 50 or more warnings (use warnings() to see the first 50)
Warning messages:
1: In optimize(f = function(S) { ... : NA/Inf replaced by maximum positive value
2: In optimize(f = function(S) { ... : NA/Inf replaced by maximum positive value
3: In optimize(f = function(S) { ... : NA/Inf replaced by maximum positive value

我希望任何关于这方面的建议都能得到我的ARs,因为这对我来说是全新的。提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2018-07-09 06:24:34

感谢Karline Soetaert博士的回答

代码语言:javascript
复制
 Sfun <- function(x, R0) return(x - exp(-R0*(1-x)))
 require(rootSolve)
 R0vec <- R0

result <- rep(0,times=length(R0vec))
for (i in 1:length(R0vec))
 result[i] <- multiroot(f = Sfun, start = 0, positive = TRUE, R0 = 
         R0vec[i])$root

 AR <- 1-result

 Print(AR)`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46923407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档