通过十分之一创建两组之间的间隙的箱形图

时间:2019-02-26 01:02:42

标签: stata boxplot

我与Stata合作,我为两个不同的组分别设置数学成绩:AB

我想看看每个十分位中两组之间存在的差距。另外,我想为每个十分位创建一个该缺口的箱形图(我想拥有10箱形图,每个十分位数一个表示组等级之间的差距)。

我首先要做的是使用xtile来计算两组的十分位数:

xtile decileA= mat if group==1, nq(10)

xtile decileB= mat if group==0, nq(10)

但是,组AB的观测数或分布都不相同。我想到了为每个十分位数和组计算分位数并减去它们以获得每个四分位数中每个十分位数的差,以创建箱线图。但是我不知道以后如何继续创建图形,并且鉴于我在每组十分位中有不同数量的观察值,因此我不知道这种方法是否正确。

如果我尝试使用pctile命令并计算每个十分位数的差,则会丢失每个十分位数内数据的所有方差。我只得到中位数差异,而不是我想要的所有分位数。

示例:

pctile decileA= mat if group==1, nq(10)

pctile decileB= mat if group==0, nq(10)

gen qdiff= decileA- decileB if _n<10

gen qtau=_n/10 if _n<10 

graph box qdiff, over(tau)

我想知道是否有一种方法可以制作我想要的图形?

交叉发布于Statalist

1 个答案:

答案 0 :(得分:1)

当然可以通过一些努力来完成所需的工作,但是如果目标是对每个十分位数的两组进行比较,并带有一定的可变性概念,则可以很容易地从同时分位数获得回归及其产生的SE:

sysuse auto, clear

sqreg price i.foreign, quantile(.1 .2 .3 .4 .5 .6 .7 .8 .9)

margins, dydx(foreign) ///
predict(outcome(q10))  ///
predict(outcome(q20))  ///
predict(outcome(q30))  ///
predict(outcome(q40))  ///
predict(outcome(q50))  ///
predict(outcome(q60))  ///
predict(outcome(q70))  ///
predict(outcome(q80))  ///
predict(outcome(q90))  ///
post

marginsplot, yline(0) xlab(, grid) ylab(#10, grid angle(90))

这将产生一个图表,显示出较高原价的外国原产地与较高价格的价格相关联,但最高位十分位数除外,尽管考虑到CI的重叠量,此处的差异可能并不明显:

enter image description here

您甚至可以像这样进行形式上的假设检验:

. test _b[1.foreign:9._predict] =  _b[1.foreign:8._predict]

 ( 1)  - [1.foreign]8._predict + [1.foreign]9._predict = 0

           chi2(  1) =    3.72
         Prob > chi2 =    0.0537

对于74辆汽车,我们不能否认对第80和第90个百分位数的影响是相同的,即使点估计的符号相反但幅度相似。