如何在stata中进行差分、对数差分和移动平均?
来源:网络收集 点击: 时间:2024-05-01第一步先打开stata,然后打数据导入到stata当中。
需要注意的是,我们需要打开一个有时间变量的数据,又些操作需要用到时间变量。为了演示方便,我们打开系统自带的数据
sysuse sp500.dta
打开数据查看一下,发现第一列date是表示时间的量。


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

我们想生成差分(这个十分常用,有两种使用办法)
第一种:
gen n = _n
tsset n
gen D_open = D.open
第二种
sort date
gen d_open = open - open
list ?_open in 1/10 //此处用了我们之前介绍的小技巧
第二种方法十分通用,可以用于所有类型的数据。

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

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

要多用stata进行练习
遇到不会的问题,在stata里输入help查询一下
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_642013.html