0

我正在制作一棵树,它最终会变成一组手臂,每个手臂都有概率下降,每个手臂的末端都有一个值。

这是我树的最后一根手臂(我正在向后构建它)。

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<- 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) 部分,但我不确定如何解决这个问题。

任何帮助将不胜感激。

提摩太

4

1 回答 1

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) 的值。

反相

于 2012-09-14T20:45:11.637 回答