繁体   English   中英

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

[英]Plotting coefficients and corresponding confidence intervals

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

例如

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

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

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

也许也可以根据其值对系数进行排序?

我环顾四周,发现coefplot ,但实际上我想在没有库的情况下进行操作,因为它对于初学者来说应该很容易使用,并且应该解释如何使用绘图。 如果有人知道一个好的包装,也可以。 但是我想将其构建为“我自己”,那么如何找出背后发生的事情呢? 是否可以获取/检查包中一种特定方法的代码?

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

有任何想法吗?

谢谢!

如果您不想使用任何程序包( plotrix::plotCIgplot::barplot2 ),则在R中绘制置信度条的基本技巧是使用arrows(...,angle=90) (或使用gplot::barplot2 segments()如果您不希望错误栏上出现“ serifs”)

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()而不是barplot ,因为barplots对于可能为正或为负的值没有太大意义。 将绘图旋转90度也可能是有意义的,以使其更容易绘制长参数名称。

在完成所有这些操作时,您或多或少已经概括了arm::coefplot (另一种选择是查看coefplot的代码,以查看其实际作用……)

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)选项以相反的方式对图进行order(..., decreasing=TRUE)

暂无
暂无

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

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