I have already run the log regression to get the adjusted results. OR .BUt I also need these unadjusted rates per 1000 to display the data in a graph for a different purpose..
And you probably read my erlier posts.. i got the % values out of freq, and ten i just multiplied them by 1000 to get rate per 1000.
but now that is not matching with the output i got after using sql command which PGstats guided me with..
Can you post the code you used to get the adjusted rates?
And what's your primary treatment that you're testing for significance?
I'm guessing you just need to modify your logistic regression code and remove all the factors you adjusted for rather than use proc freq to get your unadjusted rates.
The true meaning of the rate depends on the meaning of your
weighting factor. But if it were always 1, the rates would mortality of males per 1000 males.I don't see why SQL and FREQ should give different rates. This discrepancy should be understood before you trust the rate values. Can you post the PROC FREQ commands that produced tables you posted earlier?
PG
heer are the commands..
proc freq data =library.nismicathcabg4;
tables female*died /chisq;
where diagcathonly=1 and stemi=1;
weight discwt;
title 'Baseline table chisq for gender vs mortality in STEMI patients with diagcath ';
run;
proc freq data =library.nismicathcabg4;
tables female*died /chisq;
where pcionly=1 and stemi=1;
weight discwt;
title 'Baseline table chisq for gender vs mortality in STEMI patients with pci ';
run;
proc freq data =library.nismicathcabg4;
tables female*died /chisq;
where cabgonly=1 and stemi=0;
weight discwt;
title 'Baseline table chisq for gender vs mortality in NONSTEMI patients with cabg ';
run;
The discrepancy could be related to the distinction between STEMI and NONSTEMI patients? Do you need this distinction?
you are right... i was comparing the above numbers i got my SQL with the STEMI/NSTEMI numbers...
Sorry about the confusion,, but these numbers do match with my other overall analyses (without STEMI and NSTEMI)
But yes, i also need the distiction by STEMi/NSTEMI.
if you could let me know how and where do i add that to the SQL query, that will be great!!
Thanks again..
stemi and nstemi are also binary variables with values 0 and 1
You may just add this variable to the query, as in :
proc sql;
create table rates1000 as
select pcionly, diagcathonly, cabgonly, stemi, gender,
1000*sum(died*discwt)/sum(discwt) as rate1000
from library.nismicathcabg4
where pcionly or diagcathonly or cabgonly
group by pcionly, diagcathonly, cabgonly, stemi, gender;
select * from rates1000;
quit;
I am curious to know how you are going to express those rates, given the weights. You are not really counting people.
PG
This worked too!! and my results matched with these numbers..
Thanks so much.. that has been a great help!!
The weighting part will be inlcuded in the methods section. These result are from a national unweighted database so when we report the results they have to be weighted. The % dont really change, but after weighting , because the sample size increased, it helps in getting a good OR value and significance level ..
The majority of my result are regressions, so the weghting really helps.
Thanks again.
Ashwini.
My pleasure.
Take a look at PROC SQL and the SQL language, if you can. It is a very powerful tool, very much in use.
All the best.
PG
Hi there,
I hope you could help me with this one too..
in my dataset I have 15 variables from PR1, PR2, PR3..........- PR15. They contain data about medical conditions, in the form of codes. I want to create a new variable "PCI", that would be coded as 1 or 0. If any of the variables from PR1......PR15 contains any of these codes ('0066', '3604', '3606', '3607') , then PCI will be coded as 1 otherwise 0.
I wrote the following array which is working fine.
data library.nismicathcabg4;
set library.nismicathcabg4;
array dxtrialpci{15} pr1-pr15;
pci=0;
do i=1 to 15;
if dxtrialpci{i} in ('0066', '3604', '3606', '3607')
then pci=1;
end;
But NOW i need to include a statement that will take care of missing cases. I want PCI, to be coded as " . ", if all 15 variables PR1-PR15 have no data listed or have "blanks".
I am not sure where and what staement to include in this array, which will help me with missing cases..
Any idea about how to do this?
Any help will be appreciated..
Thanks
Ashwini
You can use the CATS function to concatenate character variables and strip leading and trailing blanks, so if you concatenate all dxtrailpci values and come up with a blank then none of them hav enon blank values
Try this
data library.nismicathcabg4;
set library.nismicathcabg4;
array dxtrialpci{15} pr1-pr15;
length anydxtrialpci $ 4 ;
pci=0;
do i=1 to 15;
if dxtrialpci{i} in ('0066', '3604', '3606', '3607')
then pci=1;
anydxtrialpci = CATS (anydxtrialpci, dxtrialpci{i}) ;
end;
if anydxtrialpci = ' '
then pci = . ;
run ;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 16. Read more here about why you should contribute and what is in it for you!
ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.
Find more tutorials on the SAS Users YouTube channel.