我正在尝试使用滚动窗口计算zscore。我需要实际计算3年滚动窗口的标准偏差来计算z得分。下面给出了一个最小的工作示例:
use http://dss.princeton.edu/training/Panel101.dta
xtset country year
rolling sd_x1=r(sd), step(1) window(3) saving(sd_x1, replace) keep(year): sum x1, detail
此后我需要merge
回原始文件。但变量year
不会出现,但会显示列名称日期,其中包含所有缺失值。我正在尝试merge
使用以下命令:
merge 1:1 country year using sd_x1
但是,我得到的错误是找不到变量year,实际上在运行rolling命令时不保留此变量。任何帮助将不胜感激。
答案 0 :(得分:0)
我总是感到惊讶的是,人们对基于三个值的标准偏差有兴趣或信心。
更直接的方法是使用rangestat
(SSC)。语法可能类似于
use http://dss.princeton.edu/training/Panel101.dta
xtset country year
rangestat (sd) sd=x1, interval(year 0 2) by(country)
除了我现在无法测试这个。
这里的关键区别是rangestat
在当前数据集中生成新变量。搜索Statalist档案以获取rangestat
使用的示例。
请注意,在您的示例中,detail
选项是不必要的,因为summarize
本身会产生标准偏差。
您可以扩展此方法以同时获得平均值。