【问题标题】:Formula that uses previous value使用先前值的公式
【发布时间】:2013-10-03 16:04:11
【问题描述】:

在 Stata 中,我希望在由变量 ID 定义的块内通过公式计算一个变量,其中包括乘以前一个值。我尝试使用延迟,但这对我不起作用。

在下面的公式中,Y-1 旨在表示上面的值(滞后)。

gen Y = 0 
replace Y = 1 if count == 1
sort ID
by ID: replace Y = (1+X)*Y-1 if count != 1


X          Y         count      ID
.          1          1          1
2          3          2          1
1          6          3          1
3         24          4          1
2         72          5          1
.          1          1          2
1          2          2          2
7         16          3          2

【问题讨论】:

    标签: stata


    【解决方案1】:

    您的代码可以更简洁一些。方法如下:

    输入 X 计数 ID . 1 1 2 2 1 1 3 1 3 4 1 2 5 1 . 1 2 1 2 2 7 3 2 结尾 gen Y = 计数 == 1 bysort ID (count) : 如果 count > 1 则替换 Y = (1 + X) * Y[_n-1]

    虚拟(指标)变量的创建可以利用真或假表达式被评估为 1 或 0 的事实。

    by 之前的排序和后面的by 命令可以压缩为一个。请注意,我已说明在 ID 的块内,count 应保持排序。

    这确实是一个评论,而不是另一个答案,但如果这样呈现就不太清楚了。

    【讨论】:

      【解决方案2】:

      Y-1,公式中的滞后将转换为如下所示。

      gen Y = 0 
      replace Y = 1 if count == 1
      sort ID
      by ID: replace Y = (1+X)*Y[_n-1] if count != 1
      

      【讨论】:

        猜你喜欢
        • 2020-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-29
        • 2023-02-03
        • 2014-07-22
        • 1970-01-01
        相关资源
        最近更新 更多