簡體   English   中英

使用glmulti函數提取p值

[英]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.

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