如果这是一个愚蠢的问题,我很抱歉,但我在弄清楚如何在drc包中使用pmodel时遇到了麻烦。我在网上到处搜索,我能找到的只是定义,它是:“一个有许多列的数据框架,因为非线性函数中有参数。或者一个列表,其中包含非线性函数中每个参数的公式。”网上有一些例子,但我不知道它代表了什么。例如,对于命令:
sel.m2 <- drm(dead/total~conc, type, weights=total, data=selenium, fct=LL.2(),
type="binomial", pmodels=list(~1, ~factor(type)-1))
met.as.m1<-drm(gain ~ dose, product, data = methionine, fct = AR.3(),
pmodels = list(~1, ~factor(product), ~factor(product)))
plot(met.as.m1, log = "", ylim = c(1450, 1800))
auxins.m1 <- boxcox(drm(y ~ dose, h, pmodels = data.frame(h, h, 1, h), fct = LL.4(), data = auxins), method = "anova")我认为pmodel是一个列表和数据框,但是"-1"vs "~1“是什么意思,或者列出一个因子是什么意思,括号里的顺序有什么意义?
发布于 2019-11-18 14:42:47
我同意这对新人来说没有很好的解释。不幸的是,我只能回答你的一部分。一个迟来的回复,但对其他人来说:
有两个资源可供drc参考: a)关于drc的作者。参见正文和补充(本例中为S3)DOI:10.1371/ various al.pone.0146021b)查看pmodel的drc.pdf和ctrl+f以查看各种用法。
我认为data.frame和list取决于分组级别。
在处理完我的数据(子集)后,我发现pmodels() =参数/池化模型,也就是如何将这些参数设置为相等(即,全局/共享或不相等)。在您的上一个示例中,使用了auxins 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相同(名称...)
因此,如果您设置
pmodels = data.frame(h, 1, 1, h) ## ("hill.slope","bot","top","ed50")正如他们在pg.10上的drc.pdf中所做的那样,您将看到它将设置一个公共/共享的底部和顶部。
查看他们的补充文章的第9页,它显示了对于LL.2,双参数逻辑拟合的预置top =1和bottom = 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的第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和object的含义并不是很清楚。一种更好的方法可能是使用基本的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部分相关;查看大量的数字版权管理功能:https://stackoverflow.com/a/39257095
https://stackoverflow.com/questions/53689617
复制相似问题