![](/img/trans.png)
[英]Extracting final p-value statistic from an lm lapply loop with multiple models
[英]Extracting p-value from lapply list of glm fits
我使用lapply一次通過一個自變量對一個因變量執行幾個glm回歸。 現在我對每個自變量的Pr(>|z|)
特別感興趣。 但是,我不確定如何使用lapply列表報告Pr(>|z|)
。
如果我只是在一次運行一個模型: coef(summary(fit))[,"Pr(>|z|)"]
或summary(fit)$coefficients[,4]
將工作(如描述在這里 ),但嘗試與lapply
類似的東西似乎不起作用。 我可以使用lapply
和glm
使用訪問器方法或直接從模型調用來獲取p值嗎?
#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
你想做:
lapply(fits, function(f) summary(f)$coefficients[,4])
但是,如果每個項目只是一個p值,您可能寧願使用向量而不是列表,因此您可以使用sapply
而不是lapply
:
sapply(fits, function(f) summary(f)$coefficients[,4])
當你運行lapply(fits, summary)
它會創建一個summary.glm對象列表,每個對象都使用print.summary.glm
打印。
如果你保存這個
summaries <- lapply(fits, summary)
然后,您可以瀏覽並提取系數矩陣
coefmat <- lapply(summaries, '[[', 'coefficients')
然后是第4欄
lapply(coefmat, '[', , 4)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.