Stata 如何确定(复杂)面板图案?

Stata 如何确定(复杂)面板图案?,stata,panel-data,Stata,Panel Data,我的问题与现有的关于Statalist-like的讨论密切相关。我想提出一个新问题,因为我想看看除了连续咒语的数量之外,更复杂的面板模式 比如说,给定一组公司,我想检查该公司在购买一些land>0之前有多少年没有不动产land==0 或者,更复杂地说,公司的财产低于某一水平土地

我的问题与现有的关于Statalist-like的讨论密切相关。我想提出一个新问题,因为我想看看除了连续咒语的数量之外,更复杂的面板模式

比如说,给定一组公司,我想检查该公司在购买一些
land>0
之前有多少年没有不动产
land==0

或者,更复杂地说,公司的财产低于某一水平
土地<0.05*land[s]
的年限,其中
s
指公司购买房地产的年份

我的第一个想法是使用
egen
命令。但与其他常见情况不同,每家公司购买房产的具体时间不同,甚至不存在


我的第二个想法是使用包
xtpatternvar
,稍加修改。然而,由于对Stata编程的了解有限,我不太理解它的源代码

让我们关注您真正的问题,这不是理解
xtpatternvar
(SSC,正如您应该解释的那样),而是在面板数据中确定变量在满足互补条件之前满足每个面板中某个条件的时间。这并不容易,但重要的是,在这里提出问题时,除了特定的例子之外,还要概括。其他人可能不关心土地购买数据,但他们可能有同样的问题

这只是在FAQ讨论各种技术时所讨论问题的几个小转折。我就挑一个。整个FAQ可能值得研究。(进一步说明:请查看StataCorp网站上的常见问题。)

将他们可以直接使用的数据提供给回答问题的人也是一个好主意。在Statalist,人们被要求使用
dataex
(SSC),这里没有理由降低标准。这与

每个面板中的第一次(此处为一年)是每个面板中时间变量的最小值。(在某些数据集中,您可能不需要计算它;您知道它总是一个特定的时间。)第一次满足某个条件也是一个最小值,但现在必须是有条件的。你想要的时间间隔就是它们之间的区别。注意,
xtset
tsset
数据的代码中没有假设;不假设等间距值或平衡面板;并且没有假设在每个面板的开头都有大量的互补值。请注意,对于您的“复杂”问题,解决方案是相同的

clear
input float(firm response year)
1    0 2001
1    0 2002
1   12 2003
1  345 2004
1 6789 2005
2   12 2001
2  345 2002
2 6789 2003
2   12 2004
2   34 2005
end

egen first = min(year), by(firm)

egen first_pos = min(cond(response > 0, year, .)), by(firm)

gen time_to_first_pos  = first_pos - first

list 

     +-------------------------------------------------------------+
     | firm   time   response   year   first_~s   first   time_t~s |
     |-------------------------------------------------------------|
  1. |    1      1          0   2001       2003    2001          2 |
  2. |    1      2          0   2002       2003    2001          2 |
  3. |    1      3         12   2003       2003    2001          2 |
  4. |    1      4        345   2004       2003    2001          2 |
  5. |    1      5       6789   2005       2003    2001          2 |
     |-------------------------------------------------------------|
  6. |    2      1         12   2001       2001    2001          0 |
  7. |    2      2        345   2002       2001    2001          0 |
  8. |    2      3       6789   2003       2001    2001          0 |
  9. |    2      4         12   2004       2001    2001          0 |
 10. |    2      5         34   2005       2001    2001          0 |
     +-------------------------------------------------------------+