繁体   English   中英

用R中的置信区间绘制系数

[英]Plot coefficients with confidence intervals in R

我有一个样本回归如下。
ý =λ1 +δT +α1 TR +Σ 吨∈{2 ,,, T】β TR *δ

也就是说,我有时变系数βt 根据回归结果,我想用置信区间绘制系数(X轴是时间,Y轴是系数值)。

这是样本数据

y = rnorm(1000,1)
weekid = as.factor(sample.int(52,size = 1000,replace = T))
id = as.factor(sample.int(100,size = 1000,replace = T))
tr = as.factor(sample(c(0,1),size = 1000, prob = c(1,2),replace = T))
sample_lm = lm(y ~ weekid + id + tr*weekid)
summary(sample_lm)

如何用置信区间绘制tr*weekid系数?

我们可以使用ggcoefGGally 一个问题是您只想显示系数的子集。 在那种情况下我们可以做到

ggcoef(tail(broom::tidy(sample_lm, conf.int = TRUE), 51), sort = "ascending")

在此输入图像描述

更新 :因为,至少在某种程度上,我们可以像ggplot2输出一样处理这个图,我们可以用coord_flip翻转轴。 这不是最好的主意,因为变量名称很长,所以只是为了演示我将它与angle = 30结合起来。 默认情况下,系数按名称排序,这也不是人们可能追求的。 至于解决这个问题,我们首先需要将系数名称定义为因子变量并指定它们的级别。 也就是说,我们有

tbl <- tail(broom::tidy(sample_lm, conf.int = TRUE), 51)
tbl$term <- factor(tbl$term, levels = tbl$term)
ggcoef(tbl) + coord_flip() + theme(axis.text.x = element_text(angle = 30))

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM