[英]Using glmulti function to extract p-value
我正在使用glmulti
軟件包來查找“最佳”模型
mo <- glm(a ~ x + y + z, data=data, family=binomial)
test <- glmulti(mo, family = binomial, level=1, crit="aicc")
但是,我對所有模型中x的p值更感興趣(以找到最佳的p值)。 如何從所有模型中提取它們?
測試輸出最佳模型,但是gmulti允許您查看所有模型。 你可以看到所有其他機型與它們的權重,並與AICC值weightable
weightable(test)
這是一個遍歷結果集的循環,使用as.formula()建立glm模型,並從摘要中提取x的p值(如果存在)。
library(glmulti)
iris2 <- iris
iris2$virginica <- iris$Species == "virginica"
mo = glm(virginica ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width, data=iris2, family="binomial")
test <- glmulti(mo, family = binomial, level=1, crit="aicc")
tbl <- weightable(test)
nrows <- nrow(tbl)
for (i in 1:nrows) {
formulaTest <- as.character(tbl[i,]$model)
model = glm(as.formula(formulaTest), data=iris2, family="binomial")
print(paste("Formula: ", formulaTest))
print(summary(model)$coefficients[,4])
}
[1] "Formula: virginica ~ 1 + Sepal.Width + Petal.Length + Petal.Width"
(Intercept) Sepal.Width Petal.Length Petal.Width
0.03522621 0.07853563 0.04033382 0.04534974
[1] "Formula: virginica ~ 1 + Sepal.Length + Sepal.Width + Petal.Length + Petal.Width"
(Intercept) Sepal.Length Sepal.Width Petal.Length Petal.Width
0.09720282 0.30318813 0.13585218 0.04653593 0.06052811
[1] "Formula: virginica ~ 1 + Sepal.Length + Petal.Length + Petal.Width"
(Intercept) Sepal.Length Petal.Length Petal.Width
0.02770914 0.07149206 0.02891997 0.02830069
...
如果要使用高級模型選擇,甚至可以組合頂級模型,如下所述: http : //www.noamross.net/blog/2013/2/20/model-selection-drug.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.