SAS数据清洗之发现异常值
创作时间:
作者:
@小白创作中心
SAS数据清洗之发现异常值
引用
CSDN
1.
https://blog.csdn.net/2401_82677324/article/details/140595901
在数据清洗过程中,发现和处理异常值是一个重要的环节。本文将介绍如何使用SAS软件来检测数据集中的异常值,包括基于均数和标准差的方法,以及基于百分位数的方法。同时,本文还将提供具体的SAS编程代码示例,帮助读者更好地理解和应用这些方法。
1. 确定异常值定义
此处提供两种参考定义:
- 均数-3倍标准差~均数+3倍标准差为正常值,否则为异常
- p5~p95为正常值,否则为异常
2. 编程实现
1)均数-3倍标准差~均数+3倍标准差为正常值
方法一:使用PROC MEANS
proc means data=index mean std;
var height;
output out=std std=std mean=mean;
run;
data _null_;
set std;
call symput("uplimit",strip(put(mean+std*3,3.)));
call symput("lowlimit",strip(put(mean-std*3,3.)));
run;
data index1;
set index;
if height>&uplimit or height<&lowlimit then h_outfl="Y";
run;
使用异常值定义1)只发现一个异常值
方法二:使用PROC SQL
proc sql;
create table index2 as
select *,
case
when height>mean(height)+std(height)*3 or height<mean(height)-std(height)*3 then "Y"
else " "
end as h_outfl
from index;
quit;
结果与方法一输出一致。
2)p5~p95为正常值
proc univariate data=index outtable=stat;
var height;
run;
data _null_;
set stat;
call symput("p5",_P5_);
call symput("p95",_P95_);
run;
data index3;
set index;
if height>&p95 or height<&p5 then h_outfl="Y";
run;
通过百分位数的方法,10%的观测会被定义为异常值,比起1)定义会发现更多异常值。
3. 宏程序实现
%macro outlier_check(data,var);
%local rc dsid;
%let dsid=%sysfunc(open(&data));
%do j=1 %to %eval(%sysfunc(countc(&var,","))+1) ;
%let input_var&j = %upcase(%scan(&var,&j,",")) ;
%if %sysfunc(varnum(&dsid,&&input_var&j)) > 0 %then %do;
%put &&input_var&j EXIST;
proc sql;
create table _&j as
select &&input_var&j,
case
when &&input_var&j>mean( &&input_var&j) +std(&&input_var&j)*3 or &&input_var&j<mean(&&input_var&j)-std(&&input_var&j)*3 then "Y"
else " "
end as &&input_var&j.._FLAG
from &data;
quit;
%end;
%else %put &&input_var&j NOT EXIST;
data &data.4;
merge _1-
%do i=1 %to %eval(%sysfunc(countc(&var,","))+1);
%if %sysfunc(exist(_&i.)) %then _&i;
%end;
;
run;
%end;
%let rc = %sysfunc(close(&dsid));
%mend;
%outlier_check(index,height);
%outlier_check(index,%str(height,weight));
如果变量不存在,程序会忽略该变量。
参考资料
《sas数据统计分析》第六章
热门推荐
木材替代钢可行吗?科学家给出答案,再也不怕钢材短缺了
开背病号服的设计与创新
2024:网络青年创作群体在崛起
抑酸药的合理使用指南
如何将HTML插入到PPT中
红楼一梦:贾元春的生平与象征意义
老人适合喝什么牛奶 适合老人喝的牛奶有哪些
上海十大特色美食介绍
缔结婚姻:从小共同体习惯法到近代国家登记
金曜石五行属性解析:能否与蓝砂石一起佩戴?
季氏将伐颛臾
如何计算电源输出功率及选择合适电源的指南
电石生产安全技术规程解读
浙江“人才码”:一码集成316万人才服务,日均活跃4万人次
和田碧玉猫眼产地鉴别:源自新疆和田地区,探寻其独特来源及品质特征
如何检测与调整节气门位置传感器?安装位置与维护指南
印尼劳动法解读:劳动合同、试用期和解雇赔偿规定
做冷静且有力量的老师,做尊重且有理解力的家长
基于二维材料的器件及芯片技术发展路线
AI 应用之文章转脑图的 N 种姿势
秦皇岛青龙:基础设施建设 刷新山城“颜值”
如何正确使用和配置服务器自签名证书?
如何通过分批建仓策略来优化投资组合?这种建仓策略的灵活性如何?
天下泰山丨碧霞祠:金殿凌云 岱顶明珠
空调排水少是否正常
2024年黑龙江GDP16476.9亿元,同比增长3.2%
科学管理照片怎么拍的好
怎样保养鲜花?
硬件加速技术概述:提升证券极速交易性能的关键
2025气候变化下的春夏秋冬