簡體   English   中英

使用 broom::tidy 為 GAM 系數和置信區間取冪

[英]Exponentiating GAM coefficients and confidence intervals using broom::tidy

我正在使用mgcv::gam運行廣義加法模型,並嘗試使用broom:tidy組織我的結果,但tidy顯然不會對 GAM 的系數或置信區間進行指數化,盡管它適用於常規glm模型。 是否有broom::tidy方法對 GAM 中的系數和 CI 求冪? 我特別詢問tidy因為我想在gtsummary創建的回歸表中使用結果。

library(tidyverse)
library(magrittr)
library(mgcv)
library(parameters)
library(gtsummary)
library(broom)

# sample data

id <- 1:2000
gender <- sample(0:1, 2000, replace = T)
age <- sample(17:64, 2000, replace = T)
race <- sample(0:1, 2000, replace = T)
health_score <- sample(0:25, 2000, replace = T)
dead <- sample(0:1, 2000, replace = T)
days_enrolled <- sample(30:3000, 2000, replace = T)

df <- data.frame(id, gender, age, race, health_score, dead, days_enrolled)

# model

model <- gam(dead ~ gender + s(age) + race + s(health_score) + offset(log(days_enrolled)),
            data = df, method = "REML", family = nb())

# both give the same output:

tidy(model, parametric = T, conf.int = T)
tidy(model, parametric = T, conf.int = T, exponentiate = T)

您可以直接使用tbl_regression()對結果求冪。 如果這不是你所追求的,請告訴我。

library(tidyverse)
library(mgcv)
library(parameters)
library(gtsummary)
library(broom)

# sample data

id <- 1:2000
gender <- sample(0:1, 2000, replace = T)
age <- sample(17:64, 2000, replace = T)
race <- sample(0:1, 2000, replace = T)
health_score <- sample(0:25, 2000, replace = T)
dead <- sample(0:1, 2000, replace = T)
days_enrolled <- sample(30:3000, 2000, replace = T)

df <- data.frame(id, gender, age, race, health_score, dead, days_enrolled)

# model

model <- gam(dead ~ gender + s(age) + race + s(health_score) + offset(log(days_enrolled)),
             data = df, method = "REML", family = nb())


tbl_regression(model, exponentiate = TRUE)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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