# ::Free Statistics and Forecasting Software::

v1.1.23-r7
Secure website (SSL) | Donate to wessa.net

### :: Kendall tau Correlation Matrix - Free Statistics Software (Calculator) ::

All rights reserved. The non-commercial (academic) use of this software is free of charge. The only thing that is asked in return is to cite this software when results are used in publications.

This free online software (calculator) computes the (multivariate) correlation plot based on Kendall tau rank correlations (recommended), Spearman rank correlations, or Pearson correlations. The diagonal of the matrix displays the histogram of each data series. The upper half of the matrix contains the scatterplots (and smooth curve) for every combination of pairs of data series. In the lower half of the matrix a number is displayed that represents the p-value of the (Kendall tau / Spearman / Pearson) correlation. For every scatterplot (in the upper half) there is a corresponding p-value in the lower half. The name of each row/column of the matrix is displayed on the diagonal (above the histogram).

This software module can be used to quickly identify and explore associations between the variables in a multivariate dataset. We use Kendall tau rank correlations as the default because they have desirable properties (such as robustness) compared to other types of correlation (Spearman rank correlation or Pearson correlation).

For an in-depth comparison between various types of correlation see: Arndt, S., Turvey, C., Andreasen, N. (1999), Correlating and predicting psychiatric symptom ratings:Spearmans r versus Kendalls tau correlation, Journal of Psychiatric Research, 33, 97-104

Enter (or paste) a matrix (table) containing all data (time) series. Every column represents a different variable and must be delimited by a space or Tab. Every row represents a period in time (or category) and must be delimited by hard returns. The easiest way to enter data is to copy and paste a block of spreadsheet cells. Please, do not use commas or spaces to seperate groups of digits!

 Send output to: Browser Blue - Charts White Browser Black/White CSV MS Excel MS Word Data X (click to load default data) 7 1 4 5 5 3 5 4 5 4 4 5 5 5 5 6 5 5 5 5 7 7 7 7 7 1 4 7 5 5 6 6 3 2 4 7 6 3 3 6 7 6 5 7 6 4 2 5 5 3 3 3 3 3 3 2 7 6 7 7 5 5 5 5 7 5 5 5 7 5 4 6 7 1 6 7 6 5 6 6 5 3 4 5 7 4 6 7 4 2 3 5 7 3 2 5 7 5 5 6 7 5 5 7 7 5 5 7 3 2 1 2 7 4 5 6 5 6 6 6 7 6 5 7 5 4 6 6 5 6 7 6 4 3 4 4 5 6 5 6 6 3 6 6 7 4 7 7 5 4 2 5 7 7 7 7 7 5 5 6 6 5 5 5 6 4 5 6 7 6 6 7 7 4 5 6 6 4 5 6 6 2 4 6 4 3 2 3 7 6 6 6 5 4 4 4 6 6 6 6 5 3 3 4 3 4 3 3 7 5 7 7 6 2 4 4 6 7 4 7 5 6 5 5 5 5 5 5 7 1 2 4 7 6 6 6 7 6 6 6 6 2 5 7 6 5 6 5 7 5 4 4 7 6 6 7 5 5 4 4 7 4 4 7 6 6 6 6 5 2 4 6 6 6 6 6 5 5 5 5 5 4 5 5 6 2 6 6 6 2 2 5 6 5 6 6 7 6 7 6 6 6 5 5 5 5 5 5 7 5 6 6 7 5 7 7 6 5 5 5 7 5 6 7 6 3 2 2 6 4 5 5 7 3 6 6 6 4 6 7 7 7 7 7 7 5 5 5 5 5 5 5 3 1 1 1 6 4 5 6 6 4 5 5 5 3 4 6 6 5 5 7 6 5 3 6 6 6 6 6 7 5 5 5 6 3 6 6 6 3 4 5 6 4 5 6 7 5 5 6 6 5 6 6 5 3 2 5 5 5 6 5 6 6 6 6 6 6 5 6 6 5 5 5 5 4 6 6 6 4 4 6 4 2 4 1 6 3 6 7 7 6 7 7 7 6 6 6 5 6 3 4 5 5 5 5 7 6 5 6 3 2 2 3 7 6 7 7 5 5 5 6 7 3 5 6 5 5 2 6 3 4 3 5 6 6 6 6 5 5 6 6 4 4 3 3 7 7 7 7 6 2 5 5 7 6 7 6 2 6 4 5 5 4 5 5 6 4 6 6 6 3 4 5 6 6 6 6 2 5 3 5 6 6 3 3 7 6 6 7 4 1 3 3 7 5 7 7 7 4 5 5 6 6 5 6 6 6 5 6 2 5 4 4 7 4 5 6 7 5 7 7 5 4 3 4 5 3 6 6 6 3 4 5 5 6 5 6 6 2 4 4 6 4 4 5 6 4 5 5 5 4 5 5 6 5 6 6 7 3 7 7 7 5 6 7 6 4 5 6 6 4 5 6 6 6 6 5 7 7 6 7 6 5 5 7 5 4 3 6 5 3 4 4 5 1 5 5 Names of X columns: Q7 Q14 Q21 Q28 Sample Range:(leave blank to include all observations) From: To: Type of Correlation pearsonspearmankendall Chart options Width: Height: Title:

 Source code of R module panel.tau <- function(x, y, digits=2, prefix="", cex.cor) { usr <- par("usr"); on.exit(par(usr)) par(usr = c(0, 1, 0, 1)) rr <- cor.test(x, y, method=par1) r <- round(rr\$p.value,2) txt <- format(c(r, 0.123456789), digits=digits)[1] txt <- paste(prefix, txt, sep="") if(missing(cex.cor)) cex <- 0.5/strwidth(txt) text(0.5, 0.5, txt, cex = cex) } panel.hist <- function(x, ...) { usr <- par("usr"); on.exit(par(usr)) par(usr = c(usr[1:2], 0, 1.5) ) h <- hist(x, plot = FALSE) breaks <- h\$breaks; nB <- length(breaks) y <- h\$counts; y <- y/max(y) rect(breaks[-nB], 0, breaks[-1], y, col="grey", ...) } bitmap(file="test1.png") pairs(t(y),diag.panel=panel.hist, upper.panel=panel.smooth, lower.panel=panel.tau, main=main) dev.off() load(file="createtable") n <- length(y[,1]) n a<-table.start() a<-table.row.start(a) a<-table.element(a,paste("Correlations for all pairs of data series (method=",par1,")",sep=""),n+1,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a," ",header=TRUE) for (i in 1:n) { a<-table.element(a,dimnames(t(x))[[2]][i],header=TRUE) } a<-table.row.end(a) for (i in 1:n) { a<-table.row.start(a) a<-table.element(a,dimnames(t(x))[[2]][i],header=TRUE) for (j in 1:n) { r <- cor.test(y[i,],y[j,],method=par1) a<-table.element(a,round(r\$estimate,3)) } a<-table.row.end(a) } a<-table.end(a) table.save(a,file="mytable.tab") a<-table.start() a<-table.row.start(a) a<-table.element(a,"Correlations for all pairs of data series with p-values",4,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,"pair",1,TRUE) a<-table.element(a,"Pearson r",1,TRUE) a<-table.element(a,"Spearman rho",1,TRUE) a<-table.element(a,"Kendall tau",1,TRUE) a<-table.row.end(a) cor.test(y[1,],y[2,],method=par1) for (i in 1:(n-1)) { for (j in (i+1):n) { a<-table.row.start(a) dum <- paste(dimnames(t(x))[[2]][i],";",dimnames(t(x))[[2]][j],sep="") a<-table.element(a,dum,header=TRUE) rp <- cor.test(y[i,],y[j,],method="pearson") a<-table.element(a,round(rp\$estimate,4)) rs <- cor.test(y[i,],y[j,],method="spearman") a<-table.element(a,round(rs\$estimate,4)) rk <- cor.test(y[i,],y[j,],method="kendall") a<-table.element(a,round(rk\$estimate,4)) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,"p-value",header=T) a<-table.element(a,paste("(",round(rp\$p.value,4),")",sep="")) a<-table.element(a,paste("(",round(rs\$p.value,4),")",sep="")) a<-table.element(a,paste("(",round(rk\$p.value,4),")",sep="")) a<-table.row.end(a) } } a<-table.end(a) table.save(a,file="mytable1.tab")
 Top | Output | Charts | References | History | Feedback

 Cite this software as: Patrick Wessa, (2012), Multivariate Correlation Matrix (v1.0.5) in Free Statistics Software (v1.1.23-r7), Office for Research Development and Education, URL http://www.wessa.net/Patrick.Wessa/rwasp_pairs.wasp/ The R code is based on : Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988), The New S Language, Wadsworth & Brooks/Cole.
 Top | Output | Charts | References | History | Feedback
 Top | Output | Charts | References | History | Feedback