[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

你可能感兴趣的:([STATA]面板数据移动平均或方差)