我正在尝试从引导的GLM输出列表中计算LC50
我在列表(命名结果)中输出了bootstrap GLM: (我刚刚把最后的结果放在最后的结果而不是整个列表中)
$thetastar[[100]]
Call: glm(formula = dead[x] ~ concentration[x] + factor(female.no[x]),
family = binomial, data = subset.data.48hr)
Coefficients:
(Intercept) concentration[x] factor(female.no[x])3 factor(female.no[x])4 factor(female.no[x])7
0.7386 0.1869 -0.8394 -5.6613 -2.9576
factor(female.no[x])8 factor(female.no[x])9
-1.5329 -2.7826
Degrees of Freedom: 354 Total (i.e. Null); 348 Residual
(1265 observations deleted due to missingness)
Null Deviance: 484.2
Residual Deviance: 257 AIC: 271
使用dose.p
包中的MASS
我正在尝试计算已运行模型中每个人的LC50
dose.p(results$thetastar[[100]], cf = c(2,3), p = 0.5)
返回
Dose SE
p = 0.5: 0.2227249 0.161769
根据我的理解,这是factor(female.no[x])3.
的LC50,即进入dose.p
我已将cf = c(2,3)
放入第2列和第3列,concentration
和factor(female.no[x])3.
这是对的吗?
其次:
我有没有办法让每个女性获得LC50,即factor(female.no[x])3
,factor(female.no[x])4
,factor(female.no[x])7
等等,我看不出我怎么能得到{{ 1}}工作在不同的变量上工作而无需手动更改代码dose.p
:
cf=
最后:
我的结果存储在一个列表中,如何让dose.p(results$thetastar[[100]], cf = c(2,3), p = 0.5)
dose.p(results$thetastar[[100]], cf = c(2,4), p = 0.5)
dose.p(results$thetastar[[100]], cf = c(2,4), p = 0.5)
在列表中工作,它是否会像:
dose.p
感谢您的帮助
答案 0 :(得分:2)
cf
的{{1}}参数采用截距和对数剂量的列。 (如果你使用浓度,是不是LC50?)
对于默认动物(不是3,4,8或9),您可以使用dose.p
和(Intercept)
列concentration[x]
。
对于其他动物,你需要拦截加一个因子。例如,对于动物3,您需要第1列加第3列(以及第2列的浓度)。不幸的是,cf = 1:2
不会接受这样的规范,因此您必须在没有拦截的情况下重新运行模型。
在公式中添加dose.p
以实现此目的:
0
现在每个glm(
dead[x] ~ 0 + concentration[x] + factor(female.no[x]),
family = binomial,
data = subset.data.48hr
)
都会包含该动物的“拦截”。