面板数据中的非活动持续时间变量(Stata)

面板数据中的非活动持续时间变量(Stata),stata,panel-data,Stata,Panel Data,我有一个过去30年美国制造业工人的数据集,我对以下变量特别感兴趣: 第一次制造作业的月份和年份,分别记录并命名为“开始月份作业1”和“开始年度作业1” 第一个制造工作的结束月份和结束年份,分别记录并命名为“结束月份工作1”和“结束年度工作1” 离职原因(如退休、解雇、工厂关闭等),称为“离职原因” 第二次制造作业的月份和年份,分别记录并命名为“开始月份作业2”和“开始年度作业2” 离开第二个制造工作的月份和年份,分别记录并命名为“结束月份工作2”和“结束年度工作2” 我试图创建一个变量来衡量经济

我有一个过去30年美国制造业工人的数据集,我对以下变量特别感兴趣:

  • 第一次制造作业的月份和年份,分别记录并命名为“开始月份作业1”和“开始年度作业1”
  • 第一个制造工作的结束月份和结束年份,分别记录并命名为“结束月份工作1”和“结束年度工作1”
  • 离职原因(如退休、解雇、工厂关闭等),称为“离职原因”
  • 第二次制造作业的月份和年份,分别记录并命名为“开始月份作业2”和“开始年度作业2”
  • 离开第二个制造工作的月份和年份,分别记录并命名为“结束月份工作2”和“结束年度工作2”
  • 我试图创建一个变量来衡量经济不活跃/无所事事的持续时间。我将“经济不活跃的持续时间”定义为离开第一份工作和开始另一份工作之间的时间差。我已经创建了一个变量,该变量用年来完成,如下所示:

    gen econ_inactivity_duration_1 = start_yr_job_2 - end_yr_job_1 
    replace econ_inactivity_1 = 2018 - end_yr_job_1 if missing(start_yr_job_2 ) /// In cases where a worker never starts a second job until 2018, which is the latest year measured in the survey.
    
    但是,我想实际创建一个经济变量,该变量考虑了开始和结束工作的月份和年份的差异。例如,第1行中的工作者的持续时间是2个月,从1993年5月到1993年7月,而不是零,这是我上面的代码计算的

    dataex start_month_job_1 byte start_yr_job_1 byte end_month_job_1 byte end_yr_job_1 byte start_month_job_2 byte start_yr_job_2 byte end_month_job_2 byte end_yr_job_2 byte leaving_reason
    
     3 1990  5 1993  7 1993  4 1994 "Firm shutdown"
     1 2003  7 2015  .    .  .    . "job automation"
    98 1979 98 2004  .    .  .    . "Firm shutdown"
    98 1975 98 2010 98 2010 98 2015 "job automation"
     1 1983 12 1985  1 1986  .    . "Firm shutdown"
    98 1996 98 1998  .    .  .    . "Firm shutdown"
    

    也许有更好的方法,但这里有一个粗略的方法

    * Data example
    input end_month_job_1 end_yr_job_1 start_month_job_2 start_yr_job_2
    5 1993 7 1993
    end
    
    * Calculate months since 1960
    gen j1_end = (end_yr_job_1 - 1960) * 12 + end_month_job_1
    gen j2_start = (start_yr_job_2 - 1960) * 12 + start_month_job_2
    
    * Calculate difference
    gen wanted = j2_start - j1_end
    
    * Check difference is positive
    assert wanted > 0
    
    list
    
         +------------------------------------------------------------------------+
         | end_mo~1   end_yr~1   s~mont~2   s~yr_j~2   j1_end   j2_start   wanted |
         |------------------------------------------------------------------------|
      1. |        5       1993          7       1993      401        403        2 |
         +------------------------------------------------------------------------+
    

    我会直接按照每月日期工作:
    gen-wanted=ym(开始你的工作2,开始你的工作2)-ym(结束你的工作1,结束你的工作1)
    。我不知道
    ym()
    函数。Cheers.98看起来是未知的,所以你可以忽略这些观察结果,随机估算月数,或者猜测7是一个粗略的接近平均值。注意同一年的插补月份。谢谢,事实上,我排除了未知值“98”的观测值。然而,我很好奇,介意详细说明一下你关于在同一年中计算月份的警告吗?假设你不知道在同一年开始和结束的工作的开始和结束月份。然后,重要的是,任何插补(例如,从1…12中提取)都必须尊重这样一个事实,即结束之后是开始。如果您为开始和结束输入7,则所有此类作业的持续时间均为0。你可以计算1…6作为开始,7…12作为结束。可能有关于这个的文献,但我不知道它说了什么。很好的解释,谢谢!或者(更简单)如果工作在同一年开始和结束,则不计算开始和结束时间,但您不知道时间:只需计算从0(开始和结束在同一个月)到11(1月到12月)的持续时间。