在进行实证研究之前,我们有必要熟悉自己的原始数据。
1. 查看数据 list in 1/10
通过这个命令,我们可以查看该数据库第1到第10个数据,对数据有一个初步的了解。屏幕显示的结果如下:
2. 查看数据类型describe
通过这个命令,我们可以查看这个数据集的简要介绍,包括了样本数量(obs:100)、变量数量(vars:10)、大小(size:3800)、以及每个标量的简要介绍。屏幕显示的结果如下:
3. 单变量分析
3.1 Codebook
Codebook这个命令适合于我们初次接触一个数据集的变量。
. codebook le
下图是codebook le这行命令给出的结果。我们可以看到,output给出了该变量的标签(life expectancy)、类型(numeric: float)、范围、单位、特异值、缺失值(0/100)、以及一些统计量。这样,我们对于该变量有一个初步的了解。
3.2 Summarize
Summarize这个命令可以让我们更加深入地探索变量的统计量。
. summarize le
下图是summarize le这行命令的结果,给出最常用的几个统计量(均值、方差、最大最小值)。
而summarize le, detail这行命令则会给出更多的统计量。
. summarize le, detail
其中,smallest和largest代表了该变量最大和最小值,即预期寿命(le)的4个最高值和4个最低值。
3.3 nmissing
nmissing这个命令可以查看变量的缺失值的个数,npresent 统计不存在缺失值的数量
3.4 duplicates
删除但变量重复值
duplicates drop id-age, force
多变量确定唯一值删除
sort date stkcd
by date stkcd: gen set=_n //证券代码和date相同则编号:从1到 最后
keep if set==1 //date 和 证券代码相同的观测,只保留了一条记录
drop set
save mystockdata_dropreplicate,replace
4. 双变量做图
我们继续研究预期寿命(le)随年份(year)变化的规律。不同的是,我们使用le_male与le_female绘制2个y变量和x的图,使用le_wmale、le_wfemale、le_bmale、le_bfemale绘制4个y变量和x的关系。
. twoway plot [if] [in] [, twoway_options]
twoway的命令是twoway plot 变量 [if] [in] [, twoway_options],我们可以自己定义的主要是:
- plot:选择图像的种类,这里的plot可以改成scatter, plot, connected, area, bar等,我们可以绘制出相应的图。
- 变量:这里可以写一个或多个y变量,一个x变量。最后一个是x变量,之前的为y变量。
- [if] [in] [, twoway_options]等中括号内的命令是可选命令,如果不写,则表示默认值。
- if:定义所取某一个自变量的范围,例如if le > 40,即只画le>40的图
- in:定义所取观测值的范围,例如in 10/20,即只画第10到20个观测值的图
- twoway_options:可以定义图像的“美观”部分,例如坐标轴范围、标题、注释、标签等等。
4.1 一个y变量(预期寿命(le)随年份(year)变化的关系)
twoway plot y x,其中plot可以换为某种特定的图像,如scatter。
- 散点图 twoway scatter le year
- 折线图 twoway line le year
. twoway connected le year (左上,带数据标记的折线图)
. twoway dropline le year (右上,垂直线图)
. twoway spike le year (左下,脉冲图)
. twoway lowess le year (右下,lowess图)
4.2 多个y 变量
命令形式:graph twoway plot yvar1 yvar2 yvar3 … xvar
等价命令:
- graph twoway (plot yvar1 xvar) (plot yvar2 xvar) (plot yvar3 xvar)
- graph twoway plot yvar1 xvar || plot yvar2 xvar || plot yvar3 xvar
plot表示我们要画的是某种图,之后是变量的名字。
Stata会默认最后一个变量是x变量,plot和x变量之间则均为y变量。
graph twoway scatter le_male le_female year
【等价命令:
. twoway scatter le_m le_f year
. twoway (scatter le_m year) (scatter le_f year)
. twoway scatter le_m year || scatter le_f year 】
twoway line le_male le_female year
twoway area le_female le_male year
不同曲线画在同一张图上
. twoway (scatter le year) (lfit le year)
. twoway scatter le year || lfit le year
4.3 样本变换
4.3.1 散点图的颜色形状大小
graph twoway scatter le_male le_female year, mcolor(red blue) msymbol(circle diamond) msize(vsmall vsmall)
(1)mcolor 点的颜色:(red blue)应按照y变量的顺序 (le_male le_female) 依次对应,这样红色代表le_male,blue代表le_female;
(2)msymbol 点的形状
(3)msize 点的大小
输入help scatter##marker_options得到更加详尽的介绍
4.3.2 折线图的颜色形状大小
twoway line le_male le_female year, lcolor(red blue) lpattern(solid dash) lwidth(thin thin)
(1)lcolor 线的颜色:(red blue)应按照y变量的顺序 (le_male le_female) 依次对应,这样红色代表le_male,blue代表le_female;
(2)lpattern 连接方式
(3)lwidth 宽度
4.3.3 调整坐标轴
(1) 改变坐标轴的最大值、最小值
. twoway line le_wmale le_wfemale le_bmale le_bfemale year, yscale(range(0))
*yscale(range(0)) 要求y轴的范围包括0
. twoway line le_wmale le_wfemale le_bmale le_bfemale year, yscale(range(0 90))
*yscale(range(0 90)) 要求y轴的范围包括0到90
(2) 改变坐标值的刻度
y轴
. twoway line le_wmale le_wfemale le_bmale le_bfemale year, yscale(range(0 90)) ylabel(0(10)90)
*ylabel(0(10)90)的意思是y轴的刻度从0开始,到90结束,每隔10添加一个刻度
x轴
twoway line le_wmale le_wfemale le_bmale le_bfemale year, ///
yscale(range(0 90)) ylabel(0(10)90) xlabel(1900(5)2000)
如果坐标刻度叠在一起, 我们将xlabel稍作更改:xlabel(1900(5)2000)改为xlabel(1900(10)2000) ,并加上了xtick(1900(5)2000)。我们使用xtick(1900(5)2000),意味着每隔5年在x轴上加一个小标记,而xlabel(1900(10)2000)意味着每隔10年在x轴上写上具体的年份。
twoway line le_wmale le_wfemale le_bmale le_bfemale year, ///
yscale(range(0 90)) ylabel(0(10)90) xlabel(1900(10)2000) xtick(1900(5)2000)
(3) 加标题
现在,我们添加了title("20世纪美国预期寿命变化图") subtitle("1900年-2000年") ytitle("预期寿命") xtitle("年份"),其中:
- 用title("20世纪美国预期寿命变化图") 给图像加上大标题;
- 用subtitle("1900年-2000年")加上小标题;
- 用ytitle("预期寿命")给y轴加上标题;
- 用xtitle("年份") 给x轴加上标题。
twoway line le_wmale le_wfemale le_bmale le_bfemale year, ///
yscale(range(0 90)) ylabel(0(10)90) xlabel(1900(10)2000) xtick(1900(5)2000) ///
title("20世纪美国预期寿命变化图") subtitle("1900-2000") ///
ytitle("预期寿命") xtitle("年份") ///
note("数据来源:U.S. life expectancy")
twoway line le_wmale le_wfemale le_bmale le_bfemale year, ///
yscale(range(0 90)) ylabel(0(10)90) xlabel(1900(10)2000) xtick(1900(5)2000) ///
title("20世纪美国预期寿命变化图") subtitle("1900-2000") ///
ytitle("预期寿命") xtitle("年份") ///
note("数据来源:U.S. life expectancy") ///
legend(ring(0) pos(5) cols(1) ///
label(1 "白人男性") label(2 "白人女性") label(3 "黑人男性") label(4 "黑人女性") )
5. 统计口径
在使用别人提供的数据时,还应注意其定义及统计口径,是否是与理论模型中的变量相对应。
比如,中国的失业率指的是“城镇登记失业率”,其统计口径与标准教科书中以及西方国家的失业率概念有很大不同。