如何让tbl_regression输出II型平方和并自定义输出参数?
问题
尝试通过II型和III型平方和两种方式获取回归分析结果,发现tbl_regression()仅输出III型平方和的估计结果。请问能否手动设置type = "II"参数并指定car::Anova函数?同时需要示例代码,学习如何手动设置tbl_regression的输出参数。
附原始测试代码:
n <- 50 set.seed(42) df <- data.frame( id = c(1:n*2, 1:n*2), time = c(rep("t_0", n*2), rep("t_6", n*2)), group = c(rep("trt", n), rep("ctrl", n), rep("trt", n), rep("ctrl", n)), value = c(rnorm(n,20,5), rnorm(n,20,5), rnorm(n,50,5), rnorm(n,30,5)) ) fit <- lm (value ~ group*time, df) tbl_regression(fit, pvalue_fun = label_style_pvalue(digits = 3), show_single_row = everything(), method.args = list(type = "II")) %>% bold_p(t = 0.05, q = FALSE) %>% bold_labels() %>% as_gt() %>% tab_options(row.striping.include_table_body = TRUE)
解答
可以通过tbl_regression()的anova_fun参数指定使用car::Anova函数,并结合method.args传递type = "II"参数来输出II型平方和结果。关键修改点如下:
- 添加
anova_fun = car::Anova:明确指定用car包的Anova函数计算平方和(默认函数不识别type参数) - 保留
method.args = list(type = "II"):向指定的Anova函数传递II型平方和的计算参数
修改后的完整示例代码:
library(gtsummary) library(car) library(gt) n <- 50 set.seed(42) df <- data.frame( id = c(1:n*2, 1:n*2), time = c(rep("t_0", n*2), rep("t_6", n*2)), group = c(rep("trt", n), rep("ctrl", n), rep("trt", n), rep("ctrl", n)), value = c(rnorm(n,20,5), rnorm(n,20,5), rnorm(n,50,5), rnorm(n,30,5)) ) fit <- lm(value ~ group*time, df) # 输出II型平方和结果 tbl_regression(fit, pvalue_fun = label_style_pvalue(digits = 3), show_single_row = everything(), anova_fun = car::Anova, # 指定car包的Anova函数 method.args = list(type = "II")) %>% # 设置II型平方和 bold_p(t = 0.05, q = FALSE) %>% bold_labels() %>% as_gt() %>% tab_options(row.striping.include_table_body = TRUE) # 若需切换回III型平方和,仅修改type参数即可 # tbl_regression(fit, # pvalue_fun = label_style_pvalue(digits = 3), # show_single_row = everything(), # anova_fun = car::Anova, # method.args = list(type = "III")) %>% # bold_p(t = 0.05, q = FALSE) %>% # bold_labels() %>% # as_gt() %>% # tab_options(row.striping.include_table_body = TRUE)
关键参数说明
anova_fun:用于自定义计算方差分析统计量的函数,这里指定car::Anova以支持II/III型平方和的计算method.args:传递给anova_fun的额外参数,通过list(type = "II")指定计算II型平方和- 其他参数(如
pvalue_fun、bold_p等)保持原逻辑,用于调整表格的显示样式
内容的提问来源于stack exchange,提问作者Alex_Z
相关产品推荐
相关产品推荐

