BookmarkSubscribeRSS Feed
Khalid2015
Calcite | Level 5
I am comparing 2 procedures Endovascular vs Surgical , outcome variable is the percentage of favorable outcome 
from different publications :
study1: Endovascular , 200 patients , favorable outcome  85%
study2 : Endovascular , 400 patients , favorable outcome 87%
study3: surgical , 250 patients, favorable outcome 92%
study4: surgical, 300 patients, favorable outcome 82%
study5: surgical, 130 patients, favorable outcome 81%
 
Based on this,  the average favorable outcome was 86.5% for the Endovascular group 600 patients (considering the weight of each study), and was 85.5% for the Surgical group 680 patients. How can I know this difference is significant ?
What statistical test would be the best here ? 
9 REPLIES 9
ballardw
Super User

What rules are you using to define "best statistical test"?

Sensitivity to small changes?

Robustness to odd distributions of data or no assumptions about underlying distributions?

Short to code?

Something else?

Khalid2015
Calcite | Level 5

Sorry , I was wondering if t-test and chi square may not work here , what else would it be ? Thanks 

StatDave
SAS Super FREQ

One approach would be to fit a suitable single model to all of the data (1280 observations) that would include your procedure variable as a categorical predictor. The SAS procedure that you use to fit the model will provide a test of your procedure variable which would be a test of their difference on the response.

Khalid2015
Calcite | Level 5

I can not  input the 1280 observation , I do not have access to the study themselves. I only have a summary data. 

PGStats
Opal | Level 21

It's up to you,

 

You may consider Study as a fixed effect:

 

data have;
infile datalines dlm=":,";
length procedure $16 nbStr outStr $64;
input study $ procedure $ nbStr $ outStr $;
nb = input(scan(nbStr,1), best.);
fav = input(scan(outStr,3," "), percent7.);
nbFav = round(fav * nb);
datalines;
study1: Endovascular , 200 patients , favorable outcome  85%
study2: Endovascular , 400 patients , favorable outcome 87%
study3: surgical , 250 patients, favorable outcome 92%
study4: surgical, 300 patients, favorable outcome 82%
study5: surgical, 130 patients, favorable outcome 81%
;

proc logistic data=have;
class procedure study / param=glm;
model nbFav/nb = procedure study(procedure);
oddsratio procedure;
run;

PGStats_0-1617557894652.png

.... or as a random effect:

 

proc glimmix data=have;
class procedure study;
model nbFav/nb = procedure / dist=binomial;
random study(procedure);
run;

PGStats_1-1617558033052.png

Either way, the procedure effect is not significant.

PG
Khalid2015
Calcite | Level 5

Thanks a lot , this is very helpful. As a SAS beginner , I just do not what does some of the lines in the code mean ?

1- what is meant by this line :

length procedure $16 nbStr outStr $64;

what is 16 and 64 ? what is nbstr and outstr ? what is the length mean ?

2-  what is the scan , best. , " " , and percent7. mean ? 

nb = input(scan(nbStr,1), best.);
fav = input(scan(outStr,3," "), percent7.);

  Thank you very much 

PGStats
Opal | Level 21

This whole first part is just a fancy way of extracting the data values from the text you provided. You probably already have your data (procedure, study, nb, nbFav) somewhere in a better format. The length statement simply declares character variables (strings) of sufficient length. The values are read as strings, parts of those strings extracted and then converted into numbers. Read about the most popular SAS functions, including SCAN and INPUT, here.

PG
ballardw
Super User

@Khalid2015 wrote:

Thanks a lot , this is very helpful. As a SAS beginner , I just do not what does some of the lines in the code mean ?

1- what is meant by this line :

length procedure $16 nbStr outStr $64;

what is 16 and 64 ? what is nbstr and outstr ? what is the length mean ?

2-  what is the scan , best. , " " , and percent7. mean ? 

nb = input(scan(nbStr,1), best.);
fav = input(scan(outStr,3," "), percent7.);

  Thank you very much 


Length statements with $ establish the maximum number of letters a character value will hold. nbstr and outstr are just the names of variables. Could have been Fred and Wilma, but nbSTR could be a character variable, often also called "string" for ancient programming reasons, so nbStr could be short for "a string value that holds a number".

SCAN function pulls "words" from list of values separated by delimiters such as space, comma, period (a few others by default or you can specify). So Scan("this is a list of words",1) would get the first "word" or the value "this".

The INPUT function is used to read text values using a specified Informat. In this case it is going to use "best" or a default way to convert the first part of the string variable nbstr into the numeric variable NB. Similar with the second only the informat is designed to read values with % as part of the text value.

Khalid2015
Calcite | Level 5

Ok. A friend suggested doing meta-analysis in this case , since I do not have the single observation variables for each patient ( I have the summary of the five studies and not the whole data) . What do you guys think . I never did meta-analysis and SAS and I do not know the codes for it . Any suggestion is really appreciated. Thanks 

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
What is ANOVA?

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.

Discussion stats
  • 9 replies
  • 662 views
  • 3 likes
  • 4 in conversation