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数据统计分析》第六章
热门推荐
养仓鼠全面指南:如何选择合适的仓鼠品种并为其创造最佳生活环境的关键步骤?
功放机和音箱的功率如何匹配
建议加92号的车子加了95号汽油,动力更好更省油?是真的吗?
幸福树叶子掉光了怎么救活:一场关于生命与再生的探索
中国石油大庆油田:迎雪抗寒保供忙
肠道菌群-肠-脑轴及其在神经系统疾病中的作用
【全国近视防控宣传教育月】抓早抓小抓关键,更快降低近视率
用手机怎么拍照好看?超强的10种手机拍照构图技巧图解【干货】
手机拍照出现过曝光怎么办?全方位调整指南
西昌邛海湿地公园:自然与人文的华章
机器人十大流行编程语言的介绍
全球数字医院市场前景广阔,预计在未来几年内将继续保持快速增长
山药营养及保健功能
降血脂比较好的8种方法
如何探索真实的自我,享受生活的乐趣?
运算放大器中的共模抑制与电源抑制详解
高频高压差分探头的CMRR为什么这么重要,共模抑制比是什么
脐带血干细胞到底要不要留?
背阔肌最好的训练方法
糖尿病患者饮食指南:红黑榜全解析
一文为你深度解析LLaMA2模型架构
复方黄柏液涂剂有沉淀物还能用吗
白牌小史:当我们谈“白牌”时到底在谈什么?
日本红枫种植全攻略:选地、种植与后期管理
2024年中国工业废水处理行业发展现状分析及未来发展趋势预测
中国古代钱币的这些计重单位你都清楚是什么意思吗?
《节气时病五十二方》:详解耳鸣的中医辨证与防治
鼠标驱动程序在哪里?如何更新鼠标驱动?
怀孕中可用的蟑螂防治方法有哪些?
异地缴纳或第三方代缴社保,发生工伤后存在哪些风险?