【问题标题】:How can I set a time variable that takes 2-months (bimonthly data)?如何设置需要 2 个月的时间变量(双月数据)?
【发布时间】:2019-08-19 06:39:28
【问题描述】:

我找不到在 Stata 中定义需要两个月的时间变量的方法。我在其他论坛中找到了定义 3 个月(季度)间隔或将其定义为一个学期的方法,但这不是我想要的。

我有一个这样的数据集

year month observation
2000   1        40
2000   2        10
2000   3        50
2000   4        10

我创建了一个变量bi_month as

year month bi_month observation
2000   1       1        40
2000   2       1        10
2000   3       2        50
2000   4       2        10

但是这里我不能使用下面的代码也不能使用tsset 命令(因为它没有定义双月数据的命令)

 gen mdate = ym(year, bi_month)
 format mdate %tm

因为 Stata 将 bi_month 读取为表示从 1 到 12 的月份。

【问题讨论】:

    标签: datetime time time-series stata


    【解决方案1】:

    双月刊(或双月刊)在我看来并不是一个特别透明的术语。我建议每月两次和每两个月进行两种解释。

    这里的主要问题似乎是希望将月度数据汇总为两个月度数据,特别是 1 月至 2 月、...、11 月至 12 月的时间间隔。为此,我建议以每个月的第一个月代表两个月的周期。

    clear 
    input year month whatever 
    2000   1        40
    2000   2        10
    2000   3        50
    2000   4        10
    end 
    
    gen mdate = ym(year, month) 
    
    gen m2date = 2 * floor(mdate/2) 
    
    format m*date %tm 
    
    list
    
    
         +-------------------------------------------+
         | year   month   whatever    mdate   m2date |
         |-------------------------------------------|
      1. | 2000       1         40   2000m1   2000m1 |
      2. | 2000       2         10   2000m2   2000m1 |
      3. | 2000       3         50   2000m3   2000m3 |
      4. | 2000       4         10   2000m4   2000m3 |
         +-------------------------------------------+
    

    现在这样的数据不能是 tssetxtset 使用新的每两个月的日期,因为每个这样的日期在数据集中并不是唯一出现的。

    但是假设您减少数据集,以便每个两个月的日期仅出现一次(或者,每个面板最多出现一次)。现在tssetxtset 触手可及,只需设置delta(2)

        collapse whatever, by(year m2date) 
    
        tsset m2date, delta(2) 
    
        list 
    
        +--------------------------+
         | year   m2date   whatever |
         |--------------------------|
      1. | 2000   2000m1         25 |
      2. | 2000   2000m3         30 |
         +--------------------------+
    

    用每个两个月的第二个月来表示每个两个月的时间段同样系统化。只需在上面m2date 的配方中添加 1。

    注意:严格来说,xtset 只需要一个面板标识符,并且不要求每个面板最多出现一次。我不确定这是否广泛有用,但这是另一个故事。

    【讨论】:

    • 谢谢,这是一个很好的解决方案!糟糕的是,Stata 没有每月两次的解释
    • 您可以添加分钟、小时、上午/下午、每两周一次、每四个月一次、每两年一次、每四年一次……作为 Stata 不直接支持的时间单位,但您真的缺少什么?使用一两个额外的命令,定义自己的时间基准并不困难。
    猜你喜欢
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    相关资源
    最近更新 更多