Stata twoway图表的手段与置信区间

时间:2017-06-29 18:19:15

标签: graph stata

使用

clear 
score      group     test
 2          0         A
 3          0         B
 6          0         B
 8          0         A
 2          0         A
 2          0         A
 10         1         B
 7          1         B
 8          1         A
 5          1         A
 10         1         A
 11         1         B
end

我想用score为每个group(相同图表)以置信区间({真实数据有数千个观察值)散布平均值test。结果图将有两组两个点。 test==agroup==0 vs group==1)的一组点和test==b的一组点(group==0 vs group==1)。

我目前的方法有效,但很费力。我使用egen计算所有需要的统计数据:通过测试得到的每组的平均值,观察数,标准差。然后我collapse数据和情节。

必须有另一种方式,不是吗?

假设 Stata能够将score grouptest变量作为输入,然后计算并呈现这个非常标准的图表。

在Google上花了很多时间后,我不得不问。

1 个答案:

答案 0 :(得分:0)

虽然有用户编写的程序,但我倾向于statsby作为基本方法。讨论可以访问in this paper

此示例采用您的数据示例(几乎可执行代码)。一些选择取决于隐含的大置信区间。请注意,如果您的Stata版本不是最新版本,则ci的语法会有所不同。 (只需省略means。)

clear 
input score      group    str1 test
 2          0         A
 3          0         B
 6          0         B
 8          0         A
 2          0         A
 2          0         A
 10         1         B
 7          1         B
 8          1         A
 5          1         A
 10         1         A
 11         1         B
end
save cj12 , replace 

* test A 
statsby mean=r(mean) ub=r(ub) lb=r(lb) N=r(N), by(group) clear : ///
ci means score if test == "A"  
gen test = "A" 
save cj12results, replace 

* test B 
use cj12 
statsby mean=r(mean) ub=r(ub) lb=r(lb) N=r(N), by(group) clear : ///
ci means score if test == "B"  
gen test = "B" 
append using cj12results 

* graph; show sample sizes too, but where to show them is empirical 
set scheme s1color 
gen where = -20 
scatter mean group, ms(O) mcolor(blue) || ///
rcap ub lb group, lcolor(blue) ///
by(test, note("95% confidence intervals") legend(off))  ///
subtitle(, fcolor(ltblue*0.2)) ///
ytitle(score) xla(0 1) xsc(r(-0.25 1.25)) yla(-10(10)10, ang(h)) || ///
scatter where group, ms(none) mla(N) mlabpos(12) mlabsize(*1.5) 

enter image description here

我们无法比较您的完整代码或图表,因为您没有显示。