Stata 按十分位数创建两组之间差距的方框图

Stata 按十分位数创建两组之间差距的方框图,stata,boxplot,Stata,Boxplot,我和Stata一起工作,我有两个不同组的数学成绩:A和B 我想看看这两组人在每十分位之间的差距。此外,我想为每一个十分位数做一个这个差距的方框图(我想有10方框图,每个十分位数一个方框图,显示组分数之间的差距) 我首先用xtile计算两组的小数点: xtile decileA= mat if group==1, nq(10) xtile decileB= mat if group==0, nq(10) 然而,组A和组B的观察次数和分布并不相同。我想计算每一个十分位数和组的分位数,然后减去它们

我和Stata一起工作,我有两个不同组的数学成绩:
A
B

我想看看这两组人在每十分位之间的差距。此外,我想为每一个十分位数做一个这个差距的方框图(我想有
10
方框图,每个十分位数一个方框图,显示组分数之间的差距)

我首先用
xtile
计算两组的小数点:

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

xtile decileB= mat if group==0, nq(10)
然而,组
A
和组
B
的观察次数和分布并不相同。我想计算每一个十分位数和组的分位数,然后减去它们,得到每一个四分位数上每一个十分位数的差值,从而创建箱线图。但我不知道接下来如何创建图表,鉴于我在每组十分位数中有不同数量的观察结果,我不知道这样做是否正确

如果我尝试使用
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)
pctile decileA=mat如果组==1,nq(10)
pctile decileB=mat如果组==0,nq(10)

gen qdiff=decileA-decileB如果确实有一种方法可以通过一点努力来实现你想要的,但是如果目标是在每个十分位数的两组之间进行比较,并带有一些可变性的概念,你可以很容易地从同步分位数回归和它产生的SEs中得到:

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))
这就产生了一个图表,显示外国原产地与更高十分位数的更高价格相关,但最高十分位数除外,尽管考虑到CIs重叠的程度,此处的差异可能并不显著:

您甚至可以进行正式的假设测试,以确保效果相等,如下所示:

. 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百分位的影响是相同的,即使点估计值具有相反的符号,但大小相似

在我看来,这更像是一个统计问题,而不是严格意义上的编程问题。因此,我回答了Statalist。因此,现在有两个网站提供了答案。