tcommand mkspline 和时间变量(每日日期)出现问题

问题描述 投票:0回答:1

我需要在 Stata 中创建样条线以进行样条回归,其中结是恐怖袭击的(每日)日期,

spline_before
是袭击前进行的采访(以天为单位),
spline_after
是袭击后的采访攻击。

这是我到目前为止的代码:

mkspline spline_before 20808 spline_after = interviewend

“20808”是 Stata 所处理的攻击日期的数值,因为 Stata 将日期实现为自 1960 年 1 月 1 日以来的天数。

这就是问题所在。由于 Stata 处理日期 (20695-20808) 的方式,变量

spline_before
的值太大。
spline_after
工作正常,可能是因为它的起点是结(20808)。

我猜测要解决这个问题,要么我需要为

spline_before
设置一个起点,要么我需要让 Stata 使用实际日期,而不是数值。

我尝试将

interviewend
转换为日期格式:

gen interviewend = mdy(inwmme, inwdde, inwyye)
format %td interviewend // date format

这并没有改变 Stata 计算日期的方式:据我所知,它只是改变了输出。

date stata spline
1个回答
0
投票

您没有准确解释“太大”在这里意味着什么,或者使用“实际日期”而不是数字日期意味着什么。为了计算样条线,您必须有日期变量的数字表示!

显示格式确实与存储的内容无关,正如本文中详细讨论的那样。

我只需设置您自己的日期变量。

您的日期跨越 2016 年的几个月:

. di %td 20695 " " %td 20808
29aug2016 20dec2016

设置一个新的日期变量,也就是说你的变量减去 20694。我可以预见的唯一问题是为任何图形获得良好的轴标签。

. gen newdate = olddate - 20694 

然后要获得可理解的轴标签,您可以定义说

. label define mylabel 4 "1 Sept" 34 "1 Oct" 65 "1 Nov" 95 "1 Dec" 
. label val newdate mylabel 

并使用选项询问轴标签

xla(4 34 65 95, valuelabel)

该设备可以轻松扩展,为关键日期添加轴标签,例如9月15日、10月15日、11月15日、12月15日。

© www.soinside.com 2019 - 2024. All rights reserved.