我正在制作一棵树,最终会变成一组手臂,每条手臂都有一个概率,每条手臂的末端都有一个值。
这是我树的最后一臂(我正在倒退)。
require(mc2d)
ndvar(1000)
sderror_dfail<-(0.30-0.86)/1.96
alpha_dfail<-0.62*{{0.62*{1-0.62}/{sderror_dfail*sderror_dfail}}-1}
beta_dfail<-alpha_dfail*{{1-0.62}/0.62}
probs_d_if_fail<-mcstoc(rbetagen,type="V",shape1=alpha_dfail, shape2=beta_dfail,
min=0, max=1)
lots1<-mcdata(1)
test<-lots1-probs_d_if_fail
probs1 <- mcstoc(rempiricalD, values=1:2, type="V", prob= c(probs_d_if_fail,test))
下一步是按如下方式构建树的分支:
node1 <- mcprobtree(probs1, list("1"=mcdata(0), "2"=mcdata(1), type="V")
然而,当我运行它时,行probs1&lt; - mcstoc(....)会给我以下错误
Error in function (n, values, prob = NULL) :
Prob and values should be of same length or have the same number of columns.
我觉得它不喜欢我使用mcstoc对象作为prob = c(probs_d_if_fail,test)等式的一部分,但我不知道如何解决这个问题。
非常感谢任何帮助。
蒂莫西
答案 0 :(得分:2)
rempiricalD
需要一个多变量mcnode作为prob
参数。这很棘手。
尝试:
require(mc2d)
ndvar(10000)
sderror_dfail<-(0.30-0.86)/1.96
alpha_dfail<-0.62*{{0.62*{1-0.62}/{sderror_dfail*sderror_dfail}}-1}
beta_dfail<-alpha_dfail*{{1-0.62}/0.62}
probs_d_if_fail<-mcstoc(rbetagen,type="V",shape1=alpha_dfail, shape2=beta_dfail,
min=0, max=1)
lots1<-mcdata(1)
test<-lots1-probs_d_if_fail
probs <- mcdata(c(probs_d_if_fail,test),type="V",nvariates=2)
probs1 <- mcstoc(rempiricalD, values=1:2, type="V", prob= probs)
node1 <- mcprobtree(probs1, list("1"=mcdata(0), "2"=mcdata(1)), type="V")
node1
但如果符合您的需要,以下代码可能更简单:
require(mc2d)
ndvar(10000)
sderror_dfail<-(0.30-0.86)/1.96
alpha_dfail<-0.62*{{0.62*{1-0.62}/{sderror_dfail*sderror_dfail}}-1}
beta_dfail<-alpha_dfail*{{1-0.62}/0.62}
probs_d_if_fail<-mcstoc(rbeta,type="V",shape1=alpha_dfail,
shape2=beta_dfail)
node1 <- mcstoc(rbern, type="V",prob = 1-probs_d_if_fail)
node1
请注意rbern
将提供1概率(1-probs_d_if_fail),如果我理解的话,您需要。
RP