<?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: Output odds ratios, confidence intervals, p-value from proc logistic with list of dependent vars in Statistical Procedures</title>
    <link>https://communities.sas.com/t5/Statistical-Procedures/Output-odds-ratios-confidence-intervals-p-value-from-proc/m-p/476029#M24789</link>
    <description>&lt;P&gt;Thank you - that was it!&amp;nbsp; &amp;nbsp;And thanks for the tip - I will look into it.&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 06 Jul 2018 14:53:04 GMT</pubDate>
    <dc:creator>kmoonmurr</dc:creator>
    <dc:date>2018-07-06T14:53:04Z</dc:date>
    <item>
      <title>Output odds ratios, confidence intervals, p-value from proc logistic with list of dependent vars.</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Output-odds-ratios-confidence-intervals-p-value-from-proc/m-p/476018#M24786</link>
      <description>&lt;P&gt;Hello first time posting so go easy on me. I have a list of 50 or so dependent variables that I want to run in 3 different scenarios using proc logistic, so 150 rows.&amp;nbsp; &amp;nbsp;I don’t want to enter any data manually. I am manipulating the data in SAS to get the output table I desire.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This macro should loop through all the dependent variables and append the data to my base table but I cannot get it to work. &amp;nbsp;&amp;nbsp;Macro is below after description of the problem.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If I run the macro one variable at a time, I get this table which&amp;nbsp;IS&amp;nbsp; what I want, but this is dumb and time consuming.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The table gives me the odds ratios, confidence intervals and p-values for values 0 and 2 of the dependent variable (1 = referent group).&amp;nbsp; Dependent variable is "depvar"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%&lt;STRONG&gt;&lt;EM&gt;mylogit2&lt;/EM&gt;&lt;/STRONG&gt;(stress_echo3 );&lt;/P&gt;
&lt;P&gt;%&lt;STRONG&gt;&lt;EM&gt;mylogit2&lt;/EM&gt;&lt;/STRONG&gt;(oth_imaging3 );&lt;/P&gt;
&lt;P&gt;%&lt;STRONG&gt;&lt;EM&gt;mylogit2&lt;/EM&gt;&lt;/STRONG&gt;(cabg3);&lt;/P&gt;
&lt;P&gt;%&lt;STRONG&gt;&lt;EM&gt;mylogit2&lt;/EM&gt;&lt;/STRONG&gt;(pci3 );&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="97"&gt;
&lt;P&gt;DEPVAR&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="131"&gt;
&lt;P&gt;OR_0&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;P_0&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="131"&gt;
&lt;P&gt;OR_2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;P_2&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="97"&gt;
&lt;P&gt;anyevent3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="131"&gt;
&lt;P&gt;1.05 (0.88-1.25)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;0.107&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="131"&gt;
&lt;P&gt;0.83 (0.65-1.07)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;0.082&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="97"&gt;
&lt;P&gt;stress_echo3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="131"&gt;
&lt;P&gt;0.92 (0.50-1.69)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;0.865&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="131"&gt;
&lt;P&gt;0.76 (0.30-1.91)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;0.598&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="97"&gt;
&lt;P&gt;oth_imaging3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="131"&gt;
&lt;P&gt;0.99 (0.80-1.22)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;0.495&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="131"&gt;
&lt;P&gt;0.85 (0.63-1.15)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;0.271&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="97"&gt;
&lt;P&gt;cabg3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="131"&gt;
&lt;P&gt;0.58 (0.25-1.36)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;0.335&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="131"&gt;
&lt;P&gt;0.78 (0.25-2.41)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;0.959&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="97"&gt;
&lt;P&gt;pci3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="131"&gt;
&lt;P&gt;0.58 (0.25-1.36)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;0.335&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="131"&gt;
&lt;P&gt;0.78 (0.25-2.41)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;0.959&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="97"&gt;
&lt;P&gt;pci3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="131"&gt;
&lt;P&gt;0.97 (0.62-1.51)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;0.878&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="131"&gt;
&lt;P&gt;1.01 (0.55-1.84)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;0.943&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When I run the macro this way - which is how I want to do this, I get the following.&amp;nbsp; It does not take any additional data after&amp;nbsp;&lt;/P&gt;
&lt;P&gt;stress_echo3, it just appends the same data over and over again.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%&lt;STRONG&gt;&lt;EM&gt;mylogit2&lt;/EM&gt;&lt;/STRONG&gt;(stress_echo3 oth_imaging3 cath3 cabg3 pci3);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;
&lt;P&gt;DEPVAR&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="130"&gt;
&lt;P&gt;OR_0&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;P_0&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="114"&gt;
&lt;P&gt;OR_2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="66"&gt;
&lt;P&gt;P_2&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;
&lt;P&gt;anyevent3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="130"&gt;
&lt;P&gt;1.05 (0.88-1.25)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;0.107&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="114"&gt;
&lt;P&gt;0.83 (0.65-1.07)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="66"&gt;
&lt;P&gt;0.082&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;
&lt;P&gt;stress_echo3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="130"&gt;
&lt;P&gt;0.92 (0.50-1.69)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;0.865&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="114"&gt;
&lt;P&gt;0.76 (0.30-1.91)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="66"&gt;
&lt;P&gt;0.598&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;
&lt;P&gt;oth_imaging3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="130"&gt;
&lt;P&gt;0.92 (0.50-1.69)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;0.865&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="114"&gt;
&lt;P&gt;0.76 (0.30-1.91)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="66"&gt;
&lt;P&gt;0.598&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;
&lt;P&gt;cath3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="130"&gt;
&lt;P&gt;0.92 (0.50-1.69)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;0.865&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="114"&gt;
&lt;P&gt;0.76 (0.30-1.91)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="66"&gt;
&lt;P&gt;0.598&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;
&lt;P&gt;cabg3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="130"&gt;
&lt;P&gt;0.92 (0.50-1.69)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;0.865&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="114"&gt;
&lt;P&gt;0.76 (0.30-1.91)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="66"&gt;
&lt;P&gt;0.598&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;
&lt;P&gt;pci3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="130"&gt;
&lt;P&gt;0.92 (0.50-1.69)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;0.865&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="114"&gt;
&lt;P&gt;0.76 (0.30-1.91)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="66"&gt;
&lt;P&gt;0.598&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="139"&gt;
&lt;P&gt;ami3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="130"&gt;
&lt;P&gt;0.92 (0.50-1.69)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="48"&gt;
&lt;P&gt;0.865&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="114"&gt;
&lt;P&gt;0.76 (0.30-1.91)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="66"&gt;
&lt;P&gt;0.598&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Here is the macro:&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt; mylogit2(all_deps);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ods output parameterestimates = pe (where=(variable ne "INTERCEPT"));&lt;/P&gt;
&lt;P&gt;ods output oddsratios = or;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; %let k=1;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; %let dep = %scan(&amp;amp;all_deps, &amp;amp;k);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do %while(&amp;amp;dep NE);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; title&amp;nbsp; 'Nuclear Cohort';&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc logistic data=logit ;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; class accred_nuclear2 (ref='1');&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; model &amp;amp;dep (event=last) = accred_nuclear2&amp;nbsp; /lackfit;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where test = &lt;STRONG&gt;2&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*get the p-value;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data pe2;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set pe (keep=probchisq CLASSVAL0);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length depvar $20.;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; depvar = "&amp;amp;dep";&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; accred=input(CLASSVAL0, &lt;STRONG&gt;8.&lt;/STRONG&gt;);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drop CLASSVAL0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rename probchisq=p;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc sort;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by accred;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;*Get the odds ratios and confidence intervals;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data or2;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set or;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; length depvar $20.;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; depvar = "&amp;amp;dep";&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if effect = 'ACCRED_NUCLEAR2 0 vs 1' then accred = &lt;STRONG&gt;0&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if effect = 'ACCRED_NUCLEAR2 2 vs 1' then accred = &lt;STRONG&gt;2&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; depvar = "&amp;amp;dep";&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drop effect;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;Create a single variable that contains the string " oddsratio (lowerlimit CI - upperlimit CI) ';&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; o= strip(put(ODDSRATIOEST, &lt;STRONG&gt;8.2&lt;/STRONG&gt;));&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u=strip(put(UPPERCL, &lt;STRONG&gt;8.2&lt;/STRONG&gt;));&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; l=strip(put(LOWERCL, &lt;STRONG&gt;8.2&lt;/STRONG&gt;));&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ci = cats('(', l, '-', u, ')');&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; or = catx(' ' , o, ci);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keep or depvar accred;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc sort;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by accred;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;*Create single file with p-value, ORs and CIs and flatten;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data f0 (keep=depvar or_0 p_0) f2 (keep=depvar or_2 p_2);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge pe2 or2;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by accred;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if accred = &lt;STRONG&gt;0&lt;/STRONG&gt; then do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;or_0 = or;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; p_0 = round(p, &lt;STRONG&gt;0.001&lt;/STRONG&gt;);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; output f0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if accred = &lt;STRONG&gt;2&lt;/STRONG&gt; then do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; or_2 = or;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; p_2= round(p, &lt;STRONG&gt;0.001&lt;/STRONG&gt;);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; output f2;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; drop accred;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;*Create single row file with dependent variable, the OR, CI, and p-value variables for values 0 and 2 of the dependent variable.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data app_stats;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge f0 f2;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by depvar;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;*Append to base table;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc append base=stats&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data=app_stats force;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let k = %eval(&amp;amp;k + 1);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let dep = %scan(&amp;amp;all_deps, &amp;amp;k);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/*this works*/&lt;/P&gt;
&lt;P&gt;%&lt;STRONG&gt;&lt;EM&gt;mylogit2&lt;/EM&gt;&lt;/STRONG&gt;(stress_echo3 );&lt;/P&gt;
&lt;P&gt;%&lt;STRONG&gt;&lt;EM&gt;mylogit2&lt;/EM&gt;&lt;/STRONG&gt;(oth_imaging3 );&lt;/P&gt;
&lt;P&gt;%&lt;STRONG&gt;&lt;EM&gt;mylogit2&lt;/EM&gt;&lt;/STRONG&gt;(cabg3 pci3 );&lt;/P&gt;
&lt;P&gt;%&lt;STRONG&gt;&lt;EM&gt;mylogit2&lt;/EM&gt;&lt;/STRONG&gt;(pci3 );&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/*This does not work - all of the values are the same&lt;/P&gt;
&lt;P&gt;it take the value of the first dependent variable only&lt;/P&gt;
&lt;P&gt;and copies it all the way through.&amp;nbsp; */&lt;/P&gt;
&lt;P&gt;%&lt;STRONG&gt;&lt;EM&gt;mylogit2&lt;/EM&gt;&lt;/STRONG&gt;(stress_echo3 oth_imaging3 cath3 cabg3 pci3&lt;/P&gt;
&lt;P&gt;ami3 cardiac_arrest3 hrt_failure3 h_angina3&amp;nbsp; h_other_hrt3 anycardiac_outcome);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Jul 2018 14:39:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Output-odds-ratios-confidence-intervals-p-value-from-proc/m-p/476018#M24786</guid>
      <dc:creator>kmoonmurr</dc:creator>
      <dc:date>2018-07-06T14:39:35Z</dc:date>
    </item>
    <item>
      <title>Re: Output odds ratios, confidence intervals, p-value from proc logistic with list of dependent vars</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Output-odds-ratios-confidence-intervals-p-value-from-proc/m-p/476027#M24788</link>
      <description>&lt;P&gt;Try moving the ODS OUTPUT statements INSIDE the PROC LOGISTIC call. &lt;A href="https://blogs.sas.com/content/iml/2011/12/12/sas-tip-put-ods-statements-inside-procedures.html" target="_self"&gt;See this SAS Tip.&lt;/A&gt;&amp;nbsp; I think only your first call is generating data sets.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Although this macro-centric approach is okay for small data sets and 50 variables, you might want to eventually learn &lt;A href="https://blogs.sas.com/content/iml/2017/02/13/run-1000-regressions.html" target="_self"&gt;how to use the BY statement to perform a more efficient style of regression.&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Jul 2018 14:47:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Output-odds-ratios-confidence-intervals-p-value-from-proc/m-p/476027#M24788</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2018-07-06T14:47:41Z</dc:date>
    </item>
    <item>
      <title>Re: Output odds ratios, confidence intervals, p-value from proc logistic with list of dependent vars</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Output-odds-ratios-confidence-intervals-p-value-from-proc/m-p/476029#M24789</link>
      <description>&lt;P&gt;Thank you - that was it!&amp;nbsp; &amp;nbsp;And thanks for the tip - I will look into it.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Jul 2018 14:53:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Output-odds-ratios-confidence-intervals-p-value-from-proc/m-p/476029#M24789</guid>
      <dc:creator>kmoonmurr</dc:creator>
      <dc:date>2018-07-06T14:53:04Z</dc:date>
    </item>
  </channel>
</rss>

