[STATA]面板数据移动平均或方差

cd   C:\Users\86189\Desktop                     //路径
use  data.dta,clear                             //原始数据
xtset indexnumber year      
//方法一:
local vlist roa roe                             //处理roa roe变量
foreach v of local vlist{                       // 1/t-1,计算3年的数据,设置为2
    forv i=1/2{ 
    by indexnumber: gen `v'`i'=`v'[_n-`i']
    }
    egen sd_`v'=rowsd(`v'*)
}
 drop roa1 roa2 roe1 roe2
save data1.dta,replace
 
 //方法二:
local vlist roa roe                           //处理roa roe变量
foreach v of local vlist{
    use   data.dta,clear 
    xtset indexnumber year
    rolling sd_`v'=r(sd),w(3) saving(`v',replace):sum roa  //3年滚动,生成新的文件
 
    use `v'.dta,clear
    rename start year
    keep   indexnumber year sd*
    xtset  indexnumber year
    save `v'.dta,replace
}
use   data.dta,clear    
local vlist roa roe                           //处理roa roe变量
foreach v of local vlist{
    merge 1:1 indexnumber year using `v'.dta,nogen
}
save data1.dta,replace
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。