首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是drc包中的pmodel

什么是drc包中的pmodel
EN

Stack Overflow用户
提问于 2018-12-09 13:16:34
回答 1查看 210关注 0票数 0

如果这是一个愚蠢的问题,我很抱歉,但我在弄清楚如何在drc包中使用pmodel时遇到了麻烦。我在网上到处搜索,我能找到的只是定义,它是:“一个有许多列的数据框架,因为非线性函数中有参数。或者一个列表,其中包含非线性函数中每个参数的公式。”网上有一些例子,但我不知道它代表了什么。例如,对于命令:

代码语言:javascript
复制
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“是什么意思,或者列出一个因子是什么意思,括号里的顺序有什么意义?

EN

回答 1

Stack Overflow用户

发布于 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

代码语言:javascript
复制
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相同(名称...)

因此,如果您设置

代码语言:javascript
复制
pmodels = data.frame(h, 1, 1, h)     ## ("hill.slope","bot","top","ed50")

正如他们在pg.10上的drc.pdf中所做的那样,您将看到它将设置一个公共/共享的底部和顶部。

查看他们的补充文章的第9页,它显示了对于LL.2,双参数逻辑拟合的预置top =1和bottom = 0。的输出

代码语言:javascript
复制
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页开始:

代码语言:javascript
复制
## 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.#()

检查

代码语言:javascript
复制
getMeanFunctions()

查看所有可用函数

如果您正在尝试将某个值固定为某个值,则可以

代码语言:javascript
复制
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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53689617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档