从bootstrap GLM列表计算LC50

时间:2014-01-21 14:08:15

标签: r list glm statistics-bootstrap

我正在尝试从引导的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列,concentrationfactor(female.no[x])3.

这是对的吗?

其次:

我有没有办法让每个女性获得LC50,即factor(female.no[x])3factor(female.no[x])4factor(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

感谢您的帮助

1 个答案:

答案 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 ) 都会包含该动物的“拦截”。