### Example 40.6 Log Odds Ratios and the ALR Algorithm

Since the respiratory data in Example 40.5 are binary, you can use the ALR algorithm to model the log odds ratios instead of using working correlations to model associations. In this example, a fully parameterized cluster model for the log odds ratio is fit. That is, there is a log odds ratio parameter for each unique pair of responses within clusters, and all clusters are parameterized identically. The following statements fit the same regression model for the mean as in Example 40.5 but use a regression model for the log odds ratios instead of a working correlation. The LOGOR=FULLCLUST option specifies a fully parameterized log odds ratio model.

```proc genmod data=resp descend;
class id treatment(ref="P") center(ref="1") sex(ref="M")
baseline(ref="0") / param=ref;
model outcome=treatment center sex age baseline / dist=bin;
repeated  subject=id(center) / logor=fullclust;
run;
```

The results of fitting the model are displayed in Output 40.6.1 along with a table that shows the correspondence between the log odds ratio parameters and the within-cluster pairs. Model goodness-of-fit criteria are shown in Output 40.6.2. The QIC for the ALR model shown in Output 40.6.2 is 511.86, whereas the QIC for the unstructured working correlation model shown in Output 40.5.4 is 512.34, indicating that the ALR model is a slightly better fit.

Output 40.6.1: Results of Model Fitting

The GENMOD Procedure

Log Odds Ratio Parameter
Information
Parameter Group
Alpha1 (1, 2)
Alpha2 (1, 3)
Alpha3 (1, 4)
Alpha4 (2, 3)
Alpha5 (2, 4)
Alpha6 (3, 4)

Analysis Of GEE Parameter Estimates
Empirical Standard Error Estimates
Parameter   Estimate Standard Error 95% Confidence Limits Z Pr > |Z|
Intercept   -0.9266 0.4513 -1.8111 -0.0421 -2.05 0.0400
treatment A 1.2611 0.3406 0.5934 1.9287 3.70 0.0002
center 2 0.6287 0.3486 -0.0545 1.3119 1.80 0.0713
sex F 0.1024 0.4362 -0.7526 0.9575 0.23 0.8144
age   -0.0162 0.0125 -0.0407 0.0084 -1.29 0.1977
baseline 1 1.8980 0.3404 1.2308 2.5652 5.58 <.0001
Alpha1   1.6109 0.4892 0.6522 2.5696 3.29 0.0010
Alpha2   1.0771 0.4834 0.1297 2.0246 2.23 0.0259
Alpha3   1.5875 0.4735 0.6594 2.5155 3.35 0.0008
Alpha4   2.1224 0.5022 1.1381 3.1068 4.23 <.0001
Alpha5   1.8818 0.4686 0.9634 2.8001 4.02 <.0001
Alpha6   2.1046 0.4949 1.1347 3.0745 4.25 <.0001

Output 40.6.2: Model Fit Criteria

GEE Fit Criteria
QIC 511.8589
QICu 499.6516

You can fit the same model by fully specifying the matrix. The following statements create a data set containing the full matrix:

```data zin;
keep id center z1-z6 y1 y2;
array zin(6) z1-z6;
set resp;
by center id;
if first.id
then do;
t = 0;
do m = 1 to 4;
do n = m+1 to 4;
do j = 1 to 6;
zin(j) = 0;
end;
y1 = m;
y2 = n;
t + 1;
zin(t) = 1;
output;
end;
end;
end;
run;
```
```proc print data=zin (obs=12);
run;
```

Output 40.6.3 displays the full matrix for the first two clusters. The matrix is identical for all clusters in this example.

Output 40.6.3: Full Matrix Data Set

Obs z1 z2 z3 z4 z5 z6 center id y1 y2
1 1 0 0 0 0 0 1 1 1 2
2 0 1 0 0 0 0 1 1 1 3
3 0 0 1 0 0 0 1 1 1 4
4 0 0 0 1 0 0 1 1 2 3
5 0 0 0 0 1 0 1 1 2 4
6 0 0 0 0 0 1 1 1 3 4
7 1 0 0 0 0 0 1 2 1 2
8 0 1 0 0 0 0 1 2 1 3
9 0 0 1 0 0 0 1 2 1 4
10 0 0 0 1 0 0 1 2 2 3
11 0 0 0 0 1 0 1 2 2 4
12 0 0 0 0 0 1 1 2 3 4

The following statements fit the model for fully parameterized clusters by fully specifying the matrix. The results are identical to those shown previously.

```proc genmod data=resp descend;
class id treatment(ref="P") center(ref="1") sex(ref="M")
baseline(ref="0") / param=ref;
model outcome=treatment center sex age baseline / dist=bin;
repeated  subject=id(center) / logor=zfull
zdata=zin
zrow =(z1-z6)
ypair=(y1 y2);
run;
```