2

ブートストラップされた GLM 出力のリストから LC50 を計算しようとしています

ブートストラップされた 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

私が理解していることから、これはLC50factor(female.no[x])3.です。dose.pcf = c(2,3)concentrationfactor(female.no[x])3.

これは正しいです?

第二に:

各女性の LC50 を取得する方法はありますか、つまりfactor(female.no[x])3factor(female.no[x])4など ですが、手動でコードを変更せずにさまざまな変数に沿って作業factor(female.no[x])7を行う方法がわかりません。dose.pcf=

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最後に: 結果はリストに保存されます。リストに沿って作業するにはどうすればよいですか?

test=matrix
for(i in 1:results){
test[i,]= dose.p(results$thetastar[[i]], cf = c(2,3), p = 0.5)

助けてくれてありがとう

4

1 に答える 1

2

へのcf引数dose.pは、切片と対数線量の列を取ります。(濃縮で使うならLC50じゃないですか?)

デフォルトの動物 (3、4、8、9 ではない) の場合は(Intercept)concentration[x]列と を使用できますcf = 1:2

他の動物については、切片と係数が必要です。たとえば、動物 3 の場合、列 1 と列 3 (および濃度の列 2) が必要です。残念ながら、dose.pそのような仕様は受け入れられないため、インターセプトなしでモデルを再実行する必要があります。

0これを実現するには、式にa を追加します。

glm(
  dead[x] ~ 0 + concentration[x] + factor(female.no[x]), 
  family = binomial, 
  data = subset.data.48hr
)

これで、それぞれfactor(female.no[x])にその動物の「インターセプト」が含まれます。

于 2014-01-21T16:00:01.367 に答える