Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
231 views
in Technique[技术] by (71.8m points)

chi squared - Chi-square p value matrix in r

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.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...