It looks like proc freq only does relative risk for 2x2 tables. So you could create a dataset with a sequence of province pairs, i.e. all the 'AB' and 'ON' observations (pair_num=1), then all the 'BC' and 'ON' observations (pair_num=2). Then you could do a sequence of 2x2 tables using PROC FREQ -- BY PAIR_NUM, as here:
data ON;
set have (where=(province='ON'));
run;
data test ;
set have (where=(province^='ON'));
by province ;
retain pairnum 0 pairing 'XX vs YY';
if first.province then do;
pairnum+1;
pairing=catx(' ',province,'vs','ON');
end;
output;
if last.province then do ptr=1 to n_on;
set ON nobs=n_on point=ptr;
output;
end;
run;
proc freq data=test;
by pairnum pairing;
tables province*smm / nopercent nocol ;
exact relrisk (column=2 method=noscore);
run;
I used the "method=noscore" option because it is much faster than the default (method=score). Take a look at the RELRISK <(options)> section of the EXACT statement documentation. If you have a lot of pairings to examine, you might want to test this on just a couple to get an idea of how long it will take to run.
And on another note, I don't know how much "confidence" one can have in a set of relrisk confidence limits when each set re-use the same province=ON data. That's an estimation problem that I never had to face.
... View more