Aggregation methods, index ranking
2 views (last 30 days)
Show older comments
Hello,
My problem is that I have collected 30 parameters for 200 states and I want to generate an index from them. I have already used additive and geometric methods, but now I want to use non-compensatory ones.
There is a lot to be found in the literature. These methods have one advantage, namely that the parameters do not have to be normalised, weights do not (have to) play a signifikant role and the parameters do not compensate each other.
One method I would like to use is Condorcet-Kemeny-Young-Levenglick (CKYL).
Does anyone have a Matlab-code or tips for this? Or is there another aggregation method that Matlab supports like Condorcet, Arrow - Raynaud or Copeland? It should definitely be one that uses pairwise comparisons.
Thanks for your valuable help!
0 Comments
Answers (1)
Varun
on 1 Sep 2023
Hi,
I understand that you have collected 30 parameters for 200 states and you want to generate an index from them using CKYL method which should use pairwise comparisons.
While MATLAB does not have built-in functions specifically for the Condorcet-Kemeny-Young-Levenglick (CKYL) method or other specific aggregation methods you mentioned, you can implement these methods using MATLAB's capabilities for pairwise comparisons and matrix operations:
1. Create a matrix that represents the pairwise comparisons between your parameters. Each element of the matrix represents the preference or ranking of one parameter over another. You can define the values based on your specific requirements and preferences.
2. Perform calculations on the pairwise comparison matrix to obtain scores for each parameter. The CKYL method, for example, involves counting the number of times each parameter is ranked first in the pairwise comparisons.
3. Use the scores obtained from the pairwise comparisons to aggregate and rank the parameters. Each method may have its own specific aggregation formula or algorithm.
Here is the code example for your reference:
pairwiseMatrix = [0, 2, 3; 1, 0, 1; 0, 1, 0];
scores = sum(pairwiseMatrix == 0, 2);
[~, ranking] = sort(scores, 'descend');
disp(ranking);
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!