【问题标题】:Calculating standard deviations of past entries for all entries for multiple variables为多个变量的所有条目计算过去条目的标准差
【发布时间】:2023-01-26 21:49:36
【问题描述】:

我的数据集如下所示:

  date        var1      var2     var3
01/01/2000      20       .         .
02/01/2000      15       .         .
03/01/2000      3        .         .
    .           .        .         .
    .           .        .         .
    .           .        .         .
26/01/2023      3        .         .

我想生成变量来测量输入前 90 天窗口变量的标准差。例如,我想要一个变量,它告诉我在 2023 年 1 月 26 日之前的 90 天内,变量 1 的条目的标准差是 x。我希望针对每个变量的每个观察结果。我不需要前 90 个条目的 sd。

此外,我有大量变量,因此我想使用 foreach var in 循环执行此操作。我将不胜感激任何意见。

【问题讨论】:

  • 所有日期都由一行表示吗?这样的前 90 行总是代表前 90 天?或者它可以是差距?还是重复的日期?

标签: loops stata


【解决方案1】:

无论您的日期是 Stata 每日日期(您需要)还是字符串还是带有值标签的整数,您的数据示例都含糊不清。

来自 SSC 的 rangestat 可以做到这一点。就它而言,您可以在命令行上指定所有您想要的。循环不是执行此操作所必需的。

这是一个可重现的例子。

webuse grunfeld, clear

foreach v in invest mvalue kstock {
    rangestat (count) count_`v' = `v' (sd) sd_`v'=`v'  , int(year -5 -1) by(company)
}

在您的情况下,您显然想要 -90 而不是 -5。您可能不需要 by(company) 的类似物。

在实践中也要求计数总是一个好主意。

这只是字面上的日期变量。对于每日数据,您通常需要仔细考虑定义,尤其是在周末和节假日没有值的情况下。

【讨论】:

  • @TheIceBear 感谢您的编辑。
猜你喜欢
  • 2021-12-30
  • 1970-01-01
  • 2015-12-25
  • 2015-01-24
  • 1970-01-01
  • 1970-01-01
  • 2018-04-27
  • 1970-01-01
  • 2013-04-28
相关资源
最近更新 更多