我想在条形图中绘制回归模型的系数,该条形图还包含每个系数的置信区间。
即克。
attach(mtcars)
M=lm(mpg ~ . , data = mtcars)
barplot(coefficients(M))
confint(M, level = 0.9)
- >如何在一个条形图中绘制这两个信息?
也许可以根据它们的值对系数进行排序?
我环顾四周找到了coefplot
,但实际上我想在没有图书馆的情况下这样做,因为它应该很容易用于初学者,并且应该解释如何使用图表。如果有人知道一个好的包装,那也很好。但我想“自己”建立它,那么我怎么能找出背后发生的事情呢?是否可以获取/检查包中某个特定方法的代码?
此外,我尝试可视化每个变量/组合的显着性(如果它是DiD模型)。
因此,我想创建一个条形图,以按排序顺序列出(大多数)重要系数。 summary(M)
命令列出了系数和相应的显着性代码。具有高显着性代码(***)的每个系数应首先被监听,然后是**然后是*。点和''不应该包括在内。
有什么想法吗?
谢谢!
答案 0 :(得分:3)
在R中绘制置信区的基本技巧,如果您不想使用任何包(plotrix::plotCI
或gplot::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
。使用gplots
包gplots::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)
选项