[英]extract exponential coefficients from models MuMIn::dredge
我正在嘗試對來自MuMIn::dredge
dredge object 的多個泊松模型的系數和標准誤差取冪,以與texreg::screenreg
screenreg 一起使用。 在一個 model 的情況下,我們可以這樣做:
library(MuMIn)
library(texreg)
data(Cement)
m1 <- glm(X1 ~ y, data = Cement, na.action = "na.fail", family = poisson())
screenreg(m1)
# ==========================
# Model 1
# --------------------------
# (Intercept) -2.39 **
# (0.88)
# y 0.04 ***
# (0.01)
# --------------------------
# AIC 76.03
# BIC 77.16
# Log Likelihood -36.02
# Deviance 26.76
# Num. obs. 13
# ==========================
# *** p < 0.001, ** p < 0.01, * p < 0.05
#EXP VERSION:
tr <- texreg::extract(m1)
screenreg(m1, override.coef = exp(tr@coef), override.se = exp(tr@se))
# ==========================
# Model 1
# --------------------------
# (Intercept) 0.09 **
# (2.41)
# y 1.05 ***
# (1.01)
# --------------------------
# AIC 76.03
# BIC 77.16
# Log Likelihood -36.02
# Deviance 26.76
# Num. obs. 13
# ==========================
# *** p < 0.001, ** p < 0.01, * p < 0.05
# Warning message:
# In override(models, override.coef, override.se, override.pvalues, :
# Standard errors were provided using 'override.se', but p-values were not replaced!
現在,如果我們使用dredge
查看所有組合並得到沒有指數值的 output:
fm1 <- glm(X1 ~ ., data = Cement, na.action = "na.fail", family = poisson())
dd <- dredge(fm1)
#shorten output
dd <- dd[1:4, ]
screenreg(dd)
# =============================================================
# Model 1 Model 2 Model 3 Model 4
# -------------------------------------------------------------
# (Intercept) 0.98 3.95 *** 7.74 ** 3.45 ***
# (1.02) (0.33) (2.07) (0.23)
# X3 -0.12 ** -0.16 *** -0.15 *** -0.15 ***
# (0.03) (0.03) (0.03) (0.03)
# y 0.02 *
# (0.01)
# X4 -0.02 -0.06 *
# (0.01) (0.03)
# X2 -0.05
# (0.03)
# -------------------------------------------------------------
# Log Likelihood -24.98 -25.95 -24.22 -28.48
# AICc 58.62 60.56 61.44 62.16
# Delta 0.00 1.94 2.82 3.55
# Weight 0.56 0.21 0.14 0.09
# Num. obs. 13 13 13 13
# =============================================================
# *** p < 0.001, ** p < 0.01, * p < 0.05
現在我不確定如何獲得dd
object 的所有指數值,我在想這樣的事情:
tr <- texreg::extract(dd)
screenreg(dd, override.coef = exp(tr@coef), override.se = exp(tr@se))
這行不通,我想有一個快速的解決方法嗎?
謝謝
“平均” texreg
的 texreg extract
方法返回一個texreg
對象列表,每個 model 有一個元素。您需要將@coef
和@se
應用於每個元素。 例如:
library(MuMIn)
library(texreg)
dd <- dredge(lm(y ~ X1 * X2, Cement, na.action = na.fail))
tr <- extract(dd)
screenreg(x, override.coef = lapply(lapply(tr, slot, 'coef'), exp))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.