Tests of association

Chi-squared test

The Chi-squared test is a common test of association between nominal or ordinal data. More powerful tests exist (see below), but the Chi-squared is by far the most simple one.

Contingency table

Produce a contingency table of Mat by Period, a new variable made from Date to have three categories, and calculate chi-squared.

Creating the Period variable from Date has already been covered in “Transforming variables”:

> Period <- Date
> Period[(Date>650)&(Date<=1200)] <- 1
> Period[(Date>100)&(Date<=650)] <- 2
> Period[(Date<=100)] <- 3

You should probably tell R these values aren’t numbers but categories. Notice the difference:

> summary(Period)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1.00    1.00    1.50    1.55    2.00    3.00 
> Period <- factor(Period)
> Mat <- factor(Mat)
> summary(Period)
 1  2  3 
20 18  2 

This hasn’t really effect on the following operations, but it helps you keeping a clean working environment.

> table(Mat,Period)
    Period
Mat   1  2  3
   1 20  0  0
   2  0 18  2

See http://finzi.psych.upenn.edu/R/Rhelp02a/archive/2847.html for another method using xtabs().

Chi-squared test

We are now ready to perform the Chi-squared test:

> crosstab <- table(Mat,Period)
> xtabs() # similar to table, but different results
> chisq.test(crosstab)

    Pearson`s Chi-squared test

data:  table(Mat, Period) 
X-squared = 40, df = 2, p-value = 2.061e-09

Warning message:
In chisq.test(table(Mat, Period)) :
  Chi-squared approximation may be incorrect

This result is OK, but has some differences from the one you would get doing all the operations by hand:

  • the p-value is not a fixed one (because you’re not using tables), but rather a floating point number, expressed in scientific notation. It is very low however.
  • there’s a warning about a possible approximation of the Chi-squared value

Other tests

Other tests of association mentioned in Digging Numbers don't seem so widely used, and this is probably the reason why they are not part of the standard R distribution.

Cramer's V

This test is included in the cramer contributed package

Guttman's lambda

Kendall's tau-b

This test is included in the contributed package Kendall. See

Kendall's tau-c

Kendall's tau-c is not included in any package, but it can be defined as a custom function. See https://stat.ethz.ch/pipermail/r-help/2006-September/112806.html

Updated: