阅读权限 255 威望 0 级论坛币 966 个 通用积分 6.3763 学术水平 26 点 热心指数 42 点 信用等级 10 点 经验 7812 点 帖子 300 精华 0 在线时间 552 小时 注册时间 2005-8-11 最后登录 2021-5-20
这是我目前的做法:
proc sort data = have out=A1; run;
proc expand data=A1 out=A1 method = none;
id date;
convert P = P_lag1 / transformout=(lag 1);
convert P;
convert P = P_lead1 / transformout=(lead 1);
run;
data A1; set A1;
ret = log(P) - log(P_lag1);
ret_lead = log(P) - log(P_lead1);
run;
* Calculate standard error, which is used to refer to an estimate of that standard deviation,
derived from a particular sample used to compute the estimate;
proc means data=A1 noprint;
var ret;
output out=std std=std;
run;
data A2 (drop= _type_ _freq_); merge A1 std;
if abs(ret)> std and abs(ret_lead) > std then do; p_sm = (p_lag1+p_lead1)/2; extreme =1; end;
else do; p_sm=p; extreme=.; end; 复制代码