金融计量第一次作业

HW01-2018.10.13

第1题

使用 sysuse nlsw88.dta, clear命令调入 Stata 数据文件 nls88.dta, 并完成如下统计分析:

第(1)小题

  • 题目

(1). 统计如下变量的平均值、标准差、中位数、最小值和最大值,并列表呈现出来,并输出为 Excel 或 Word 文档,名称为 Table01.xlsxTable01.docx
age grade wage hours ttl_exp tenure

  • 解答
sysuse nlsw88.dta,clear
ssc install sum2docx, replace
sum2docx age grade wage hours ttl_exp tenure using      ///
   E:\stata15\ado\personal\Assignment1\Table01.docx,   ///
   mean(%6.2f) sd(%6.2f) median(%6.2f) min(%6.2f)     ///
   max(%6.2f) title("Table01")

可以看到,文件Table01已经输出并保存到相应文件夹中,打开文件可以看到得到的统计结果。
金融计量第一次作业
金融计量第一次作业

第(2)小题

  • 题目

(2). 产生如下变量:

  • age2: 该变量的所有观察值等于 age 变量中相应观察值的平方
  • ln_wage = ln(wage): 工资变量的自然对数
  • wage_hour = wage/hours : 工资变量 wage 与小时 hours 的比值
  • dum: 该变量是一个虚拟变量(dummy variable),其取值为:
    • dum = 1如果某个妇女的 wage 大于所有妇女的平均工资
    • dum = 0 如果某个妇女的 wage 小于或等于所有妇女的平均工资
  • 解答
gen age2 = age^2                     //增加新变量age2
gen ln_wage = ln(wage)               //增加新变量ln_wage
gen wage_hour = wage/hours           //增加新变量wage_hour
egen a_wage = mean(wage)
gen dum = 1                          
replace dum = 0 if wage<=a_wage      //增加虚拟变量dum

可以看到,数据表中已经产生了新的变量
金融计量第一次作业

第(3)小题

  • 题目

(3). 绘制 ttl_exp 变量的直方图和密度函数图,分别保存/输出 (提示:可使用 graph export 命令) 为 His_ttl.pngKendi_ttl.png,并作简单解释。

  • 解答
histogram ttl_exp     //直方图
graph export E:\stata15\ado\personal\Assignment1\His_ttl.png,replace
kdensity ttl_exp      //密度函数图
graph export E:\stata15\ado\personal\Assignment1\Kendi_ttl.png,replace

可以看到,两张图片已经保存到指定文件夹。
金融计量第一次作业
金融计量第一次作业
金融计量第一次作业
从直方图和密度函数图可以发现,totel work experience呈左偏态分布,集中位置在15左右,但10至20的频数远比20至30多。

第(4)小题

  • 题目

(4). industry 变量表示妇女所在的行业,请做如下统计:

  • (1) 每个行业的观察值个数;
  • (2) 各个行业妇女的平均工资(wage)、平均工作时数(hours)、平均年龄(age);
  • (3) 列表统计不同行业中白种人、黑种人和其他人种的比例
  • 解答
tab industry
tabstat wage hours age, by(industry)
tab race industry, column

得出结果(1),第一列即为各行业观察值

               industry |      Freq.     Percent        Cum.
------------------------+-----------------------------------
  Ag/Forestry/Fisheries |         17        0.76        0.76
                 Mining |          4        0.18        0.94
           Construction |         29        1.30        2.24
          Manufacturing |        367       16.44       18.68
 Transport/Comm/Utility |         90        4.03       22.72
 Wholesale/Retail Trade |        333       14.92       37.63
Finance/Ins/Real Estate |        192        8.60       46.24
    Business/Repair Svc |         86        3.85       50.09
      Personal Services |         97        4.35       54.44
  Entertainment/Rec Svc |         17        0.76       55.20
  Professional Services |        824       36.92       92.11
  Public Administration |        176        7.89      100.00
------------------------+-----------------------------------
                  Total |      2,232      100.00

得出结果(2)

        industry |      wage     hours       age
-----------------+------------------------------
Ag/Forestry/Fish |  5.621121  34.47059  39.94118
          Mining |  15.34959        40     37.25
    Construction |  7.564934  35.65517  38.62069
   Manufacturing |  7.501578  40.89373   38.9891
Transport/Comm/U |  11.44335  39.85556  39.27778
Wholesale/Retail |  6.125897  35.24699  39.28829
Finance/Ins/Real |  9.843174  38.51563  38.82813
Business/Repair  |   7.51579  33.15116  38.73256
Personal Service |  4.401093  32.09375  39.23711
Entertainment/Re |  6.724409  34.35294  40.11765
Professional Ser |  7.871186  36.71655  39.23908
Public Administr |  9.148407  38.54545  39.15909
-----------------+------------------------------
           Total |  7.783463  37.23205  39.14606
------------------------------------------------

得出结果(3),其中每一个频数下方是其对应的比例

           |                                              industry
      race | Ag/Forest     Mining  Construct  Manufactu  Transport  Wholesale  Finance/I  Business/  Personal  |     Total
-----------+---------------------------------------------------------------------------------------------------+----------
     white |        13          4         24        229         62        267        165         64         51 |     1,627 
           |     76.47     100.00      82.76      62.40      68.89      80.18      85.94      74.42      52.58 |     72.89 
-----------+---------------------------------------------------------------------------------------------------+----------
     black |         4          0          4        134         27         66         25         20         45 |       579 
           |     23.53       0.00      13.79      36.51      30.00      19.82      13.02      23.26      46.39 |     25.94 
-----------+---------------------------------------------------------------------------------------------------+----------
     other |         0          0          1          4          1          0          2          2          1 |        26 
           |      0.00       0.00       3.45       1.09       1.11       0.00       1.04       2.33       1.03 |      1.16 
-----------+---------------------------------------------------------------------------------------------------+----------
     Total |        17          4         29        367         90        333        192         86         97 |     2,232 
           |    100.00     100.00     100.00     100.00     100.00     100.00     100.00     100.00     100.00 |    100.00 


           |             industry
      race | Entertain  Professio  Public Ad |     Total
-----------+---------------------------------+----------
     white |        14        616        118 |     1,627 
           |     82.35      74.76      67.05 |     72.89 
-----------+---------------------------------+----------
     black |         3        197         54 |       579 
           |     17.65      23.91      30.68 |     25.94 
-----------+---------------------------------+----------
     other |         0         11          4 |        26 
           |      0.00       1.33       2.27 |      1.16 
-----------+---------------------------------+----------
     Total |        17        824        176 |     2,232 
           |    100.00     100.00     100.00 |    100.00 

第(5)小题

  • 题目

(5). 请使用 label definelabel value 命令,把 race 变量中的数值做如下定义:

  • 1 —— “白种人”
  • 2 —— “黑种人”
  • 3 —— “其它”
  • 解答
label define la_race  1 "white" 2 "black" 3 "other"
label values race la_race

得出结果,可以看出race变量的数值都对应着相应的数字
金融计量第一次作业

第(6)小题

  • 题目

(6). 续别变量转类别变量。

  • (1) 产生一个新变量 G_age,取值规则为:若 age<=37,则 G_age=1;若 37<age<=42,则 G_age=2;若 age>42,则 G_age=3;
  • (2) 为 G_age 变量添加 “数字-文字”对应表,对应关系为:1 “37岁以下”;2 “38到42岁之间”;3 “43岁以上”。
    (提示:可以使用 label definelabel value 两个命令)
  • 解答
gen G_age = 1
replace G_age = 2 if age>37&age<=42
replace G_age = 3 if age>42

label define word_G_age  1 "37岁以下" 2 "38到42岁之间" 3 "43岁以上"
label values G_age word_G_age

可以看到,增加了一个变量G_age
金融计量第一次作业

第2题

请使用 webuse "nhanes2f.dta", clear 命令调入 Stata 数据文件 nhanes2f.dta, 并完成如下分析

第(1)小题

  • 题目

(1). 产生一个新的变量 av_height, 其数值等于各种族(race)妇女的平均身高(height);
提示: 可是使用 egen 命令提供的 mean() 函数。

  • 解答
webuse "nhanes2f.dta", clear
bysort race: egen av_height = mean(height)	
order av_height, after(race)     //把新产生的变量av_height移动到变量race之后

可以看到,数据表中新产生了一个变量av_height,其对应不同的race有着不同的值。
金融计量第一次作业

第(2)小题

  • 题目

(2). 产生一个新的变量 sd_height, 其数值是变量 height 的标准化数值;
提示: 可是使用 egen 命令提供的 std() 函数;或采用外部命令 center 进行处理。后者更为简洁。

  • 解答
egen sd_height = std(height)              //方法一:用egen命令的std()函数
center height, prefix(sd2_) standardize   //方法二:用center命令(优点在于对多个变量进行标准化时只需一行代码)
quietly sum height                        //方法三:用gen命令,利用标准化定义运算
gen sd3_height=(height-r(mean))/r(sd)

可以看出三个算法得到的标准化结果是一样的,但方法三明显是最麻烦的,其需要先对变量进行统计分析,在利用统计结果按照定义运算;方法一在其基础上有了一定的简化,但若需对多个变量进行标准化时,仍需多行代码;方法二最为简洁,对多个变量进行标准化只需一行代码即可。
金融计量第一次作业

第(3)小题

  • 题目

(3). 性别(sex)、种族(race)、所在地区(region)一共可以构成多少种组合(组态别)?每种组合中有多少个样本数?请选用合适的命令列出结果。

  • 解答
bysort sex: tab race region

得到结果,因为变量sex, race, region分别有2,3,4个值,因此一共可以构成24种组合。每种组合的样本数如下表所示。其中第一张表表示性别是男性时raceregion的组合,第二张表表示性别是女性时raceregion的组合。

------------------------------------------------------------------------------------------------------
-> sex = Male

  1=white, |
  2=black, |            1=NE, 2=MW, 3=S, 4=W
   3=other |        NE         MW          S          W |     Total
-----------+--------------------------------------------+----------
     White |       431        474        420        455 |     1,780 
     Black |        26         61         81         29 |       197 
     Other |         1          3          3         21 |        28 
-----------+--------------------------------------------+----------
     Total |       458        538        504        505 |     2,005 


------------------------------------------------------------------------------------------------------
-> sex = Female

  1=white, |
  2=black, |            1=NE, 2=MW, 3=S, 4=W
   3=other |        NE         MW          S          W |     Total
-----------+--------------------------------------------+----------
     White |       431        556        436        513 |     1,936 
     Black |        23         55        106         27 |       211 
     Other |         2          4          4         29 |        39 
-----------+--------------------------------------------+----------
     Total |       456        615        546        569 |     2,186 

第(4)小题

  • 题目

(4). 在变量 tcresult tgresult hdresult corpuscl health sizplace 中,哪些包含缺漏值?各自包含多少个缺漏值?请删除 tgresult hdresult corpuscl 中包含的缺漏值(并集,只要有一个变量包含缺漏值,则删除其所在行的全部观察值)。

  • 解答
ssc install mdesc     //安装外部命令mdesc
mdesc tcresult tgresult hdresult corpuscl health sizplace

得到结果

    Variable    |     Missing          Total     Percent Missing
----------------+-----------------------------------------------
       tcresult |           0         10,337           0.00
       tgresult |       5,293         10,337          51.20
       hdresult |       1,629         10,337          15.76
       corpuscl |          89         10,337           0.86
         health |           2         10,337           0.02
       sizplace |           0         10,337           0.00
----------------+-----------------------------------------------

、另一种方法:用nmissing命令,只输出有缺失值的变量及其缺失值个数

nmissing tcresult tgresult hdresult corpuscl health sizplace
//另一种解法:用nmissing命令,只输出有缺失值的变量及其缺失值个数

得出结果

tgresult         5293
hdresult         1629
corpuscl           89
health              2

可以看到,题目做给的变量中,tgresult, hdresult, corpuscl, health 有缺失值,缺失值个数如上所示。
下面删除缺失值:

egen miss = rmiss(tgresult hdresult corpuscl)
drop if miss==1|miss==2|miss==3
list tgresult hdresult corpuscl miss if mis!=0  //检查是否仍有缺失值未被删除

可以看到,有6146行数据被删除
金融计量第一次作业
另外,执行命令list tgresult hdresult corpuscl miss if mis!=0 时,没有输出项,因此缺失值已全部被删除。

第(5)小题

  • 题目

(5). height 变量的第 25 百分位,第 75 百分位数值是多少?四分位间距是多少?上界和下界分别是多少?

  • 解答
qui sum height,detail
display r(p25)                        //25百分位
display r(p75)                        //75百分位
display r(p75)-r(p25)                 //四分位间距
display r(p75) + 1.5*(r(p75)-r(p25))  //上界
display r(p25) - 1.5*(r(p75)-r(p25))  //下界

得出答案
金融计量第一次作业

第(6)小题

  • 题目

(6). 请绘制 heightweight 变量的 “箱形图”,并作简要对比分析。

  • 解答
graph box weight height

从图中对比可以看出,height只有上侧有离群值且离群值较多,偏离程度大;而weight上下侧均有离群值且离群值较少。
金融计量第一次作业

第(7)小题

  • 题目

(7). 请产生一个新的变量 height_w,该变量是对变量 height 在第 1 和第 99 百分位进行 “缩尾”(winsor) 处理后得到的。

  • 解答
winsor height, gen(height_w) p(0.01)
twoway (histogram height, color(green))       ///
(histogram height_w, color(yellow)),          ///
legend(label(1 "height") label(2 "height_w"))     //图示

/*方法二:
  sum height, detail
  return list
  gen height_w = height
  replace height_w = r(p1) if height_w<r(p1)
  replace height_w = r(p99) if height_w>r(p99)
  方法三:
  winsor2 height, cut(1 99)
*/

得到图示
金融计量第一次作业

附录:完整代码

*1题
sysuse nlsw88.dta,cle2ar
//第(1)小题
ssc install sum2docx
sum2docx age grade wage hours ttl_exp tenure using      ///
    E:\stata15\ado\personal\Assignment1\Table01.docx,   ///
    mean(%6.2f) sd(%6.2f) median(%6.2f) min(%6.2f) ///
    max(%6.2f) title("Table01")
	
//第(2)小题
gen age2 = age^2                     //增加新变量age2
gen ln_wage = ln(wage)               //增加新变量ln_wage
gen wage_hour = wage/hours           //增加新变量wage_hour
egen a_wage = mean(wage)
gen dum = 1                          
replace dum = 0 if wage<=a_wage      //增加虚拟变量dum

//第(3)小题
histogram ttl_exp     //直方图
graph export E:\stata15\ado\personal\Assignment1\His_ttl.png,replace
kdensity ttl_exp      //密度函数图
graph export E:\stata15\ado\personal\Assignment1\Kendi_ttl.png,replace

//第(4)小题
tab industry
tabstat wage hours age, by(industry)
tab race industry,column

//第(5)小题
label define la_race  1 "white" 2 "black" 3 "other"
label values race la_race

//第(6)小题
gen G_age = 1
replace G_age = 2 if age>37&age<=42
replace G_age = 3 if age>42

label define word_G_age  1 "37岁以下" 2 "38到42岁之间" 3 "43岁以上"
label values G_age word_G_age


*2题
webuse "nhanes2f.dta", clear
//第(1)小题
bysort race: egen av_height = mean(height)	
order av_height, after(race)       //把新产生的变量av_height移动到变量race之后
	
//第(2)小题
egen sd_height = std(height)              //方法一:用egen命令的std()函数
center height, prefix(sd2_) standardize   //方法二:用center命令(优点在于对多个变量进行标准化时只需一行代码)
quietly sum height                        //方法三:用gen命令,利用标准化定义运算
gen sd3_height=(height-r(mean))/r(sd)

//第(3)小题
bysort sex: tab race region

//第(4)小题	
ssc install mdesc                                              //安装外部命令mdesc
mdesc tcresult tgresult hdresult corpuscl health sizplace      //方法一:用mdesc命令(显示作用变量的缺失值个数)
nmissing tcresult tgresult hdresult corpuscl health sizplace   //方法二:用nmissing命令(只显示有缺失值的变量及其缺失值个数)

egen miss = rmiss(tgresult hdresult corpuscl)
drop if miss==1|miss==2|miss==3
list tgresult hdresult corpuscl miss if mis!=0

//第(5)小题
qui sum height,detail
display r(p25)                        //25百分位
display r(p75)                        //75百分位
display r(p75)-r(p25)                 //四分位间距
display r(p75) + 1.5*(r(p75)-r(p25))  //上界
display r(p25) - 1.5*(r(p75)-r(p25))  //下界	
	
//第(6)小题
graph box weight height

//第(7)小题
winsor height, gen(height_w) p(0.01)
twoway (histogram height, color(green))       ///
(histogram height_w, color(yellow)),          ///
legend(label(1 "height") label(2 "height_w"))     //图示

/*方法二:
  sum height, detail
  return list
  gen height_w = height
  replace height_w = r(p1) if height_w<r(p1)
  replace height_w = r(p99) if height_w>r(p99)
  方法三:
  winsor2 height, cut(1 99)
*/