<?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 Re: processing submitted statements after running regression macro in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/processing-submitted-statements-after-running-regression-macro/m-p/452705#M114273</link>
    <description>thank you so much, and you really do me a big favour</description>
    <pubDate>Tue, 10 Apr 2018 03:40:15 GMT</pubDate>
    <dc:creator>doreamonjin</dc:creator>
    <dc:date>2018-04-10T03:40:15Z</dc:date>
    <item>
      <title>processing submitted statements after running regression macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/processing-submitted-statements-after-running-regression-macro/m-p/452702#M114270</link>
      <description>&lt;P&gt;After I run the macro below, it will always take around 20 min to deal with 2 or more independent variables(vlist).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%macro fmreg(dvar=, vlist=, bvar=, inputdata=, outputname=);&lt;BR /&gt;data FMRegData;&lt;BR /&gt;set &amp;amp;inputdata; nmiss=nmiss(of &amp;amp;dvar &amp;amp;vlist);&lt;BR /&gt;keep&amp;nbsp;&amp;nbsp; &amp;amp;dvar &amp;amp;vlist &amp;amp;bvar nmiss mvlag;&lt;/P&gt;&lt;P&gt;&amp;nbsp;data FMRegData;&lt;BR /&gt;&amp;nbsp;set&amp;nbsp; FMRegData;&lt;BR /&gt;&amp;nbsp;where nmiss eq 0 ;&amp;nbsp;run;&lt;/P&gt;&lt;P&gt;proc sort data=FMRegData; by &amp;amp;bvar; run;&lt;/P&gt;&lt;P&gt;ods select none;&lt;BR /&gt;proc glm data=FMRegData;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ods output ParameterEstimates=Parm(drop=Dependent Probt Stderr rename=(Parameter=Variable)) fitstatistics=fitstatistics;&lt;BR /&gt;&amp;nbsp;by &amp;amp;bvar;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; model &amp;amp;dvar=&amp;amp;vlist / solution;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;weight mvlag;&lt;BR /&gt;run; quit;&lt;/P&gt;&lt;P&gt;%WINSORIZE ( INSET=Parm , OUTSET= Parm , SORTVAR= Variable ,VARS= Estimate ,PERC1= 10,TRIM=0);&lt;/P&gt;&lt;P&gt;proc summary data=Parm nway;&lt;BR /&gt;&amp;nbsp;class Variable;&lt;BR /&gt;&amp;nbsp;output out=Parm2(drop=_type_ rename=(_freq_=N)) mean(Estimate TValue)=estimates MeanT Std(Estimate)=STD;&lt;BR /&gt;run;&lt;BR /&gt;data clus2dstats2(rename=(PARAM=estimates));&lt;BR /&gt;&amp;nbsp;set Parm2;&lt;BR /&gt;&amp;nbsp;tstat=(estimates*sqrt(N-1))/Std;&lt;BR /&gt;&amp;nbsp;if abs(tstat) ge 1.645 then p='*&amp;nbsp; ';&amp;nbsp; if abs(tstat) ge 1.960 then p='** ';&amp;nbsp; if abs(tstat) ge 2.576 then p='***';&lt;BR /&gt;&amp;nbsp;est=put(estimates, 12.7); param=est; PARAM=compress(est||p); drop estimates;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data coeff; set clus2dstats2(keep=variable estimates); run;&lt;/P&gt;&lt;P&gt;data tstat(drop=tstat rename=(tstat2=estimates)); set clus2dstats2(keep=variable tstat); tstat2=put(tstat, 12.3); tstat2=compress('('||tstat2||')')/*('('||left(tstat2)||')')*/; run;&lt;/P&gt;&lt;P&gt;proc summary data=fitstatistics nway;&lt;BR /&gt;&amp;nbsp;output out=FFFit(drop=_type_ _freq_) mean(RSquare)=Result; run;&lt;/P&gt;&lt;P&gt;data FFIT2(keep=Variable Estimates); retain Variable; set FFFIT; Variable='RSQ'; Result=Result*100; nvalue2=put(Result,12.7);&amp;nbsp; estimates=left(nvalue2); run;&lt;/P&gt;&lt;P&gt;data both(rename=(Estimates=Est_&amp;amp;outputname));&lt;BR /&gt;&amp;nbsp;set coeff tstat FFIT2;&lt;BR /&gt;run;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;proc sort data=both out=both_&amp;amp;outputname; by Variable; run;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%mend fmreg;&lt;/P&gt;</description>
      <pubDate>Tue, 10 Apr 2018 03:00:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/processing-submitted-statements-after-running-regression-macro/m-p/452702#M114270</guid>
      <dc:creator>doreamonjin</dc:creator>
      <dc:date>2018-04-10T03:00:46Z</dc:date>
    </item>
    <item>
      <title>Re: processing submitted statements after running regression macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/processing-submitted-statements-after-running-regression-macro/m-p/452703#M114271</link>
      <description>&lt;P&gt;Try adding PLOTS=NONE to the proc glm statement if you don't need the graphs. Plotting consumes a lot of resources sometimes.&lt;/P&gt;</description>
      <pubDate>Tue, 10 Apr 2018 03:20:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/processing-submitted-statements-after-running-regression-macro/m-p/452703#M114271</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2018-04-10T03:20:32Z</dc:date>
    </item>
    <item>
      <title>Re: processing submitted statements after running regression macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/processing-submitted-statements-after-running-regression-macro/m-p/452705#M114273</link>
      <description>thank you so much, and you really do me a big favour</description>
      <pubDate>Tue, 10 Apr 2018 03:40:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/processing-submitted-statements-after-running-regression-macro/m-p/452705#M114273</guid>
      <dc:creator>doreamonjin</dc:creator>
      <dc:date>2018-04-10T03:40:15Z</dc:date>
    </item>
    <item>
      <title>Re: processing submitted statements after running regression macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/processing-submitted-statements-after-running-regression-macro/m-p/452754#M114295</link>
      <description>But now if I run several macros togehter, still needs to wait for a long time. Could you help me to figure it out again? Thank you</description>
      <pubDate>Tue, 10 Apr 2018 09:50:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/processing-submitted-statements-after-running-regression-macro/m-p/452754#M114295</guid>
      <dc:creator>doreamonjin</dc:creator>
      <dc:date>2018-04-10T09:50:30Z</dc:date>
    </item>
    <item>
      <title>Re: processing submitted statements after running regression macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/processing-submitted-statements-after-running-regression-macro/m-p/452851#M114326</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/203656"&gt;@doreamonjin&lt;/a&gt; wrote:&lt;BR /&gt;But now if I run several macros togehter, still needs to wait for a long time. Could you help me to figure it out again? Thank you&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;You are hiding details of what you are doing with the macro %winsorize&lt;/P&gt;
&lt;P&gt;This reads data twice when not needed:&lt;/P&gt;
&lt;PRE&gt;data FMRegData;
set &amp;amp;inputdata; nmiss=nmiss(of &amp;amp;dvar &amp;amp;vlist);
keep   &amp;amp;dvar &amp;amp;vlist &amp;amp;bvar nmiss mvlag;

 data FMRegData;
 set  FMRegData;
 where nmiss eq 0 ; run;
&lt;/PRE&gt;
&lt;P&gt;Could be&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;data FMRegData;
   set &amp;amp;inputdata; 
   nmiss=nmiss(of &amp;amp;dvar &amp;amp;vlist);
   keep   &amp;amp;dvar &amp;amp;vlist &amp;amp;bvar nmiss mvlag;
   if nmiss eq 0 ; 
run;
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Warning: habitual use of the&lt;/P&gt;
&lt;P&gt;data olddataset;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set olddataset;&lt;/P&gt;
&lt;P&gt;will at some time cause you significant time when you have a code error and replace values in a data set that are potentially unrecoverable.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You might try setting fullstimer option before running the code and see what pieces are consuming time, which will probably work best with options Mprint as well.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;How big (number of records) is your input data set? How many levels of the by variables?&lt;/P&gt;</description>
      <pubDate>Tue, 10 Apr 2018 18:45:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/processing-submitted-statements-after-running-regression-macro/m-p/452851#M114326</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2018-04-10T18:45:11Z</dc:date>
    </item>
    <item>
      <title>Re: processing submitted statements after running regression macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/processing-submitted-statements-after-running-regression-macro/m-p/452852#M114327</link>
      <description>&lt;P&gt;1. Combine your first two data steps into one step&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;2. Format your code so it's legible and comment it as well - This makes it easier to see where steps can be combined.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;3. Same with the last set of data steps, combine as many as possible, you may need to re-order the steps. Remember you can rename/add/drop on the SET statement or with PROC DATASETS so if you don't need to process the data do not use a data step.&lt;/P&gt;
&lt;P&gt;4. Turn off ODS destinations so that no output is generated and that should save you some more time.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/203656"&gt;@doreamonjin&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;After I run the macro below, it will always take around 20 min to deal with 2 or more independent variables(vlist).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%macro fmreg(dvar=, vlist=, bvar=, inputdata=, outputname=);&lt;BR /&gt;data FMRegData;&lt;BR /&gt;set &amp;amp;inputdata; nmiss=nmiss(of &amp;amp;dvar &amp;amp;vlist);&lt;BR /&gt;keep&amp;nbsp;&amp;nbsp; &amp;amp;dvar &amp;amp;vlist &amp;amp;bvar nmiss mvlag;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;data FMRegData;&lt;BR /&gt;&amp;nbsp;set&amp;nbsp; FMRegData;&lt;BR /&gt;&amp;nbsp;where nmiss eq 0 ;&amp;nbsp;run;&lt;/P&gt;
&lt;P&gt;proc sort data=FMRegData; by &amp;amp;bvar; run;&lt;/P&gt;
&lt;P&gt;ods select none;&lt;BR /&gt;proc glm data=FMRegData;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ods output ParameterEstimates=Parm(drop=Dependent Probt Stderr rename=(Parameter=Variable)) fitstatistics=fitstatistics;&lt;BR /&gt;&amp;nbsp;by &amp;amp;bvar;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; model &amp;amp;dvar=&amp;amp;vlist / solution;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;weight mvlag;&lt;BR /&gt;run; quit;&lt;/P&gt;
&lt;P&gt;%WINSORIZE ( INSET=Parm , OUTSET= Parm , SORTVAR= Variable ,VARS= Estimate ,PERC1= 10,TRIM=0);&lt;/P&gt;
&lt;P&gt;proc summary data=Parm nway;&lt;BR /&gt;&amp;nbsp;class Variable;&lt;BR /&gt;&amp;nbsp;output out=Parm2(drop=_type_ rename=(_freq_=N)) mean(Estimate TValue)=estimates MeanT Std(Estimate)=STD;&lt;BR /&gt;run;&lt;BR /&gt;data clus2dstats2(rename=(PARAM=estimates));&lt;BR /&gt;&amp;nbsp;set Parm2;&lt;BR /&gt;&amp;nbsp;tstat=(estimates*sqrt(N-1))/Std;&lt;BR /&gt;&amp;nbsp;if abs(tstat) ge 1.645 then p='*&amp;nbsp; ';&amp;nbsp; if abs(tstat) ge 1.960 then p='** ';&amp;nbsp; if abs(tstat) ge 2.576 then p='***';&lt;BR /&gt;&amp;nbsp;est=put(estimates, 12.7); param=est; PARAM=compress(est||p); drop estimates;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;data coeff; set clus2dstats2(keep=variable estimates); run;&lt;/P&gt;
&lt;P&gt;data tstat(drop=tstat rename=(tstat2=estimates)); set clus2dstats2(keep=variable tstat); tstat2=put(tstat, 12.3); tstat2=compress('('||tstat2||')')/*('('||left(tstat2)||')')*/; run;&lt;/P&gt;
&lt;P&gt;proc summary data=fitstatistics nway;&lt;BR /&gt;&amp;nbsp;output out=FFFit(drop=_type_ _freq_) mean(RSquare)=Result; run;&lt;/P&gt;
&lt;P&gt;data FFIT2(keep=Variable Estimates); retain Variable; set FFFIT; Variable='RSQ'; Result=Result*100; nvalue2=put(Result,12.7);&amp;nbsp; estimates=left(nvalue2); run;&lt;/P&gt;
&lt;P&gt;data both(rename=(Estimates=Est_&amp;amp;outputname));&lt;BR /&gt;&amp;nbsp;set coeff tstat FFIT2;&lt;BR /&gt;run;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;proc sort data=both out=both_&amp;amp;outputname; by Variable; run;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%mend fmreg;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 10 Apr 2018 14:53:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/processing-submitted-statements-after-running-regression-macro/m-p/452852#M114327</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-04-10T14:53:20Z</dc:date>
    </item>
  </channel>
</rss>

