我有一个类似于之前帖子的挑战:如何将向量传递给积分函数
我有一个要积分曲线下面积的函数。
首先是[生存]函数:
“分数”是来自风险计算器的,它可以调整生存估计。由于患者的得分不同,例如:
如果我们有一个特定的时间点x,计算所有7个病人的surv很容易:
但是,要得到人群的平均生存率或个体的预期生存率,我需要计算曲线下面积,其中曲线由函数
我参考的另一个stackoverflow帖子有类似的问题。不清楚解决方案是否能够帮助我。我在下面展示它:
“fun_integrate”是要被积分的函数。
“vectorize.args”是要向量化并传递给“fun_integrate”的参数。
“vec”是作为参数传递到“fun_integrate”的值的向量。
我不知道“subdivisions”是什么,但我假设它并不重要。
我尝试使用以下内容执行此操作:
我已尝试了不同的修改,但似乎没有什么成效。
你有什么建议吗?
首先是[生存]函数:
surv <- function(x,score) exp(-0.0405*exp(score)*x) # probability of survival
“分数”是来自风险计算器的,它可以调整生存估计。由于患者的得分不同,例如:
score <- c(0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1) # 7 different scores
如果我们有一个特定的时间点x,计算所有7个病人的surv很容易:
surv(5, score) # Survival to year 5
[1] 0.7161497 0.6914399 0.6651219 0.6371998 0.6077026 0.5766890 0.5442516
但是,要得到人群的平均生存率或个体的预期生存率,我需要计算曲线下面积,其中曲线由函数
surv
给出。我需要计算 x=0
和 x=Inf
的限制下的曲线下面积。并且我需要对所有7个(在这个例子中)患者进行此操作。我参考的另一个stackoverflow帖子有类似的问题。不清楚解决方案是否能够帮助我。我在下面展示它:
integrate(Vectorize(fun_integrate,vectorize.args='x'), upper = 3, lower = -3, vec = rnorm(100),subdivisions=10000)
“fun_integrate”是要被积分的函数。
“vectorize.args”是要向量化并传递给“fun_integrate”的参数。
“vec”是作为参数传递到“fun_integrate”的值的向量。
我不知道“subdivisions”是什么,但我假设它并不重要。
我尝试使用以下内容执行此操作:
integrate(Vectorize(surv, vectorize.args="score"), lower=0, upper=Inf, score=score)
Error in integrate(Vectorize(surv, vectorize.args = "score"), lower = 0, :
evaluation of function gave a result of wrong length
我已尝试了不同的修改,但似乎没有什么成效。
你有什么建议吗?