使用每周时间序列数据解决Stata数据中的差距

时间:2016-11-07 01:38:39

标签: stata

我在Stata中每周都有Google趋势搜索查询数据。以下是数据的示例:

enter image description here

我将日期字符串转换为日期对象,如下所示:

gen date2 = date(date, "YMD")
gen year= year(date2)
gen w = week(date2)
gen weekly = yw(year,w)
format weekly %tw

我现在要宣布" date2"作为我的时间序列参考,所以我做了以下内容:

tsset date2, weekly

但是,使用tsreport后,我会收到以下信息

enter image description here

但是,我应该没有数据空白,因为它是每周一次。出于某种原因,Stata仍然假设我有每日数据。

由于此问题,我无法对这些变量中的任何一个采取第一个差异。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

我同意William Lisowski的一般建议,但有不同的具体建议。

每周都有每周数据,每周都有标记。

由于

中提到的详细记录的原因,Stata周很可能对您没什么用处
search week, sj 

将披露。具体来说,

SJ-12-4 dm0065_1  . . . . . Stata tip 111: More on working with weeks, erratum
        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  N. J. Cox
        Q4/12   SJ 12(4):765                                     (no commands)
        lists previously omitted key reference

SJ-12-3 dm0065  . . . . . . . . . .  Stata tip 111: More on working with weeks
        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  N. J. Cox
        Q3/12   SJ 12(3):565--569                                (no commands)
        discusses how to convert data presented in yearly and weekly
        form to daily dates and how to aggregate such data to months
        or longer intervals

SJ-10-4 dm0052  . . . . . . . . . . . . . . . . Stata tip 68: Week assumptions
        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  N. J. Cox
        Q4/10   SJ 10(4):682--685                                (no commands)
        tip on Stata's solution for weeks and on how to set up
        your own alternatives given different definitions of the
        week

发出search命令将为您提供每篇论文的.pdf副本的链接。

我建议简单

gen date2 = daily(date, "YMD")
format date2 %td
tsset date2, delta(7) 

daily()date()功能相同,但我认为这个名称对所有人来说都是一个更好的信号。更重要的细节是delta(7)足以指示间隔7天的每日数据,这正是您所拥有的。

要扩展您遇到的问题:当您转换为每日日期时,您会得到一个数字变量,其值为18755,步长为7到您的上一个日期。然后你通过你的tsset ..., weekly告诉Stata这些真的是几个星期。 Stata使用1960年初的所有日期的起源。因此,Stata正在研究从1960年初开始的18755周(等)。并且您的数字变量仍然是7的步骤。因此,Stata错误解释您的数据的原因是您给它提供了错误的信息。 tsset永远不会更改日期变量;它只是在你指示的时候解释它。

另请注意,您创建了每周日期变量,但之后没有使用它。这也不是一个好的解决方案,但它会更接近你想要的。看来你的所有日期都是星期日,所以有些年份会有53天,而其他年份会有52天; Stata过去几周都不是这样。

答案 1 :(得分:0)

如果问题包括数据列表而不是图片,那么问题会更有帮助,以便其他人可以测试和演示正确的代码。

话虽如此,您需要仔细检查输出help datetime,以提高您对如何使用Stata内部格式(SIF)日期和时间数据以及每周的含义的理解。日期"在Stata。我相信以下内容会让你沿着正确的道路前进。

gen date2 = date(date, "YMD")
gen weekly = wofd(date2)
format weekly %tw

或少一步

gen weekly = wofd(date(date, "YMD"))
format weekly %tw