[R] how to correlate nominal variables?

Daniel Malter daniel at umd.edu
Mon Jul 14 14:19:06 CEST 2008


You can copy the code below to your R-code editor. For Yule's Q, the data is
expected in two vectors. For cramer's phi, the data is expected in separate
columns of a matrix or dataframe.

##Run this code
yule.Q=function(x,y){(table(x,y)[1,1]*table(x,y)[2,2]-table(x,y)[1,2]*table(x,y)[2,1])/(table(x,y)[1,1]*table(x,y)[2,2]+table(x,y)[1,2]*table(x,y)[2,1])}

##create test data
vector.one=rbinom(100,1,0.4)
vector.two=rbinom(100,1,0.8)
table(vector.one,vector.two)

##compute yule's Q
yule.Q(vector.one,vector.two)  
##just put your two vector names there




##Cramer's V

##Run this code
cramers.v=function(x){
    x=as.data.frame(x)
    chisq=0
    row.sum=NULL
    col.sum=NULL
    for(i in 1:dim(table(x))[1])
      row.sum[i]=sum(table(x)[i,])
    for(j in 1:dim(table(x))[2])
      col.sum[j]=sum(table(x)[j,])
    for(k in 1:dim(table(x))[1]){
      for(l in 1:dim(table(x))[2]){
         
chisq=chisq+((table(x)[k,l]-(row.sum[k]*col.sum[l])/(dim(x)[1]))^2)/((row.sum[k]*col.sum[l])/(dim(x)[1]))
          cramers.v=sqrt(chisq/(dim(x)[1]*(min(dim(table(x)))-1)))
      }
    }
  }

##create test data
toanalyze=cbind(rbinom(100,2,0.4),rbinom(100,1,0.6))
toanalyze2=cbind(rep(c(0,1),each=50),rep(c(0,1),each=50))

##compute cramer's v for the test data 
v1=cramers.v(toanalyze) ## just put your dataframe or matrix name
v2=cramers.v(toanalyze2)

v1 ##cramer's v
v2 ##cramer's v



Timo Stolz wrote:
> 
> Dear R-Users,
> 
> I need functions to calculate Yule's Y or Cramérs Index, in order to
> correlate variables that are nominally scaled?
> 
> Am I wrong? Are such functions existing?
> 
> Sincerely,
> Timo
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 
> 

-- 
View this message in context: http://www.nabble.com/how-to-correlate-nominal-variables--tp18441195p18442713.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list