簡體   English   中英

從glm的lapply列表中提取p值

[英]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類似的東西似乎不起作用。 我可以使用lapplyglm使用訪問器方法或直接從模型調用來獲取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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM