多语言展示
当前在线:1715今日阅读:39今日分享:10

如何在stata中进行差分、对数差分和移动平均?

在上一条经验中我们介绍了stata中_n和_N的用法,按照约定,我们来介绍一下如何在stata中对数据进行加工,本章将要介绍的内容包括:_N的妙用、差分、对数差分、移动平均(未来在介绍去除时间趋势时还会用到)本章内容较多,还需要在看完经验之后自己去实践一下。在下一条经验中,我们还会介绍滞后项、前推项、增长率的相关知识。19stata中的_n和_N的简单应用?
工具/原料
1

stata

2

电脑

方法/步骤
1

第一步先打开stata,然后打数据导入到stata当中。需要注意的是,我们需要打开一个有时间变量的数据,又些操作需要用到时间变量。为了演示方便,我们打开系统自带的数据sysuse sp500.dta打开数据查看一下,发现第一列date是表示时间的量。

2

我们想生成最大值,与最大值的差,还有数据的变化范围这三个向量。     sort opengen o_max   = open[_N]             //开盘价的最大值gen o_diff  = open[_n] - open[_N]  // 开盘价与最大值的差gen b_diff = open[_N] - open[1]    // 最大值与最小值之间的范围其中:open[1],表示的就是第一个数值,open[_n]指的就是第n个数。

3

我们想生成差分(这个十分常用,有两种使用办法)第一种: gen n = _n tsset n gen D_open = D.open第二种sort dategen d_open = open[_n] - open[_n-1] list ?_open in 1/10 //此处用了我们之前介绍的小技巧第二种方法十分通用,可以用于所有类型的数据。0如何简便地表示stata中的一个或多个变量?

4

对数差分,这个更是常用!因为如果要是做时间序列的模型(VAR族),都需要对数据做对数差分,这是十分方便的,对数差分的经济意义就是增长率。方法一   gen ln_open = ln(open)   gen D_ln_open = D.ln_open方法二 gen dln_open = ln(open[_n]) - ln(open[_n-1])我平时经常使用第一种方法比较直观,第二种也可以,比较简单可以观察下图,发现生成的数据完全一致

5

移动平均,直接上命令,观察命令就是,我加上我前面内个数加上后面内个数除以3就是我的移动平均,你在我后面,你加上我,加上你后面的内个数再除以3就是你的移动平均。        gen mv3_open = (open[_n-1] + open[_n] + open[_n+1]) / 3        list open mv3_open in 1/10思考个小问题,算完之后会缺几个数?答案是2,缺第一个和最后一个,不懂可以自己输命令试试END

注意事项
1

要多用stata进行练习

2

遇到不会的问题,在stata里输入help查询一下

推荐信息