5

Is there any way to find the chi-square p-value matrix in 'R' (a matrix with the p-values between the attributes)?

As an example, consider the the iris data set. I am looking for a matrix as follows:

|                | Sepal length | Sepal width | Petal length | Petal width | Species |
|----------------|--------------|-------------|--------------|-------------|---------| 
| Sepal length   |              |             |              |             |         |
| Sepal width    |              |             |              |             |         |
| Petal length   |              |             |              |             |         |
| Petal width    |              |             |              |             |         |
| Species        |              |             |              |             |         |

The elements of the matrix would be the chi square values for the (i,j) variables of the iris data set.

Hip Hop Physician
  • 252
  • 1
  • 3
  • 12

1 Answers1

8

If that is what you want considering only one of those columns is a categorical variable, Try this:

chisqmatrix <- function(x) {
  names = colnames(x);  num = length(names)
  m = matrix(nrow=num,ncol=num,dimnames=list(names,names))
  for (i in 1:(num-1)) {
    for (j in (i+1):num) {
      m[i,j] = chisq.test(x[,i],x[,j],)$p.value
    }
  }
  return (m)
}
mat = chisqmatrix(iris)
pcantalupo
  • 2,212
  • 17
  • 27