【问题标题】:Removing outliers from sas dataset从 sas 数据集中删除异常值
【发布时间】:2015-12-24 02:02:09
【问题描述】:

我已使用此代码将 excel 表加载到 SAS -

FILENAME REFFILE "/folders/myfolders/subji.xlsx" TERMSTR=CR;
          PROC IMPORT DATAFILE=REFFILE
          DBMS=XLSX
          OUT=ds;
          GETNAMES=YES;
          RUN;

然后使用此排序过程对其进行排序以对其应用重复测量分析 -

PROC SORT DATA=ds;
BY subject  Color_Compatibility sameloc;
RUN;

然后,使用此代码运行单变量方差分析来检索统计数据和效果 -

PROC UNIVARIATE DATA=ds NOPRINT;
VAR resprt;
OUTPUT OUT=unids1 MEAN=resprt;
BY subject Color_Compatibility sameloc;
where Color_Compatibility >0
and practice = 0
and outlier = 0
and respAC=1;
RUN;

异常值列当前是通过 excel 计算的,但我注意到 excel 的 STDEV 函数给出的值并不准确。出于这个原因,我想用 SAS 创建一个异常值变量,然后从我的分析中删除每个异常值行(使用 +/-2.5 STDEV 作为基准)。 怎么可能做到这一点? 谢谢。

【问题讨论】:

  • 请发布您尝试过的与问题相关的内容。
  • 你的意思是我通过 excel 尝试过的?
  • 到目前为止我已经添加了这个代码- Proc sql noprint; select std(resprt) into : std_resprt from ds group by subject; select mean(resprt) into : mean_resprt from ds group by subject;放弃;计算每个主题的std和mean,然后将这些谓词添加到proc单变量的where子句中- and ((resprt - &mean_resprt)/&std_resprt) > -2.5 and ((resprt - &mean_resprt)/&std_resprt)
  • 您应该将代码添加到您的问题中,而不是 cmets。

标签: statistics sas outliers


【解决方案1】:

这是一种在一步中使用 proc sql 来识别异常值的方法。您可以在 SQL 中计算聚合统计信息,尽管它确实会在您的日志中留下有关重新合并的警告。关键是确保您的 GROUP BY 变量是您想要计算的级别。在此示例中,我根据车辆中的气缸数从 SASHELP.CARS 数据集中查找 MPG_CITY 指标中的异常值。

*Identify Outliers;
proc sql;
create table outliers as
select *, std(mpg_city) as std, mean(mpg_city) as avg,
    case when ((mpg_city - calculated avg)/(calculated std) < -2.5) or ((mpg_city - calculated avg)/(calculated std) > 2.5) then 'Outlier'
    else 'Normal'
    end as outlier_status 
from sashelp.cars
group by cylinders;
quit;

*Check number of outliers;
proc freq data=outliers;
table outlier_status;
run;

*Print observations of interest;
proc print data=outliers;
where outlier_status='Outlier';
var origin make model cylinders mpg_city std avg;
run;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-14
    • 2016-08-20
    • 1970-01-01
    • 2021-01-16
    • 2017-10-26
    • 2018-03-23
    • 1970-01-01
    相关资源
    最近更新 更多