sjPlot绘制三线图

加载包

library(sjPlot)
library(sjmisc)
library(sjlabelled)

数据准备

data('efc')
efc <- as_factor(efc,c161sex,c172code)

建模(线性模型)

m1 <- lm(barthtot ~ c160age + c12hour + c161sex + c172code, data = efc)
m2 <- lm(neg_c_7 ~ c160age + c12hour + c161sex + e17age, data = efc)

绘制三线表

tab_model(m1)

图片.png

自动加因变量标签(自动加入了因变量标签,若没有标签,显示因变量名mpg)

m.mtcars <- lm(mpg ~ cyl + hp + wt, data = mtcars)
tab_model(m.mtcars)
图片.png

关闭自动加因变量标签

auto.label= FALSE
tab_model(m1,auto.label = F)

图片.png

否则为4图

多个模型绘制三线图

tab_model(m1,m2)

图片.png

广义线性模型的三线图(自动系数指数化变为OR)

m3 <- glm(
  tot_sc_e ~ c160age + c12hour + c161sex + c172code,
  data = efc,
  family = poisson(link = "log")
)

efc$neg_c_7d <- ifelse(efc$neg_c_7 < median(efc$neg_c_7, na.rm = TRUE), 0, 1)
m4 <- glm(
  neg_c_7d ~ c161sex + barthtot + c172code,
  data = efc,
  family = binomial(link = "logit")
)

tab_model(m3, m4,auto.label=F)
图片.png

广义线性模型不进行自动指数变换

tab_model(m3,m4,transform=NULL,auto.label=F)
图片.png

选择或剔除相应的列

tab_model(m3,m4,transform=NULL,auto.label=F)#个体化显示行
show.est #显示预测值
show.ci #显示置信区间
show.se #显示标准误
show.std #显示系数?
show.p #显示p值
show.stat #显示系数的统计学检验值
show.df #显示自由度
tab_model(m1,auto.label=F)
tab_model(m1, show.se = TRUE, show.std = TRUE, show.stat = TRUE,auto.label = F)
图片.png
tab_model(m3, m4, show.ci = FALSE, show.p = FALSE, auto.label = FALSE)
tab_model(m3,m4,auto.label = F)
图片.png

个体化显示行

tab_model(
  m1, auto.label = F,show.se = TRUE, show.std = TRUE, show.stat = TRUE,
  col.order = c("p", "stat", "est", "std.se", "se", "std.est")
)
图片.png

置信区间合并

tab_model(m1,collapse.ci = T,auto.label = F)
tab_model(m1,collapse.ci = F,auto.label = F)
图片.png

自定义行列名(pred.labels定义变量名,dv.labels定义模型名,)

tab_model(m1,m2,auto.label = F)
tab_model(
  m1, m2,
  pred.labels = c("a", "b", "c", "d","e", "f","g"),
  dv.labels = c("e", "f"),
  string.est = 'ee',
  string.pred = "g",
  string.ci = "h",
  string.p = "i"
)
图片.png

自定义P值(stars为*号,scientific为科学计数法

tab_model(m1, m2, p.style = "stars",auto.label = F) #*表示
tab_model(m1, m2, p.style = "scientific", digits.p = 2,auto.label = F) #科学计数法保留两位小数
图片.png

图片.png

仅仅显示特定的变量(terms,rm.terms)

tab_model(m1,auto.label = F)
tab_model(m1, terms = c("c160age", "c12hour"),auto.label = F)
tab_model(m1, rm.terms = c("c172code2", "c161sex2"),auto.label = F)
图片.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。