绘制系数和相应的置信区间

时间:2014-12-31 00:40:50

标签: r

我想在条形图中绘制回归模型的系数,该条形图还包含每个系数的置信区间。

即克。

attach(mtcars)
M=lm(mpg ~ . , data = mtcars)

barplot(coefficients(M))
confint(M, level = 0.9)

- >如何在一个条形图中绘制这两个信息?

也许可以根据它们的值对系数进行排序?

我环顾四周找到了coefplot,但实际上我想在没有图书馆的情况下这样做,因为它应该很容易用于初学者,并且应该解释如何使用图表。如果有人知道一个好的包装,那也很好。但我想“自己”建立它,那么我怎么能找出背后发生的事情呢?是否可以获取/检查包中某个特定方法的代码?

此外,我尝试可视化每个变量/组合的显着性(如果它是DiD模型)。 因此,我想创建一个条形图,以按排序顺序列出(大多数)重要系数。 summary(M)命令列出了系数和相应的显着性代码。具有高显着性代码(***)的每个系数应首先被监听,然后是**然后是*。点和''不应该包括在内。

有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

在R中绘制置信区的基本技巧,如果您不想使用任何包(plotrix::plotCIgplot::barplot2),则使用arrows(...,angle=90)(或使用{ {1}}如果你不想在你的错误栏上加上“serifs”)

segments()

绘制情节:

M <- lm(mpg ~ . , data = mtcars)
c0 <- coef(M)
cc <- confint(M, level = 0.9)

我实际上认为你应该使用b <- drop(barplot(c0,ylim=range(c(cc)))) ## b stores vector of x positions arrows(b,c0,b,cc[,1],angle=90,length=0.05) ## lower bars arrows(b,c0,b,cc[,2],angle=90,length=0.05) ## upper bars 而不是points()作为基本情节,因为条形图对于可能是正面或负面的价值没有多大意义。将绘图旋转90度也可能有意义,以便更容易绘制长参数名称。

当你完成所有这些工作时,你或多或少地概括了barplot。 (另一种选择是查看arm::coefplot的代码,看看它实际上在做什么......)

答案 1 :(得分:1)

现在, R 3.1.2 中的包名称为gplots。使用gplotsgplots::barplot2

data(mtcars)
M=lm(mpg ~ . , data = mtcars)

co <- cbind(coefficients(M), summary(M)$coef[,4])
cint <- confint(M, level = 0.9)

# order by sig
cint <- cint[order(co[,2]),]
co <- co[order(co[,2]), ]

# you can do this in the gplots package
# install.packages("gplots")
library(gplots)
barplot2(co[,1], plot.ci= TRUE, ci.l= cint[,1], ci.u= cint[,2],
         horiz= TRUE)

可以通过text和/或title添加其他详细信息/标签。您可以通过order(..., decreasing=TRUE)选项

以相反的方式订购图表