1
$\begingroup$

Can we use percentage values obtained from secondary source instead of frequency values in the contingency table for using the correspondence analysis?

eg: in a contigency table with row variable depicting the regions ( say, region 1, 2,3, 4) and the column table depicting occupation of the people in the region ( say occupation 1, 2,3,4,5) instead of the no. of people with occupation 1 in region 1, can we use the percentage of population with occupation 1 in region 1 to form the contingency table cells?

$\endgroup$
1
$\begingroup$

Yes, you can. The equations to find the eigenvectors that correspond to the row and column scores are invariant to multiplying the data matrix by a (non-negative) constant. HOWEVER, many programs/functions will refuse to work with non-integer entries. The way to get around this is to multiply by a value that makes the entries integers. It won't change your answer. See the R code below for example. This function, however, refuses to work for non-integers.:

> x
     [,1] [,2] [,3]
[1,]    4    4   14
[2,]    5    6    1
[3,]    4    8    0
[4,]    3   11    7
> library(MASS)
> corresp(x)
First canonical correlation(s): 0.5275886 

 Row scores:
         R 1          R 2          R 3          R 4 
-1.255263749  0.963208830  1.329194129  0.005093665 

 Col scores:
       C 1        C 2        C 3 
 0.6073679  0.7482176 -1.4280089 
> corresp(x*8)
First canonical correlation(s): 0.5275886 

 Row scores:
         R 1          R 2          R 3          R 4 
-1.255263749  0.963208830  1.329194129  0.005093665 

 Col scores:
       C 1        C 2        C 3 
 0.6073679  0.7482176 -1.4280089 
$\endgroup$
  • $\begingroup$ A trick worth trying would be to multiply the percentages by some constant, e.g., 100 or 1,000, to convert them into "integer" values for processing. $\endgroup$ – Mike Hunter Nov 1 '15 at 11:57
1
$\begingroup$

Correspondence analysis can deal with percentages perfectly well, without resorting to far-fetched multiplying by large number which may lead to loss of resolution. If C represents your contingnecy table, let

    E = outer(rowSums(C), colSums(C)/sum(C)) 

be the expected frequency matrix based on the margins. Correspondence analysis relies on the following singular value decomposition:

    SVD = svd(1/sqrt(rowSums(C)) %*% (C-E) %*% 1/sqrt(colSums(C))

In short it represents departures from the independence model (represented by E) weighted by the rows and column totals.

Make sure to remove all-zero rows or columns in C before attempting this.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.