如何合并两个从Beta分布采样的rdecision包BetaModVar变量?
解决rdecision中BetaModVar变量相加的问题
要实现v3作为v1和v2采样值的和,你可以用rdecision包中的DerivedModVar类,它专门用来基于已有模型变量的函数创建派生变量。
具体代码实现
# 定义原始Beta分布变量 v1 <- BetaModVar$new("Beta1", alpha = a1, beta = b1, units="") v2 <- BetaModVar$new("Beta2", alpha = a2, beta = b2, units="") # 创建相加后的派生变量v3 v3 <- DerivedModVar$new( name = "BetaSum", expr = function(x) x[1] + x[2], variables = list(v1, v2), units = "" # 可根据实际需求设置单位 )
原理说明
DerivedModVar通过expr参数接收自定义运算函数,函数的输入是variables列表中所有变量的采样值组成的向量,你可以在函数内定义任意运算逻辑(此处为简单相加)。- 当运行蒙特卡洛模拟时,
v3会自动同步抽取v1和v2的样本值,执行相加运算得到对应结果。
内容的提问来源于stack exchange,提问作者Tina Heeley
相关产品推荐
相关产品推荐

