[R] R equivalent of SAS Cochran-Mantel-Haenszel tests?

vito muggeo vmuggeo at dssm.unipa.it
Mon Feb 9 16:46:44 CET 2009

Dear Michael,
It sounds as a linear-by-linear loglinear model (and its variants) which 
uses scores for one or more variables in the table.. (see Agresti, 1990, 
Categorical Data Analysis. I do remember the pages and I have not the 
book here..)

If this is the case, you can use standard call to glm(.., 
family=poisson) with score variables in the linear predictor. For 
instance for a two-way table with ordered variables the linear-by-linear 
model is,

glm(freq~factor(x)+factor(y)+I(score.x*score.y), family=poisson)

The CMH test, probably, is the score test of the parameter of 


Michael Friendly ha scritto:
> In SAS, for a two-way (or 3-way, stratified) table, the CMH option in 
> 3 tests that take ordinality of the factors into account, for both 
> variables, just the column variable
> or neither.   Is there an equivalent in R?
> The mantelhaen.test in stats gives something quite different (a test of 
> conditional independence for
> *nominal* factors in a 3-way table).
> e.g. I'd like to reproduce:
> *-- CMH tests;
> proc freq data=sexfun order=data;
>  weight count;
>  tables husband * wife / cmh chisq nocol norow;
>  run;
>                              The FREQ Procedure
>                     Summary Statistics for Husband by Wife
>          Cochran-Mantel-Haenszel Statistics (Based on Table Scores)
>        Statistic    Alternative Hypothesis    DF       Value      Prob
>            1        Nonzero Correlation        1     10.0142    0.0016
>            2        Row Mean Scores Differ     3     12.5681    0.0057
>            3        General Association        9     16.7689    0.0525

Vito M.R. Muggeo
Dip.to Sc Statist e Matem `Vianelli'
Università di Palermo
viale delle Scienze, edificio 13
90128 Palermo - ITALY
tel: 091 6626240
fax: 091 485726/485612

More information about the R-help mailing list