stata:时间变量格式转换

时间序列是经济金融类研究最常用的数据类型,时间变量的转换和设定一般是初学者最为头大的问题,本文在这里详尽的展示有关时间变量处理、转换以及格式设定的相关问题,话不多说直奔主题。另外一个版本发在了CSDN,可以同步查阅。

1.日期格式,表示方式




grafana时间变量 时间变量如何设置_grafana时间变量


2.由其他变量转为时间变量

一般导入stata的时间变量都是字符型,需要将其转化为stata可识别的时间变量

此时一般用date() daily() weekly() monthly quarterly()等函数将其直接转化为数值型时间变量。


grafana时间变量 时间变量如何设置_java时间格式转换_02


备注:

如果时间字符的形式为“1975/12/27”,对应的形式为年月日,YMD,如果顺序发生了改变,后面的mask也对应调整即可。

如果时间字符中有 "-","/","jul"等字符的时候,上述函数可以直接识别,如果不能识别的情况,如表所示:此时上述函数将会失效,通过以下几种方法处理

方法一:利用subinstr()函数将"年""月"等字符替换为"-""/"等字符,转换为var1和var2的形式,然后即可利用上述函数处理。

方法二:利用split()函数,在"年""月"处分开,变成year和month,然后利用日期合成函数进行合成。

方法三:利用substr()函数分别提取前对应的年和月,然后利用日期合成函数

方法四:修改数据原始文件中,修改显示格式,然后重新读取。

方法五:直接正则表达式函数,进行提取或者替换。


grafana时间变量 时间变量如何设置_java时间格式转换_03


3.mask类型

mask设定日期和时间变量的顺序,比如年-月-日或是 日-月-年等。各个命令允许的mask为下列代码的各种组合。


grafana时间变量 时间变量如何设置_时间序列_04


4.直接生成时间变量

如生成季度时间变量和月度时间变量

egen qdate=seq(), from(143) to(162),但是这种方式不好用,需要提前知道基期的时间流逝数量,所以非常不方便。以下是常用的方式:

gen qdate=tq(1995q4)+_n-1

gen mdate=tm(1998m1)+_n-1

tsset mdate, monthly


grafana时间变量 时间变量如何设置_java时间格式转换_05


5.时间序列的定义

将时间变量设定为stata能够识别顺序的时间序列

tsset timevar, options

optiongs可以根据时间类型选取不同的选项

如:clocktime, daily, weekly, monthly, quarterly, harfyearly, yearly, generic

6.提取时间成分

从时间变量中提取对应的年、月、日、周、季度等时间元素。

但是该系列函数只能对完整年月日形式的时间变量(日期)进行操作,其他形式的时间变量(如年月)需要转化为年月日的形式方可进行操作。


grafana时间变量 时间变量如何设置_java时间格式转换_06


7.根据时间成分合成完整的时间变量(提取时间成分的逆向操作)

已知时间变量的成分,可以对应合成相应的时间变量。

如,已知年Y,月M,可以根据ym(Y,M)合成时间变量


grafana时间变量 时间变量如何设置_时间序列_07


8.时间序列频率的转换

转换的核心是将不同频率的数据通过中间日期变量(年月日形式)进行转换。

如月m转化为周w,其思想是先将月m转化(dofm(m))为日d,然后在d的基础上在转化wofd(d)=wofd(dofm(m))为周w。


grafana时间变量 时间变量如何设置_时间序列_08


9.时间变量显示形式

时间序列格式格式设定

3)自己设定不同的显示格式

日期的显示格式 %d (%td) 定义如下:

%[-][t]d<描述特定的显示格式>

具体项目释义:

“<描述特定的显示格式>”中可包含如下字母或字符

c y m l n d j h q w _ . , : - / ' !c

C Y M L N D J W

定义如下:

c and C 世纪值(个位数不附加/附加0)

y and Y 不含世纪值的年份(个位数不附加/附加0)

m 三个英文字母的月份简写(第一个字母大写)

M 英文字母拼写的月份(第一个字母大写)

n and N 数字月份(个位数不附加/附加0)

d and D 一个月中的第几日(个位数不附加/附加0)

j and J 一年中的第几日(个位数不附加/附加0)

h 一年中的第几半年 (1 or 2)

q 一年中的第几季度 (1, 2, 3, or 4)

w and W 一年中的第几周(个位数不附加/附加0)

_ display a blank (空格)

. display a period(句号)

, display a comma(逗号)

: display a colon(冒号)

- display a dash (短线)

/ display a slash(斜线)

' display a close single quote(右引号)

!c display character c (code !! to display an exclamation point)

样式1:


grafana时间变量 时间变量如何设置_hive 时间戳转换日期格式_09


样式2:


grafana时间变量 时间变量如何设置_java时间格式转换_10


目前我常用的是%tdCCYY-NN-DD 可以等价于 %tdCY-N-D

常用的还有%tdCCYY/NN/DD

主要参考文献

[1] :王群勇,STATA应用高级培训教程, 南开大学数量经济研究所

[2]:Cameron A C, Trivedi P K. Microeconometrics using stata[J]. Indicator, 2009, 2: 47.

[3]:Rabe-Hesketh S, Everitt B. Handbook of statistical analyses using stata[M]. Chapman and Hall/CRC, 2003.

[4]:连玉君,培训讲义

[5]:陈强. 高级计量经济学及 Stata 应用[M]. 高等教育出版社, 2014.