[英]Calculating standard deviations of past entries for all entries for multiple variables
我的數據集如下所示:
date var1 var2 var3
01/01/2000 20 . .
02/01/2000 15 . .
03/01/2000 3 . .
. . . .
. . . .
. . . .
26/01/2023 3 . .
我想生成變量來測量輸入前 90 天 window 變量的標准差。 例如,我想要一個變量,它告訴我在 2023 年 1 月 26 日之前的 90 天內,變量 1 的條目的標准差是 x。 我希望針對每個變量的每個觀察結果。 我不需要前 90 個條目的 sd。
此外,我有大量變量,因此我想foreach var in
來執行此操作。 我將不勝感激任何意見。
無論您的日期是 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)
的類似物。
在實踐中也要求計數總是一個好主意。
這只是字面上的日期變量。 對於每日數據,您通常需要仔細考慮定義,尤其是在周末和節假日沒有值的情況下。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.