? sum fye
(3)利用日期天数求对应的年、月、日
? gen year=year(fye) ? gen month=month(fye) ? gen day=day(fye)
? list yearend fye year month day in 1/10 (4)将三个分别表示年、月、日的变量合并为一个日期变量
? drop fye
? gen fye=mdy(month, day, year) ? format fye %d
? list yearend fye in 1/10
(5) 将一个数值型的时间数据(20080131)转变为ST可识别的时间数据
? gen year=int(date/10000)
? gen month=int((date-year*10000)/100) ? gen day=date-year*10000-month*100 ? list date year month day in 1/10 ? gen edate=mdy(month, day, year) ? format edate %d ? list edate date in 1/10
十九、存贮统计量的内部变量R( )
? sum auditfees
? gen meanadjaf= auditfees-r(mean) ? list meanadjaf in 1/10
SUM命令后常见的几种R()值 r(N) r(sum_w) r(mean) r(var) Number of cases Sum of weights Arithmetic mean Variance r(sd) r(min) r(max) r(sum) Standard deviation Minimum Maximum Sum of variable 显示这些变量值的命令
? sum auditfees, detail ? return list
二十、recode命令(PPT61)
1、产生有多个值的变量的哑变量recode
recode year (min/1999 = 0) (2000/max = 1), gen (yeardum) min/1999表示小于等于1999的值全部赋值为0 2000/max表示大于等于2000的值全部赋为1。
2、对一个连续变量按一定值分为不同间隔的组recode
gen assets_categ=recode(totalassets, 100, 500, 1000, 5000, 20000, 100000, 1000000)。分组的值为每组的上限,包含该值。 sort assets_categ
5
by assets_categ: sum totalassets assets_categ
3、 对一个连续变量按一定值分为相同间隔的组autocode autocode(variable name, # of intervals, min value, max value)
for example: gen assets_categ=autocode(totalassets, 10, 0, 10000) 4、对一个连续变量按每组样本数相同进行分组:xtile xtile assets_categ=totalassets, nquantiles(10)
每组样本不一定完全相同
二十一、一次性计算同一变量不同组别的均值:egen命令
按公司类型先排序,再计算每一类型公司审计费用的均值并赋值给新变量: by companytype, sort: egen meanaf2=mean(auditfees)
? count() ? mean() ? median() ? sum() 二十二、_n和_N命令
1、 显示每个观测的序号并显示总观测数
sort companyid fye capture drop x gen x=_n
capture drop y gen y=_N
list companyid fye x y in 1/30
2、分组显示每个组中变量的序号和每组总的样本数
? capture drop x y ? sort companyid fye ? by companyid: gen x=_n ? by companyid: gen y=_N ? list companyid fye x y in 1/30
3、创建新变量等于每个分组中变量的第一个值或最后一个值
? sort companyid fye
? by companyid: gen auditfees_first=auditfees[1] ? by companyid: gen auditfees_last=auditfees[_N]
? list companyid fye auditfees auditfees_first auditfees_last in 1/30
4、创建新变量等于滞后一期或滞后两期的值
? sort companyid fye
? by companyid: gen auditfees_lag1= auditfees[_n-1] ? by companyid: gen auditfees_lag2= auditfees[_n-2]
? list companyid fye auditfees auditfees_lag1 auditfees_lag2 in 1/30
二十三、转变数据集结构:reshape
不同数据库的数据集结构不同:长型是指同一公司不同年度数据在不同的行。宽型数据是指同一数据不同年度数据在现一行。二者间的转换可通过reshape命令来实现。需要注意的
6
是,在转换过程中对数据集是有要求的,一个公司只能有一个年度数据,否则会出错。
1、长型转换为宽型:
reshape wide yearend incorporationyear companytype sales auditfees nonauditfees currentassets currentliabilities totalassets big6 fye, i(companyid) j(year) 2、宽型转换为长型:
reshape long yearend incorporationyear companytype sales auditfees nonauditfees currentassets currentliabilities totalassets big6 fye, i(companyid) j(year)
3、第二次转换时命令可简化:
? reshape wide ? reshape long
二十四、计算CAR的例子:
已知股票日回报率,市场回报率,事件日,计算窗口期为三天的CAR。 1、定义三天的窗口期:
? sort ticker edate
? gen window=0 if eventdate<.(事件日为0)
? replace window=-1 if window[_n+1]==0 & ticker==ticker[_n+1] ? replace window=1 if window[_n-1]==0 & ticker==ticker[_n-1]
2、计算AR和CAR
? gen ar=ret-vwretd
? gen car=ar+ar[_n-1]+ar[_n+1] if window==0 & ticker==ticker[_n+1]
ticker==ticker[_n-1]
3、检验
? list ticker edate ret vwretd ar car window if window<.
二十五、means 的T检验:
1、检验总体上big6的审计收费有无显著不同
? use \? gen lnaf=ln(auditfees) ? by big6, sort: sum lnaf ? test lnaf, by (big6)
2、分年度比较big6的审计收费有无显著不同,加入by year命令。
? gen fye=date(yearend, \? format fye %d ? gen year=year(fye) ? sort year ? by year: ttest lnaf, by(big6)
3、均值等于特定值得的T检验:
? sum lnaf ? ttest lnaf=2.1
二十六、meadian的显著性检验:
1、获取中位数的命令:
by big6, sort: sum lnaf, detail by big6, sort: centile lnaf
7
&
2、中位数检验:
? median lnaf, by(big6) ? ranksum lnaf, by(big6)
二十七、列联表检验:
1、创建列联表的命令:
? tabulate companytype big6, row
第一个变量是表的最左侧一列的项目,第二个变量是表的第一行的项目。 2、两变量之间的相关性检验:chi2
tabulate companytype big6, chi2 row
3、相关矩阵:
pwcorr lnaf big6 year listed 4、列出相关矩阵并进行符号检验 pwcorr lnaf big6 year listed, sig
5、在矩阵中列出观测数
? pwcorr lnaf big6 listed if year==2000, sig obs 二十八、创建一个不包含缺失值的数据集
1、无缺失值的变量值为1,至少有一个的为0
gen samp=1 if lnaf<. & big6<. & year<. & listed<.
2、缺失值的变量值表示同一行中缺失值的个数
egen miss=rmiss(lnaf big6 year listed) sum miss, detail 二十九、图形 1、直方图
? histogram incorporationyear, width(1) ? histogram incorporationyear, bin(147)
width表示分一小份的宽度。bin表示分成的份数。改变宽度值可以使图像看起来更合适。
? 选择起始点和间隔宽度:hist lnaf if lnaf>=0 & lnaf<=5, width (0.25)
? 选择描述横轴和纵轴的单位和数据标识:hist lnaf if lnaf>=0 & lnaf<=5, width (0.25)
xlabel(0(0.5)5)
? 是否与正态分布一致:hist lnaf if lnaf>=0 & lnaf<=5, width(0.25) normal
2、散点图(scatter)
? scatter lnaf lnta
第一个变量是纵轴,第二个变量是横轴。
? twoway (scatter lnaf lnta, msize(tiny)) (lfit lnaf lnta) 在散点图上加入最适合的一条直线。 三十、缩尾处理winsor
. winsor rev, gen(wrev) p(0.01)0.01代表去掉的百分数。 Winsor rev, gen(wrev) h(5),5代表去掉的个数
8
相关推荐: