我使用dose.p从glm模型(probit模型)中计算EDx (例如ED50)数据。
glm.logit <- glm(cbind(nok,nges-nok) ~ log(dosis), family=binomial(lk), data=edx.data)
r <- dose.p(glm.logit,p=seq(0.1,0.9,0.2))R如下:
Dose SE
p = 0.1: 0.866650 0.10578072
p = 0.3: 1.301613 0.06405342
p = 0.5: 1.574622 0.05168480
p = 0.7: 1.847632 0.05971840
p = 0.9: 2.282595 0.09898567exp(r)将给出正确的EDx:
> exp(r)
Dose SE
p = 0.1: 2.378928 0.10578072
p = 0.3: 3.675219 0.06405342
p = 0.5: 4.828918 0.05168480
p = 0.7: 6.344778 0.05971840
p = 0.9: 9.802082 0.09898567但是,如何提取所有的数字(剂量和SE),以便不仅能够计算EDx,而且还能计算下限和上置信度?最后,我想计算一下这样一个表格:
p Dose Lower limit Upper limit
0.1 exp(2.379) exp(2.379-0.106) exp(2.379+0.106)
0.2 ...我试图提取这些数据,但得到了一条错误消息:
> se <- r$SE
Error in r$SE : $ operator is invalid for atomic vectors先谢谢你
克里斯蒂安
发布于 2022-01-08 23:48:20
您可以使用“属性”进行提取。将其放入data.frame使用
df = data.frame(p = seq(0.1,0.9,0.2), Dose.exp = unname(r[1:5]), SE = unname(attributes(r)$SE[, 1]))https://stackoverflow.com/questions/19135287
复制相似问题