stata应用(7)

2020-05-12 08:31

即可以按年分组,然后分别输出各个变量的平均值,总数,标准差,最大最小值,这些option都是可以选择的,比sum要更有选择性。

输入命令:

tabstat asset roa roe,s(mean N sd max min) by(year) c(s)

加了一个c(s)之后,把方向转了一下,统计量在最上面,而之前是变量在最上面。

如果要把做好的表格导入到word里面,直接copy table ,然后到word里面黏贴,然后选中数据,点表格——转换——改变列数即可。

输入命令:

tabstat asset roa roe,s(mean N sd max min) by(year) c(s) noseparator

noseparator——do not use separator line between by() categories 这个option就是把分割线去掉,这样导出到word里面的数据转换后就可以得到正常的表格。

8.计算每一年所有银行的均值,以年分组,画出散点图

输入命令:

by year,sort:egen mroa=mean(roa) 或者输入:bysort year: egen mroa=mean(roa) 创建一个新的变量叫mroa ,mean()是计算均值的函数。

输入命令:

[graph]twoway scatter mroa year

即画出两个变量的散点图,纵轴是均值,横轴是年份。

help graph 看命令

Twoway是有两个坐标,横坐标和纵坐标 Box是箱线图

[G] graph twoway scatteri -- Scatter with immediate arguments Y轴的变量放在最前面,然后是x轴的变量。

输入命令:

twoway scatter mroa year,title(\加一个title的option即在图表上加一个标题。

9.关于论文中的多元回归

***, ** 和*代表显著性,三颗星是 1%的显著性水平,两颗星是 5% 一颗星是 10% 。 三颗星显著性是1%的时候是最显著的。

一元线性回归输入命令: clear

sysuse auto(这个是电脑上自带数据)

regress mpg weight(做回归,mpg是被解释变量,weight是解释变量)

esttab using test.rtf(就是把结果导入到一个文件名叫test.rtf 的word文档里面,蓝色的字体部分可以直接打开word文档。) regress后面紧跟的是被解释变量,后面很多个都是解释变量。

多元线性回归,输入命令: clear

sysuse auto reg mpg weight est store m1

reg mpg weight dis headroom est store m2

reg mpg weight dis headroom foreign est store m3

esttab m1 m2 m3 using test.rtf,replace

表示一个被解释变量mpg,4个解释变量。

即分别多mpg与几个变量做回归,然后分别先存在内存里面,最后再一起导出。

输入命令:

esttab m1 m2 m3 using E:\\Lessons\\Stata11\\\\test.rtf,replace star(* 0.10 ** 0.05 *** 0.01)

replace后面的命令是更改显著性,把原来的* p < 0.05, ** p < 0.01, *** p < 0.001 改成了* p < 0.1, ** p < 0.05, *** p < 0.01 更改显著性是为了找到更准确的度量值。

输入命令:

esttab m1 m2 m3 using E:\\Lessons\\Stata11\\\\test.rtf,replace scalars(N r2_a) star(* 0.10 ** 0.05 *** 0.01)

scalars(N r2_a)是既生成了一个N又生成了一个调整的R^2

2012/6/4

1.交易数据、预测数据(代码、预测的时间)

2.先打开2006年的分析师数据,只保留2006年下半年的报告期数据,输入命令: clear all set mem 200m set more off

use E:\\Lessons\\Stata11\\数据\\Lesson5\\计算分析师人数课程\\txt\\AF_Forecast2006,clear gen date=date(rptdt,\

format date üY_N_D

drop rptdt fenddt rename date rptdt sort stkcd rptdt

keep if rptdt>=mdy(07,01,2006)

把其他变量全部删除,只留下股票代码和报告日期: keep stkcd rptdt

再删除12月份的数据,并把点这样的空值删掉: drop if month(rptdt)==12 drop if rptdt==. sort stkcd rptdt

gen event0=_n(生成一个新的变量,这样后面的矩阵就有三列了。)

3.mkmat是生成矩阵的命令,输入命令: forvalues i=1/8{

mkmat stkcd rptdt if _n<=1000,mat(event`i') drop if _n<=1000 }

把7000多个数据生成8个矩阵,每个矩阵以i命名,mkmat是生成矩阵,变量只有两个,是stkcf和rptdt,每1000个为一个矩阵,每个矩阵叫i,然后把这1000个删除,再把后面1000个生成一个矩阵,直到循环结束。

这个数据量不是很大,可以全部生成矩阵,矩阵是要全部留在内存中的,如果数据太大,就不要全部生成矩阵,只要生成需要的那个,这样就不会太占用空间。

输入命令: matrix dir

可以看刚生成的矩阵

1000行两列,或者124行两列 输入命令:

matrix list event8

即把第八个矩阵列出来:

4.把之前的05年到07年的交易数据读出来,并将07年的数据删掉,只留下05和06年的数据:

use E:\\Lessons\\Stata11\\数据\\lesson1\\05-07,clear gen date=date(trddt,\format date üY_N_D drop trddt

rename date trddt order stkcd trddt sort stkcd trddt

drop if year(trddt)==2007

输入命令:计算加权的市场收益率

by trddt,sort:egen weight=pc(dsmvosd) 先生成一个权重,pc就是计算权重的函数 gen weight_rit=weight*dretnd/100 每个股票的权重乘以其收益率除以100,因为pc代表的权重不是百分比,是百分比乘以100后的整数。

by trddt,sort:egen rmt=total(weight_rit) 把所有的加权的收益率加总起来等于市场收益率。

生成七个小的dta文件(而不是矩阵),每个里面有1000个数据: forvalues i=1/7{

preserve

keep if stkcd>=scalar(event`i'[1,1])&stkcd<=scalar(event`i'[1000,1]) save E:\\Lessons\\Stata11\\数据\\lesson1\\trade`i',replace restore }

这里event里面的stkcd是之前生成的那八个矩阵中对应的event中的股票代码。

Preserve和restore是将原数据还原,即一直都是用原数据生成后续的dta文件,如果不还原的话本来的event2就变成event1了。

event`i'[1,1]是取第一行第一列的值,即第一行的第一个股票代码,event`i'[1000,1]是取第1000行的第一个股票代码,命令的意思就是取这第一个到第1000个股票代码的对应的数据。把这7个dta依次保存。

因为第八个文件中只剩124个变量而不是1000个,所以第八个文件要在循环外执行: keep if stkcd>=scalar(event8[1,1])&stkcd<=scalar(event8[124,1]) save E:\\Lessons\\Stata11\\数据\\lesson1\\trade8,replace


stata应用(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大理石、花岗石湿作施工工艺及检测标准

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: