我同意这对新人来说没有很好的解释。不幸的是,我只能部分回答你。迟到的回应,但对其他人来说:
有两个资源可供 drc 参考: a) 作者发表了关于 drc 的文章。见正文和补充(本例中为 S3)DOI:10.1371/journal.pone.0146021 b) 见 pmodel 的 drc.pdf 和 ctrl+f 以检查各种用途。
data.frame 与 list 取决于我相信的分组级别。
在玩弄了我的数据(子集)之后,我发现 pmodels() = 参数/池模型也就是你如何将这些参数设置为相等(即,全局/共享与否)。在您使用生长素 df 的最后一个示例中
library(drc)
auxins.m1 <- boxcox(drm(y ~ dose, h, pmodels = data.frame(h, h, 1, h),
fct = LL.4(), data = auxins), method = "anova")
## changed names to familiar terms by a non-statistician
auxins.m1 <- boxcox(drm(y ~ dose, h, pmodels = data.frame(h, h, 1, h),
fct = LL.4(names=c("hill.slope","bot","top","ed50"), data = auxins), method = "anova")
显示置顶为1。顺序同LL.4(names...)
所以如果你设置
pmodels = data.frame(h, 1, 1, h) ## ("hill.slope","bot","top","ed50")
正如他们在 pg.10 的 drc.pdf 中所做的那样,您会看到它是设置一个公共/共享的底部和顶部。
查看他们补充文章的第 9 页,它表明对于 LL.2,两参数逻辑拟合具有预设的顶部 = 1 和底部 = 0。
selenium.LL.2.2 <- drm(dead/total~conc, type, weights = total,
data = selenium, fct = LL.2(), type="binomial",
pmodels = list(~factor(type)-1, ~1)) ## ("hill-slope", "ed50")
表明 ed50 假定为常数。或者来自 drc.pdf 的 pg.91:
## Fitting the model with freely varying ED50 values
mecter.free <- drm(rgr ~ dose, pct, data = mecter,
fct = LL.4(), pmodels = list(~1, ~1, ~1, ~factor(pct) - 1))
不幸的是,目前还不清楚 object-1 的含义与对象的含义。更好的方法可能是使用基础 drm() 而没有 LL.#() 的特殊情况
查看
getMeanFunctions()
查看所有可用功能
如果您尝试将某个值固定为某个值,则可以
fct = LL.4(fixed = c(NA,0,1,NA))
## effectively becomes the standard LL.2()
## or
fct = LL.4(fixed = c(1,0,NA,NA))
## common hill slope = 1; assumes baseline correction hence = 0
部分相关;看到很多drm功能布局:
https ://stackoverflow.com/a/39257095