我尝试运行代码以最佳地计算目标剂量和D. 但它总是说我的长度错了。我不明白如何编码“权重” 和三角洲。有人可以帮帮我吗? 这是我的代码:
library(DoseFinding)
doses <- c(0,5, 25, 125, 200)
fmodels <- Mods(linear = NULL, emax = 14,
doses = doses, placEff=-0.17, maxEff=-1.4)
weights <- rep(1/5, 5)
desTD <- optDesign(fmodels, probs=1, designCrit="TD&Dopt",Delta=0.5)
plot(fmodels, plotTD = TRUE, Delta = 0.2)
当我使用这个例子时,它显示了所有剂量的所有概率:
data(IBScovars)
doses <- c(0, 10, 25, 50, 100, 150)
fmodels <- Mods(linear = NULL, emax = 25, exponential = 85,
logistic = c(50, 10.8811),
doses = doses, placEff=0, maxEff=0.4)
plot(fmodels, plotTD = TRUE, Delta = 0.2)
weights <- rep(1/4, 4)
desTD <- optDesign(fmodels, weights, Delta=0.2, designCrit="TD")
Calculated TD - optimal design:
0 10 25 50 100 150
0.34960 0.09252 0.00366 0.26760 0.13342 0.15319
但对我来说,只有三剂显示......这是不是意味着 其他剂量不重要?
答案 0 :(得分:0)
嗯,在帮助页面中,您需要具有与剂量相同的权重数量。模型保留有关所用剂量的信息。你有什么看起来很好,但你也可以做
ds <- attr(fmodels, "doses")
weights <- rep.int(1, length(ds))/length(ds)
从fmodel
对象中提取信息。
此外,在运行optDesign
功能时,我对您指定的probs
和dsignCrit
参数有疑问。 probs
长度应与fmodels
的长度相对应。内部计算这样做可以找到总长度
Reduce("+",lapply(fmodels, function(x) {
if (is.vector(x))
return(1)
if (is.matrix(x))
return(nrow(x))
}))
# [1] 2
所以应该有两个概率。另外我认为designCrit="TD&Dopt"
应为designCrit="Dopt&TD"
,因此以下内容似乎无错误地运行
desTD <- optDesign(fmodels, probs=c(.5,.5),
weights=weights, designCrit="Dopt&TD",Delta=0.5)
目前还不清楚您对Delta
的确切问题。根据帮助页面,这只是您估计的效果大小。