我在Stata中每周都有Google趋势搜索查询数据。以下是数据的示例:
我将日期字符串转换为日期对象,如下所示:
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
后,我会收到以下信息
但是,我应该没有数据空白,因为它是每周一次。出于某种原因,Stata仍然假设我有每日数据。
由于此问题,我无法对这些变量中的任何一个采取第一个差异。我该如何解决这个问题?
答案 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