2.1 散点图
2.2 线图
2.3 其他图形
2.4 图形管理
Stata拥有出色的图形设备,可通过 graph 命令访问, help graph 了解概述。统计中最常见的图表是显示点或线的双坐标轴X-Y图。这可以通过子命令 twoway 实现。 twoway 命令中又含42个子命令及绘图类型,其中最重要的是 scatter 和 line 。我们将对 scatter 和 line 着重介绍,并简要介绍其他绘图类型。
Stata 10引入了一个图形编辑器,可用于交互式地修改图形。然而,我不会提倡这种做法,因为它与记录和确保研究中所有步骤可重复的目标相冲突。
本节中的所有图表(除非另有说明)都使用带蓝色标题和白色背景的自定义方案,我将在第2.2.5节对方案进行讨论。
在本节中,我将使用前文使用过的有关生育率下降的 effort 数据集进行图表说明。读取数据:
为了激起你的兴趣,先展示我们将在本节中完成的作品:
可以使用以下命令生成生育率变化(change)与社会环境(setting)关系的简单散点图:
请注意,首先指定的变量是在Y轴。如果变量有定义标签,则坐标轴显示变量标签名,若无定义则显示变量名。如果这是唯一的图,该命令可以缩写为 twoway scatter ,或者 scatter 。现在我们将添加一些东西。
假设我们也想显示拟合的回归线。在某些软件包中,您需要运行回归,计算拟合线,然后对其进行绘制。Stata可以使用 lfit 绘图类型一步完成所有操作(还有一个二次拟合绘图类型 qfit )。通过将每个子图封闭在括号内,可以将它与散点图结合使用(也可以使用两条竖线来分隔它们)。
现在假设我们想在回归线上放置置信区间。Stata可以通过 lfitci 来实现这一点,该绘图类型将置信区域绘制为灰色带。(还有一个 qfitci 类型用于二次拟合的频带。)因为置信带会遮蔽一些点,所以我们先绘制该区域再绘制点
请注意,该命令不会标记y轴,而是使用图例。您可以使用该 ytitle() 选项为y轴指定标签,并隐藏图例 legend(off) :
有很多选项可以让你控制点的标签,包括它们的形状和颜色,参见 help marker_options 。使用 mlabel(varname) 选项也可以用变量的值标记点。在下一步中,我们将国名添加到图中:
标签中的一个小问题是哥斯达黎加和特立尼达多巴哥(以及巴拿马和尼加拉瓜)相互重叠。我们可以使用12小时时钟指定标签相对于标记的位置来解决这个问题(12是上面的,3是右边,6是下面,9是在标记的左边)。
我们创建一个变量,将默认设置的位置保持为3点,然后将哥斯达黎加移动到9点,特立尼达多巴哥移动到11点以上的位置(我们也可以将尼加拉瓜和巴拿马上移位,到2点方向):
生成此版本图形的命令如下
有些选项适用于所有双向图形,包括标题,标签和图例等。Stata图表的 title() 和 subtitle() 通常在顶部, legend() , note() 和 caption() 通常在底部,更多信息键入 help title_options 。通常你只需了解标题即可。Stata 11允许图形中的文本包括粗体,斜体,希腊字母,数学符号和字体选择。Stata 14引入了Unicode,大大扩展了可以完成的工作。 help graph text 以了解更多信息。
我们对图表的最后调整是添加一个图例来指定线性拟合和95%置信区间。我们使用 order(2 "linear fit" 1 "95% CI") 命令,图例的选项按照该顺序标记第二个和第一个项目。我们还使用 ring(0) 将图例移动到绘图区域内,并使用 pos(5) 将图例框放置在5点钟位置附近。完整命令就是:
结果就是本节开始处显示的图形
有一些选项可以控制轴的缩放比例和范围,包括 xscale() 和 yscale() 。可以是算术,对数值等。更多信息 help axis_scale_options 。其它选项控制主要和次要记号和标签,如 xlabel() , xtick() and mtick() ,同样地,对于y轴,见 help axis_label_options 。通常默认值是可以接受的,但还是很高兴您知道它们是可以更改的。
将使用美国预期寿命数据来说明线图,这试数据Stata附带的数据集之一(试试 sysuse dir 看看还有什么可用的)。
我们的目标是绘制20世纪美国白人和黑人男性的预期寿命。为了激发你的兴趣,将先向你展示最终成果,然后我们将一点一点地构建图表。
最简单的图形所有参数使用默认值:
如果这就是我们所要的图形,可以将命令缩写为 twoway line ,或者 line (只适用于散点图和线图)。
线图允许我们指定多个“y”变量,顺序为y1,y2,...,ym,x。本例中,我们指定了两个——对应于白人男性和黑人男性的预期寿命。或者,我们可以使用两条线图: (line le_wmale year) (line le_bmale year) 。
默认图形很好,但图例似乎太罗嗦。我们会将大部分信息转移到标题中,并且只保留肤色信息:
在这里,我使用了三个选项: title , subtitle 和 legend 。 legend 选项有许多子选项此处用 order 列出关键点(即 1 和 2 )及其标签,说明第一条线代表白人,第二条线代表黑人。要省略关键点,只需将其从列表中移除即可。其他的图例选项,请参阅 help legend_option 。
下面我希望在画图区域内移动图例来改善空间,比如说在5点钟左右的位置有空余空间。如前所述,我们可以通过使用 ring(0) 将图例移动到绘图区域内,并通过 pos(5) 将其置于5点钟位置附近。因为这些都是图例子选项,所以都在 legend() 命令括号中输入:
我不知道你感觉如何,但我自己很难区分图画中的默认线条。Stata中有不同的方式控制线条样式。 clstyle() 选项可以让你使用已命名的不同风格,比如 foreground , grid , yxline ,或是根据线1~15使用样式命名的 p1-p15 ,详情请参阅 help linestyle 。如果您想根据方案选择合适样式元素,这非常有用。
您也可以指定样式的三个成分从而确定风格:线条样式,宽度和颜色:
我们将白人指定为蓝色,黑人指定为红色:
请注意,这 clcolor() 是线图的一个选项,所以我将括号放在 line 命令的周围并把 clcolor() 插入那里。
由上图我们可以看出,预期寿命的提升速度在20世纪下半叶有所减缓。使用对数刻度可以更直观的理解,需要注意的是对数刻度中直线表示恒定的改善幅度。这由 help axis_options 可以很容易完成。尤其是 yscale() ,它可以让你选择算数( arithmetic ),对数( log )或倒置刻度( reversed )。其中倒置刻度是指y轴是从最大的值开始的,最小值反而在最上方。还有一个子选项 range() 可以控制绘图范围。在这里,我将y范围指定为25到80,以便将曲线稍微向上移动:
Stata使用方案来控制图的外观,参见 help scheme 。您可以设置默认方案并在所有图形中应用 set scheme_name 。您也可以使用不同的方案对所作的最后一个图形重新展示,选出效果最好的方案 graph display, scheme(scheme_name) 。
使用 graph query, schemes 查看可用方案类型列表。 s2color 方案适用于屏幕图表, s1manual 是Stata手册中的风格。 economist 是经济学人杂志使用的风格。我们可以获得本节开头所示的图形使用的是 economist 风格。
条形图可用于绘制分类变量的频数分布,或绘制由分类变量定义的组内连续变量的描述性统计。我们将使用Stata附带的城市温度数据集为例说明。
如果我只是键入 graph bar, over(region) 我将获得区域变量的频数分布。让我们来展示一月和七月的平均气温的区域分布。要做到这一点,我可以指定 (mean) tempjan (mean) tempjuly ,但由于默认统计是平均值,我们可以简写如下。我认为默认图例太长,所以也指定了一个自定义图例。
我使用 over() 这样所以区域出现在同一个图表中· by() 则相反,每个区域都会产生一个单独的坐标轴。 bargap() 选项则控制同一个组中不同统计的小节之间的间隔在这里我放了一个小空间。 gap() (此处未使用)选项控制不同组别的空间。我还将颜色填充强度设置为70%,我认为这看起来更好。
显然,1月份东北部和北部中部地区比南部和西部冷得多。七月份的变化较少,但南部的气温较高。
使用箱线图可以快速获得变量分布的特征,箱线图是取值范围为1~3分位数的箱子,将中位数用横线显示,并且在盒子上下方增加了“wiskers”,定义为距离中值不超过四分位数间距的1.5倍的最高和最低值。在wiskers上下方的点用圆圈表示为异常值。
让我们画一个地区1月份的温度箱形图。我将使用 over(region) 选项,并用 sort(1) 选项控制排列顺序——按照第一个变量 tempjan 中位数大小排列。我还通过设定RGB值将颜色设置为蓝色:
我们看到,1月份的气温在东北部和北部中部地区较低,变化较小,相当一部分城市气温异常偏冷。
对变量分布更详细的展示需要用到平滑直方图,可以使用 kdensity 命令使用核密度平滑器计算平滑直方图。
让我们使用默认设置对每个区域的1月温度进行单独的核密度估计,并保存结果。
接下来我们做出核密度估计图。由于密度图重叠,我使用Stata 15中引入的不透明选项使它们透明度达到50%。在这种情况下,我使用颜色名称后面跟着一个%符号和不透明度。我也简化了图例,匹配密度的顺序,并把它放在图示的右上角。
这个图示使我们清楚地看到了1月份气温的区域差异,东北部和北部中心地区的气候分布更冷,更窄,南部和西部的气候相当相似。
Stata默认在内存中保存您绘制的最后一个图形,并将其称为“Graph”。如果你在在创建图形时使用 name() 为图形单独命名,在内存中可以保留多个图形。这对于组合图形很有用, help graph combine 了解更多。请注意,即使您保存了数据,保存在内存中的图表也会在您退出Stata时消失,除非您保存图形本身。
要使用Stata自己的格式将当前图形保存到磁盘上,输入 graph save filename 。该命令有两个选项 replace 和 asis ,如果该文件已存在,则需要使用 replace 选项替代原有图形,而 asis 选项会冻结图形(包括其当前风格),然后将其保存。默认情况下,将图形保存为可在未来可编辑的实时格式。以Stata格式保存图形后,可以使用 graph use filename 命令从磁盘加载它。( graph save 和 graph use 类似于 save 和 use )存储在内存中的任何图形可以使用 graph display [name] 显示。 help graph_manipulation 了解更多信息。
如果您打算将图表合并到另一个文档中,您可能需要将其保存为更便携的格式。Stata的命令 graph export filename 可以使用各种矢量或光栅格式导出图形,通常由文件扩展名指定。您还可以使用 graph print 打印图形,或使用Windows剪贴板将其复制并粘贴到文档中。
画图是Stata的强项之一,不是因为直接输出的图很好看,而是因为功能强大,图中的绝大部分元素都可以进行调整。建议修改legend,
xlabel,
ylabel,
graphregion,
plotregion等选项。比如一个简单的调整
,
ylabel(#5,
angle(horizontal)
nogrid)
xlabel(0(100)800)
legend(rows(2))
graphr(style(plotregion))
按照正常步骤。面数据模型的LM检验解决的是,截面数据SEM模型和SLM模型的选择问题。这部分内容比较简单,参见《高级计量经济学及Stata应用(第二版)》设定面板数据格式第二步:对主要变量做描述性分析第三步:做基准回归第四步:做中介效应。
Stata空间计量命令汇总及操作手册空间计量经济学创造性地处理了经典计量方法在面对空间数据时的缺陷,考察了数据在地理观测值之间的关联。近年来在人文社会科学空间转向的大背景。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)