Skip to content

R equivalent of SAS Cochran-Mantel-Haenszel tests?

4 messages · vito muggeo, Michael Friendly, David Freedman

#
In SAS, for a two-way (or 3-way, stratified) table, the CMH option in 
SAS PROC FREQ gives
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
#
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 
I(score.x*score.y)..

best,
vito

Michael Friendly ha scritto:

  
    
#
Dear Vito,

Yes, these tests are *similar* in spirit to loglinear models using 
either row/col/both scores for the association.
But I'm still looking for something equivalent to give the same results 
as SAS with CMH for
non-parametric tests.  One advantage of the CMH tests is that for 
stratified tables, a largish sample
size is not required in the individual strata, only the total n.

The computations are described in:
http://support.sas.com/onlinedoc/913/getDoc/en/procstat.hlp/freq_sect27.htm
vito muggeo wrote:

  
    
#
How about 'cmh_test' in the coin package?
block defines an optional factor for stratification. chisq_test implements
Pearson?s chi-squared test, cmh_test the Cochran-Mantel-Haenzsel test and
lbl_test the linear-by-linear association test for ordered data.

David Freedman
Michael Friendly wrote: