Stata:通过滞后的 y 变量缩放 x 变量

Stata: Scale x variable by lagged y variable

我正在尝试通过另一个滞后变量来缩放一个变量。

(IB) 按滞后总资产 (AT) = ROA 缩放

我已经尝试了以下来自 here 的这两种方法。

xtset companyid fyear, year
gen at1 = l.at
gen roa=ib/at1

xtset gvkey year
gen roa=(ib)/(at[_n-1])

第一个返回 1.ta

全为零

第二个似乎在前一个条目上生成值,即使它是另一家公司。我认为这是真的,因为只有第一行有缺失值。我假设每家公司的第一年都应该有一个缺失值。

另外我试过下面这段代码,但它说语法无效。

xtset gvkey year
foreach gvkey { 
gen roa = (ib)/(at[_n-1]) }

我正在使用 compustat,因此它类似于以下内容:

  gvkey|Year |Ticker  | at   | ib   |
-------|-----|--------|------|------|
 001111| 2006| abc    |1000  |50    |
 001111| 2007| abc    |1100  |60    |
 001111| 2008| abc    |1200  |70    |
 001111| 2009| abc    |1300  |80    |
 001112| 2008| www    |28777 |1300  |
 001112| 2009| www    |26123 |870   |
 001113| 2009| ttt    |550   |-1000 |
 001114| 2010| vvv    |551   |-990  |

这很难理解。 1.ta 可能是也可能不是 L.at 的拼写错误。

gvkey字符串吗?在 Stata 标签上,有关于如何提供 Stata 数据示例的非常详细的建议,您没有遵循这些建议。

原则上,你的第一种方法是正确的,所以很难知道哪里出了问题,除了

  1. The second one seems to generate values on the previous entry, even if it's a different company.

完全正确。先前的观察是先前的观察,该命令中没有任何内容涉及或暗示面板结构或 xtsettsset 信息。

  1. 您的 foreach 声明只是胡乱猜测,与 foreach 支持的任何形式无关。 foreach 这里根本不需要:滞后运算符意味着在面板内自动工作。

我这样做了,可能会有帮助。

clear 
input str6 gvkey Year  str3 Ticker   at    ib   
 001111 2006 abc    1000  50    
 001111 2007 abc    1100  60    
 001111 2008 abc    1200  70    
 001111 2009 abc    1300  80    
 001112 2008 www    28777 1300  
 001112 2009 www    26123 870   
 001113 2009 ttt    550   -1000 
 001114 2010 vvv    551   -990  
end 

egen id = group(gvkey), label 
xtset id Year 

gen wanted = at/L.ib 

list, sepby(gvkey) 

     +------------------------------------------------------------+
     |  gvkey   Year   Ticker      at      ib       id     wanted |
     |------------------------------------------------------------|
  1. | 001111   2006      abc    1000      50   001111          . |
  2. | 001111   2007      abc    1100      60   001111         22 |
  3. | 001111   2008      abc    1200      70   001111         20 |
  4. | 001111   2009      abc    1300      80   001111   18.57143 |
     |------------------------------------------------------------|
  5. | 001112   2008      www   28777    1300   001112          . |
  6. | 001112   2009      www   26123     870   001112   20.09462 |
     |------------------------------------------------------------|
  7. | 001113   2009      ttt     550   -1000   001113          . |
     |------------------------------------------------------------|
  8. | 001114   2010      vvv     551    -990   001114          . |
     +------------------------------------------------------------+