Priority calculations Tutorial
This tutorial covers:
- Importing the necessary libraries
- Loading a matrix from a spreadsheet or directly inputting
- Calculating the standard largest eigenvector priority, eigenvalue, and inconsistency
- New priority calculations
- Further references
- Jupyter notebook and references for this tutorial
1. Importing the necessary libraries
The library you need is pyanp.priority, but we could also make use of numpy and pandas so we will import those as well.
# Pandas has DataFrames and Series, very useful things
import pandas as pd
# numpy has lots of useful things in it
import numpy as np
# lastly import our ahptree python code. If you haven't already installed the pyanp library do
# pip install pyanp
# to get it
from pyanp import priority
2. Loading a matrix from a spreadhseet or directly inputting
To load from a CSV or Excel (it is the same function), with or without headers
mat3 = priority.get_matrix("pairwise3x3-1.csv")
#this gives the same matrix but with headers
mat3 = priority.get_matrix("pairwise3x3-1-headers.csv")
To directly input the matrix
mat4 = np.array([
[1, 2, 3, 4],
[1/2, 1, 5, 6],
[1/3, 1/5, 1, 7],
[1/4, 1/6, 1/7, 1]
])
3. Calculating the largest eigenvector priority, eigenvalue, and inconsistency
priority.pri_eigen(mat3)
result is:
array([0.5816, 0.309 , 0.1095])
Now let’s calculate the eigenvalue
priority.pri_eigen(mat3, return_eigenval=True)
result is:
3.0036945980662293
And finally calculate the inconsistency
priority.incon_std(mat3)
the result is:
0.0035524981406050895
4. New priority calculations
To beter see the differences, we will use the mat4 4x4 example matrix.
4.1 The original largest eigenvector calculation
priority.pri_eigen(mat4)
the result is:
array([0.4082, 0.3758, 0.1632, 0.0528])
4.2 New exponential eigenvector calculation
priority.pri_expeigen(mat4)
the result is:
array([0.2244, 0.1985, 0.0689, 0.5081])
4.3 Geometric mean of columns AKA llsm
priority.pri_llsm(mat4)
the result is:
array([0.2672, 0.1841, 0.0642, 0.4845])
5. Further references
The Programmers Reference for pyanp.priority