5

lapply を使用して、一度に 1 つの独立変数ごとに 1 つの従属変数に対して複数の glm 回帰を実行しています。今、私は特にPr(>|z|)各独立変数の に興味があります。ただし、Pr(>|z|)lapply のリストだけを使用して報告する方法がわかりません。

一度に 1 つのモデルを実行しているだけの場合: coef(summary(fit))[,"Pr(>|z|)"] または (ここでsummary(fit)$coefficients[,4] 説明されているように) 動作しますが、同様のことを試みてもうまくいかないようです。アクセサー メソッドを使用して、またはモデルから直接呼び出して、p 値だけを取得できますか?lapplylapplyglm

#mtcars dataset
vars <- names(mtcars)[2:8]
fits <- lapply(vars, function(x) {glm(substitute(mpg ~ i, list(i = as.name(x))), family=binomial, data = mtcars)})
lapply(fits,summary) # this works
lapply(fits, coefficients) # this works
#lapply(fits, summary(fits)$coefficients[,4])# this for example does not work
4

2 に答える 2

9

あなたがしたい:

lapply(fits, function(f) summary(f)$coefficients[,4])

ただし、各項目が単なる p 値である場合は、おそらくリストよりもベクトルの方がよいため、sapply代わりにlapply次のように使用できます。

sapply(fits, function(f) summary(f)$coefficients[,4])
于 2013-02-06T03:46:48.770 に答える
6

実行するlapply(fits, summary)と、それぞれを使用して出力される summary.glm オブジェクトのリストが作成されますprint.summary.glm

これを保存すると

 summaries <- lapply(fits, summary)

次に、係数行列を調べて抽出できます

 coefmat <- lapply(summaries, '[[', 'coefficients')

そして4列目

 lapply(coefmat, '[', , 4)
于 2013-02-06T03:51:41.170 に答える