stata应用(4)

2020-05-12 08:31

先创建出年的数值型数据

gen lnrit=ln(1+rit)创建ln函数,其值等于收益率加1,将连乘的算法转换成连加

dow(date)<3是如果这一天代表的星期几是小于三的(即为星期一和星期二的时候)把这一天代表的第几周的周数减一,这样得到的就是我们以某一周的星期三为第一天,下一周的星期二为最后一天所代表的一种新的周数。

输入命令:

by stkcd year week,sort:gen week_rit=sum(lnrit)

即以stkcd year week这三个变量分组,把这些组里面的,即每一股票的每一年的每周的lnrit值全部加起来。

输入命令:

replace week_rit=exp(week_rit)-1

最后再把ln函数变成e*ln,再把得到的值减1,得到最终周收益率的结果。 类此于rit,计算rmt的周收益率 输入命令:

capture drop year gen year=year(date) gen lnrmt=ln(1+rmt)

by stkcd year week,sort:gen week_rmt=sum(lnrmt) replace week_rmt=exp(week_rmt)-1

by stkcd year week ,sort:keep if _n==_N

其中不需要再输入:replace week=week-1 if dow(date)<3 不然第一个周数的值就变成-1了。

说明:by stkcd year week,sort:gen week_rmt=sum(lnrmt) 由于sum是累加计算,所以算出来的每一周的周收益率是不一样的,这样才跟每天的数据对应起来,才有意义;而如果用的是total函数的话,算出来的每一周的几个收益率就是一样的。这样我们可以把一周前面的数据都删除,只留下最后一条记录,这条记录就等于用sum算出来的周收益率。

输入命令:

by stkcd year week ,sort:keep if _n==_N

即把其他数据都删掉,最后只留下每一周的最后一条数据,把其他一样的数据都删除。 _n==_N的意义在于:_n取值是从1到N,现在给n赋值,使他等于N,大N就是最后一个值,即把数据都保留最后一个。

因为每一年的第一周和最后一周的股价波动大,代表性不强,

所以先把无意义的数据,即是.的数据删掉,再把第一周及以前的和最后一周及以后的零散数据都删掉。 输入命令:

drop if week_rit==.|week_rmt==. drop if week<=1|week>=51

5.单因素模型,求一元回归模型 输入命令:

regress week_rit week_rmt

week_rit是被解释变量;week_rmt(之前用错了,应该用rmt1,即应该用加权平均值) 算出来的week_rmt的系数coef0.9866就是CAPM模型里面的贝塔值。 报告结果有三部分,都是计量里面的东西,回去复习。 输入命令:

by stkcd,sort:regress week_rit week_rmt 是对每个公司的回归,不同股票输出不同的贝塔值。

6.在每次by前都记得要sort一下,by后面也要sort一下,而by后面最好加一个by date,sort:

这次大家的结果一致,过程见第五次课改进版!

2012/5/29

1.计算每一年每一公司有多少个分析师对他进行评级 Stkcd:证券代码 Rptdt:报告公布日 Fenddt:预测终止日 Feps:每股收益 Ananm:分析师姓名

2.把四个txt文件导入并转换成dta文件,并全部合并起来。 用之前学过的命令,即foreach循环

3.将两个字符型的日期,一个报告期,一个预测期都转成数值型的日期; 并改变其显示格式,同时将原变量删除,再重命名。 输入命令:

gen date=date(rptdt,\format date üY_N_D drop rptdt

rename date rptdt

order stkcd rptdt

gen date=date(fenddt,\format date üY_N_D drop fenddt

rename date fenddt order stkcd rptdt fenddt

并且将生成的两个日期再生成其对应的年变量,分别命名为ryear和fyear 输入命令:

gen ryear=year(rptdt)——报告期年份 gen fyear=year(fenddt)——预测期年份

4.保留ryear和fyear之间的差距在0和1之前的数据,这样的数据准确性比较高 先生成一个变量,这个变量等于两个年份之差 输入命令:

gen apartyear=fyear-ryear

输入命令:

keep if apartyear==0|apartyear==1 即保留apartyear的值为0或者1的数据

5.split命令,以逗号为界把这些变量分开

输入命令:

split ananm,parse(\

save E:\\Lessons\\Stata11\\数据\\Lesson5\\计算分析师人数课程\\whole.dta,replace split后面先跟要分离的变量的名字,然后在输入变量分隔的符号。

命令解释:把分析师名字里面每一条记录里的人名都分开来,生成几个新的变量,保证每个变量里面只有一个名字。并将这些数据全部保存到一个dta文件里。

但是现在人名是横向的,要把所有的单个的姓名放到一列里面。 输入命令: clear all

命令说明:

forvalues i=1(1)6——小括号里面的1代表一个步长,也可以写成1/6

keep stkcd fenddt brokern fpe febit fturnover brokercd fyear ananm`i' rptdt feps fnetpro febitda fcfps ryear apartyear

即把数据中除了ananm的所有变量保留,每次只留下ananm1,或者2,3一直到6,然后将ananm`i’重命名成ananm,并将其保存成以,123456命令的各个dta文件。最后得到六个dta文件。

合并数据:即将以上六个dta文件合并成一个总文件 输入命令:

或者

即先打开第一个文件,再将第2到6个文件与其合并,合并完成后循环结束,然后再保存。

一般以数字命名的dta文件都用forvalues执行循环,这样只需输入i=2/6,不用再输入其单独的名字,比较方便;而如果是其他文件型dta文件则一般用foreach循环。

2012/5/30 接上节课

1.输入命令:

use E:\\Lessons\\Stata11\\数据\\Lesson5\\计算分析师人数课程\\ananm,clear 打开上次保存的合并好的总分析师名字的文件

输入命令: drop if ananm==\

删掉所有空白的没有意义的数据,记得是双等号

输入命令:

duplicates drop stkcd ryear ananm,force

或者输入:

by stkcd ryear ananm,sort:keep if _n==1 把同一只股票同一报告年份的同一分析师,这三者完全一样的数据删掉,只保留第一个数据。

以上两个命令的结果是一样的,第二个命令的意思就是以股票,年份,人名分组,只保留这些变量里面全部相同的记录里面的第一条,其他都删除。

输入命令:

capture drop ananmber

by stkcd ryear,sort:gen ananumber=_N 或者输入命令:

by stkcd ryear,sort:egen ananumber=count(ananm)

即按照股票代码,报告年份排序,并以这两个变量分类,创建一个变量叫ananumber,让其等于_N,这样就得到每只股票在每一报告期年份所对应的分析师的名字和人数。

2.常用的egen后面跟的函数形式*total()count()sd()mean()p10()p25()median()

新任务:

3.分离列里面的人名和基金代号 首先导入历任基金经理txt文件 输入命令: clear all set mem 200m set more off

insheet using E:\\Lessons\\Stata11\\数据\\Lesson7\\基金经理\\历任基金经理.txt,clear

然后把第一行的表头删掉,输入命令 drop if _n==1

*或者输入:drop in 1(如果删除1到n很多行的话,就输入 drop in 1/n)

把前面两列v1 v2的名字改了,输入命令: rename v1 fund_id rename v2 fund_name

4.real()函数可以把字符型的数据转化成数值型的数据

5.substr()是提取字符串的一部分(取子串,第一个变量就是定义母串)

substr(var,1,4)代表从第一个开始提取,一直到第四个

var代表提取的数据是属于哪一个变量,即母串;中间的数字代表要提取的子串是从第几个开始的,最后面的一个数字代表总共要提取的数据个数,即子串的长度。

输入命令:

gen r=real(substr(fund_id,1,1))==. 生成虚拟变量:

r是一个虚拟变量,第一个等号是赋值等号,第二个是逻辑等号,对后面的命令进行判断,这是一个逻辑表达式:

substr(fund_id,1,1)是提取一列变量的第一个数据,只提取这一个:


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

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

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

马上注册会员

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