<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Counting Outliers in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Counting-Outliers/m-p/716315#M80112</link>
    <description>&lt;DIV&gt;Hi All,,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;I'm new to SAS and my task is to calculate shares of outliers for &amp;nbsp;my date. I have already prepared the following code but stopped after joining table.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;Creating descriptive statistics&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;title 'Descriptive statistics for each variable from "valid" dataset';&lt;/DIV&gt;&lt;DIV&gt;ods exclude _all_;&lt;/DIV&gt;&lt;DIV&gt;proc means data=valid&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;n min p1 p5 p10 q1 p50 q3 p90 p95 p99 max mean std qrange range&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;STACKODSOUTPUT; &amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;var _numeric_ ;&lt;/DIV&gt;&lt;DIV&gt;ods output summary=summary_valid;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;ods exclude none;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;Creating a table with outlier bounds data&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;create table outlier_valid as&lt;/DIV&gt;&lt;DIV&gt;select variable, Q1-1.5*QRANGE as lb_mid, Q3+1.5*QRANGE as ub_mid, Q1-3*QRANGE as lb_extr, Q3+3*QRANGE as ub_extr&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;from summary_valid&lt;/DIV&gt;&lt;DIV&gt;order by variable desc, variable;&lt;/DIV&gt;&lt;DIV&gt;quit;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc print data=outlier_valid noobs;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;title1 'The summary of outliers data valid';&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; title2 'lb_mid = lower bound for mid outliers';&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; title3 'ub_mid = upper bound for mid outliers';&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; title4 'lb_extr = lower bound for extreme outliers';&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; title5 'ub_extr = upper bound for extreme outliers';&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;Joining two above tables&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;create table train_join as&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;select s.variable, s.n, s.MIN, s.P1, s.P5, s.P10, s.Q1, s.P50, S.Q3, s.P90, s.P95, s.P99, s.MAX, s.MEAN, s.STDDEV, s.QRANGE, s.RANGE, o.lb_mid, o.ub_mid, o.lb_extr, o.ub_extr &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;from summary_train s, outlier_train o&lt;/DIV&gt;&lt;DIV&gt;where s.variable = o.variable;&lt;/DIV&gt;&lt;DIV&gt;quit;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;Now I want to create a variable representing count of outliers which:&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;are lower than lb_mid&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;are higher than up_mid&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;are lower than lb_extr&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;are higher than up_extr&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;I would also like to create variable mild_outliers (true/false) and extrr_outliers (true/false)&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Could you please give me some tips?&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Kind regards,&lt;/DIV&gt;&lt;DIV&gt;Cezary&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</description>
    <pubDate>Wed, 03 Feb 2021 05:14:19 GMT</pubDate>
    <dc:creator>cezaryrosa</dc:creator>
    <dc:date>2021-02-03T05:14:19Z</dc:date>
    <item>
      <title>Counting Outliers</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Counting-Outliers/m-p/716315#M80112</link>
      <description>&lt;DIV&gt;Hi All,,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;I'm new to SAS and my task is to calculate shares of outliers for &amp;nbsp;my date. I have already prepared the following code but stopped after joining table.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;Creating descriptive statistics&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;title 'Descriptive statistics for each variable from "valid" dataset';&lt;/DIV&gt;&lt;DIV&gt;ods exclude _all_;&lt;/DIV&gt;&lt;DIV&gt;proc means data=valid&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;n min p1 p5 p10 q1 p50 q3 p90 p95 p99 max mean std qrange range&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;STACKODSOUTPUT; &amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;var _numeric_ ;&lt;/DIV&gt;&lt;DIV&gt;ods output summary=summary_valid;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;ods exclude none;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;Creating a table with outlier bounds data&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;create table outlier_valid as&lt;/DIV&gt;&lt;DIV&gt;select variable, Q1-1.5*QRANGE as lb_mid, Q3+1.5*QRANGE as ub_mid, Q1-3*QRANGE as lb_extr, Q3+3*QRANGE as ub_extr&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;from summary_valid&lt;/DIV&gt;&lt;DIV&gt;order by variable desc, variable;&lt;/DIV&gt;&lt;DIV&gt;quit;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc print data=outlier_valid noobs;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;title1 'The summary of outliers data valid';&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; title2 'lb_mid = lower bound for mid outliers';&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; title3 'ub_mid = upper bound for mid outliers';&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; title4 'lb_extr = lower bound for extreme outliers';&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; title5 'ub_extr = upper bound for extreme outliers';&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;Joining two above tables&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;proc sql;&lt;/DIV&gt;&lt;DIV&gt;create table train_join as&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;select s.variable, s.n, s.MIN, s.P1, s.P5, s.P10, s.Q1, s.P50, S.Q3, s.P90, s.P95, s.P99, s.MAX, s.MEAN, s.STDDEV, s.QRANGE, s.RANGE, o.lb_mid, o.ub_mid, o.lb_extr, o.ub_extr &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;from summary_train s, outlier_train o&lt;/DIV&gt;&lt;DIV&gt;where s.variable = o.variable;&lt;/DIV&gt;&lt;DIV&gt;quit;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;Now I want to create a variable representing count of outliers which:&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;are lower than lb_mid&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;are higher than up_mid&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;are lower than lb_extr&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;are higher than up_extr&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;I would also like to create variable mild_outliers (true/false) and extrr_outliers (true/false)&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Could you please give me some tips?&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Kind regards,&lt;/DIV&gt;&lt;DIV&gt;Cezary&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Wed, 03 Feb 2021 05:14:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Counting-Outliers/m-p/716315#M80112</guid>
      <dc:creator>cezaryrosa</dc:creator>
      <dc:date>2021-02-03T05:14:19Z</dc:date>
    </item>
    <item>
      <title>Re: Counting Outliers</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Counting-Outliers/m-p/719169#M80181</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can use another nice procedure to identify outliers, the Univariate procedure. It can save the outliers in a data set and also the statistics to determine the outliers. I share you&amp;nbsp;an example and links to the documentation. &lt;A href="https://documentation.sas.com/?cdcId=pgmsascdc&amp;amp;cdcVersion=9.4_3.4&amp;amp;docsetId=procstat&amp;amp;docsetTarget=procstat_univariate_odstables.htm&amp;amp;locale=es" target="_self"&gt;https://documentation.sas.com/?cdcId=pgmsascdc&amp;amp;cdcVersion=9.4_3.4&amp;amp;docsetId=procstat&amp;amp;docsetTarget=procstat_univariate_odstables.htm&amp;amp;locale=es&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://documentation.sas.com/?cdcId=pgmsascdc&amp;amp;cdcVersion=9.4_3.4&amp;amp;docsetId=procstat&amp;amp;docsetTarget=procstat_univariate_details84.htm&amp;amp;locale=es" target="_self"&gt;https://documentation.sas.com/?cdcId=pgmsascdc&amp;amp;cdcVersion=9.4_3.4&amp;amp;docsetId=procstat&amp;amp;docsetTarget=procstat_univariate_details84.htm&amp;amp;locale=es&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
ods output ExtremeObs=outliers;
proc univariate data=sashelp.class outtable=work.all ;
	var Height age;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Hope that this can help you.&lt;/P&gt;</description>
      <pubDate>Sun, 14 Feb 2021 01:40:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Counting-Outliers/m-p/719169#M80181</guid>
      <dc:creator>joseenrique1</dc:creator>
      <dc:date>2021-02-14T01:40:32Z</dc:date>
    </item>
  </channel>
</rss>

