I want to create a crosstabulation table between Region and season:
Spring | Summer | p-value | |
Region 1 | .. % | ..% | P1 |
Region 2 | .. % | .. % | P2 |
Region 3 | ..% | .. % | P3 |
I want to:
Check if the % of people in region 1 is different between spring and summer (p-value or OR)
Check if the % of people in region 2 is different between spring and summer (p-value or OR)
Check if the % of people in region 3 is different between spring and summer (p-value or OR)
What test should I use to get the 3 p-values needed?
As far as I remember, a simple comparison of proportions as you describe (which is not really a 2x2 contingency table at all) is not programmed into any SAS PROC. However, it is simple enough to program in data step.
As is usual, @Rick_SAS has written up the explanation at https://blogs.sas.com/content/iml/2017/07/05/test-equality-two-proportions-sas.html
It's not a 2X2 table, since it's literally a 1 (row=REGION) X 2 (column=SEASON) comparison.
One way would be to use a BY statement in the PROC FREQ.
Here's an example that gets the binomial test, which tests that the proportions should be 50% in each group. Note that you'll need the N's here, NOT the percentages. You need both the N and percentages or the raw data.
proc sort data=sashelp.class out=class; by age sex; run;
ods output binomialTest=pvalues;
proc freq data=class;
by age;
table sex / out=summary_table chisq binomial;
run;
PS. The reusults are not in a nice neat table, but all the information is in the two output tables:
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 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.