我正在努力让Dosefinding包的MCPMOD方法正常工作。当我在my_models对象中运行带有一个模型的MCPMOD时,该方法有效;
my_models <- Mods(emax = c(0.2,0.7,200),
doses = doses,placEff=0.1,maxEff = 0.9,fullMod=TRUE)
MCPMod(adose, response2, as.data.frame(simdat), my_models, Delta=0.1, selModel = "AIC" ,alpha=0.025)
但是当我包含1个或更多模型时,它不会;
my_models <- Mods(linear=c(0.2,0.001),emax = c(0.2,0.7,200),
doses = doses,placEff=0.1,maxEff = 0.9,fullMod=TRUE)
MCPMod(adose, response2, as.data.frame(simdat), my_models, Delta=0.1, selModel = "AIC" ,alpha=0.025)
它给出错误;
Error in match.arg(direction) : 'arg' must be of length 1
数据看起来像;
关于我做错了什么的想法?
答案 0 :(得分:0)
非常感谢那些不遗余力地支持这篇文章的人 - 我认为这是一个合理的问题,当面对一个模糊的错误信息,我无法在网上找到解释。
无论如何,对于其他人来说,我认为这个问题与“Mods”方法调用中的“fullmod = TRUE”行有关。以下代码有效;
my_models <- Mods(linear=NULL,emax = c(200),quadratic=c(-0.000004/0.0028),
doses = doses,placEff=0.2,maxEff = 0.5,fullMod=FALSE)
MCPMod(adose, response2, as.data.frame(simdat), my_models, Delta=0.1, selModel = "AIC" ,alpha=0.025)
上述差异在于,对于每个模型类型,只有一个参数被提供给“Mods”函数,因为没有使用完整的模型版本(fullmod = FALSE)。从提供安慰剂效应(placEff = 0.2)和最大剂量效应(maxEff = 0.7),该方法然后返回计算模型中的剩余参数。
鉴于这一新知识,我认为第一个错误可能与使用placEff和maxEff参数有关,同时提供所有模型参数(我不认为两者都是必需的)。但是,以下代码也不起作用;
my_models <- Mods(linear=c(0.2,0.001),quadratic=c(0.2,0.0028,-0.000004),
logistic=c(0.2, 0.7, 200, 50),emax = c(0.2,0.7,200),
doses = doses,fullMod=TRUE)
MCPMod(adose, response2, as.data.frame(simdat), my_models, Delta=0.1, selModel = "AIC" ,alpha=0.025)