【发布时间】:2016-04-14 09:06:20
【问题描述】:
我正在尝试将这个公式输入 R:
公式采用以下输入:
- M:年死亡人数(全因死亡率);
- D:每年癌症死亡人数(癌症死亡率);
- R:每年登记的癌症病例数;
- N:年中人口规模。
- w:每个年龄间隔的宽度,例如。 [0-5) 是 5 年宽,最后的间隔是 85+ 年,因此是无限宽的。
上述所有输入向量都是 18 个元素长,因为它们指的是 18 个年龄间隔。 前 17 个年龄区间为 5 年,最后一个区间(85 岁以上)为无限宽。
该公式估计了 Sasieni 等人 2011 年提出的终生癌症风险 http://www.nature.com/bjc/journal/v105/n3/full/bjc2011250a.html
# Input data:
M <- c(140L, 12L, 12L, 59L, 94L, 101L, 117L, 213L, 368L, 607L, 1025L,
1488L, 2255L, 2787L, 3257L, 3715L, 4231L, 6281L)
R <- c(42L, 22L, 28L, 54L, 77L, 108L, 169L, 227L, 293L, 531L, 863L,
1464L, 2591L, 3334L, 3045L, 2605L, 1890L, 1261L)
D <- c(2L, 1L, 2L, 6L, 4L, 7L, 15L, 26L, 67L, 120L, 304L, 497L, 883L,
1158L, 1321L, 1318L, 1177L, 1065L)
N <- c(167323L, 168088L, 176017L, 180986L, 168189L, 155506L, 174274L,
195538L, 207287L, 204711L, 183802L, 174342L, 183415L, 151277L,
104199L, 71782L, 47503L, 33946L)
# W width of age interval
w <- c( 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,Inf )
# function
v1 <- numeric()
for(i in 1:length(R)) {
v1[i] <- R[i] / ( R[i] + M[i] - D[i] ) * ( 1 - exp( - (w[i]/N[i]) * (R[i] + M[i] - D[i]) ) )
}
sum(v1)
代码看起来尽可能像方程式的答案是首选,以便不了解 R 的同事可以识别代码中的方程式。
答案应该是 0.376127241057822
【问题讨论】:
-
你能找出问题所在吗?
-
你知道结果应该是什么?
-
不,不幸的是我不知道结果应该是什么。
-
所以当 i=1 时,S_0 是 j=1 到 i=1-1 的总和?或者这被定义为1?或者更可能我不懂数学
-
@rawr 这被定义为零。我刚刚问过math.stackexchange.com/a/1743772/92875