Regarding correspondence analysis 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?
 A: 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 

A: 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.
