1.9 Analysing political distance by voting behaviour alone.
===========================================================

2023-01-10

  During the last years I've been refining the approach that I've
started: using _exclusively_ published (and official) data on how
political parties vote, determine the relative distance between them and
create some helpful descriptive analytics:

  *Proximidades e distâncias: análise da actividade parlamentar*
(https://fsmunoz.github.io/parlamento/html/intro.html) (in Portuguese).

  I've used Jupyter Book (https://jupyterbook.org/en/stable/intro.html)
to improve the readability and make it easier to use, without removing
access to details (including code).

  now I have the following features:

  • Parsing of votes and creation of voting heatmaps.

-========================------============------=======-===-=======
*##################************############*******######******######.
+******************=+=+=+******************############*******#####*
*###########*******######*******#***#******#########################
*###################***#*******#######****#******#%%%%%%%%%%%%%%%%%#.
*##################******######*******************############******
+******************######*******************###########*+***+*#####*
*######************************############******######*******#####*
*#*######################******############*******#################*
*#################*******###########################################
*##################******#####################################******
*######%%%%%#############******############******##################*
******###################******############******###################
*#####************#######******###############################******
*##################******************#############*#################
*#################*++++++******##############################%%%%%%%.
******###################******###################%%%%%#*###########
*#*###*******####**************#########################******######
*#######################*******############*******############%%%%%%.
+******##################******++++++++++++*******############******
+***********#############*******************####*#######******++++++
*########################******#############%%%%#%%%%%%%%%%%%%%%%%%%.
*######***********#######******#########################*###*#%%%%%%.
*#*######################******++++++++++++*****************#*------
*########################******##################******#######++++++
*########################******#######*****#%%%%%%%%%%%%############.
*####################################******#%#%%#%#%%%#%%%%%%%######.
*###################################################################
*########################****#*#############%%%%%###################.
*###################################################################.
*###################################################################.
*########################************#######*****#%%%%%%%%%%%#******
+*****#############******************######*************************



  • Determination of the pairwise distance between all parties.

  • Using a clustermap to determine the relative distances between
    parties, and how they are grouped.

@@@@@@@@@@@@@@@@%@@@@@@@@%%%@@@@@@%%@@%%@%%@@@@@@%@@@%@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@%##%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@***%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@++=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@=--*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@:::+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@##*%@@@@@@@@@#*#*####%%%#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@-.:::..-=======%@%%%%%@%%%%%%%@%%%%%%@%%%%%%%@%%%%%%@@@@
@@@@@@@@@@@@@@-::-:::=+=+++==%@%#%@%@%%%#%@%@%@%%@%@@%%#%@%@%@%%@%@@%@
@@@@@@@@@@@@@@-::::::=+++++++%@%@%%%@@%%@%%@@%%@@%%@@%%@%%@@%%@%%%@@%@
@@@@@@@@@@@@@@+=======-------#@%@@@%@@@@@@@@@%@@@@%@@@@@@@@@@@@@@%@@@@
@@@@@@@@@@@@@@*=+++=+=:::::::#@%%%%%@%%%%%%%@%%%%%%@%%%%%%%@%%%%%%@@@@
@@@@@@@@@@@@@@+==++===:::::::#@@%%@@@@@%%%@@@%@%%@%@@%%%%@@@%%%%%%@@%@
@@@@@@@@@@@@@@*+++++++-------#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%@@%%@@%@
@@@@@@@@@@@@@@@%%%%%%%%%%%%%@=::::::=**********************%@%@@%%@@@@
@@@@@@@@@@@@@@@%@#%@%@@@%#%%@=::::::-**********************%@%%#@%@@@@
@@@@@@@@@@@@@@@%%%%%%@%%%%%%@=.::::.-**********************%@%%%%%@@%@
@@@@@@@@@@@@@@@%@@@@@@@@@@@%@+-======+++++++***************%@%@@@%@@@@
@@@@@@@@@@@@@@@%%%%%%@%%%%%%@#*******:::::::=======++======#@%%%%%@@@@
@@@@@@@@@@@@@@@%%#%@%@%%%#%%@#*******:::-:::===++==++==++==#@%%#@%@@%@
@@@@@@@@@@@@@@@%%%%%%@%%%%%%@#*******:::::::=+++++++++++++=%@%%%%%@@@@
@@@@@@@@@@@@@@@%@@@@@@@@@@@%@#*******========------========#@%@@@%@@@@
@@@@@@@@@@@@@@@%%%%%%@%%%%%%@#*******+++++=+-::::::--------#@%%%%%@@@@
@@@@@@@@@@@@@@@%%%%%%@%%%%%%@#*******===++=+-::::::----=---#@%%%%%@@%@
@@@@@@@@@@@@@@@%%@@%%@@%@@@%@#*******+++++++=::::::--------#@%%@%%@@@@
@@@@@@@@@@@@@@@%%@@%%@@%@@@%@#*******+++++++=------=-::::::*%#####%@@@
@@@@@@@@@@@@@@@%%%%@%@%%%#%%@#*******+=+++=+=--==--=:::-:::*###*##%@@@
@@@@@@@@@@@@@@@%%%%%%@%%%%%%@#*******========:----:-::::::.*%#####%@%@
@@@@@@@@@@@@@@@%@@@@@@@@@@@%@########********+++++++=======*******#@@@
@@@@@@@@@@@@@@@%%%%%%@%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@%#####%=.::::.-@@@
@@@@@@@@@@@@@@@%%#%@%@%@%#%%%@%@%#%%@%%%#%%%@%%%#%%%###*###=:::-::=@@@
@@@@@@@@@@@@@@@%%%%%%@%%%%%%%@%%%%%%@%%%%%%%@%%%%%%%#######=.::::.-@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@@%##**###@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

  • Appliying DBSCAN and Spectral Clustering to further determine
    clustering.

  • Use Multi-dimensional Scaling to reduce dimensions to 2 and 3D, for
    interactive visualisation.

@@@@@%%%%%%@%%%@%%%%%%%%%%%@%%%%%%@%%@%%%%@%%%%%%%%@@%%%%@@%%%%%%%%%@@
@@@@@@%@@%%%%@%@@@%@%%@@%@@@%%%@%%@%%@%@%%@@@@%%%@%@@@@%@@@%%%@%%@@%@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@%%%%@%%%@%%%%%@%@@%@%%%@@%%%%%@@%%%@@@@@@@@@@@@@@@
@@@%@@%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@
@@@@@@%@@@@@@@@@@@@@@%%%@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@%@@@@@@@@@@@@@@++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@%@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@%@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@%@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*#%@@@@@@@@%
@@@@@@%@++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=*@@@@@@@@@%
@@@@@@%@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@%@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*+@@%
@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+%@%
@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@%@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@%
@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=#@@@@@@%
@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#@@@@@@@%
@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#%%@@@@@@@@@@@@@@%
@@@@@@%@@@@@@@@#+%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@++@@@@@@@@@@@@@@@%
@@%@@@%@@@@@@@@%*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@%%@@@@@@@@@%%%@@@@@@@@%%%@@@@@@@@@%%@@@@@@@@@%%%@@@@@@@@@%%@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

  • Determine who supported who in terms of proposals, and how many
    were approved or rejected.


 =****:.++++-.+++++ ==+++.-++++::++++-.++++= +=+++ =+==+.-+=++::++===
 #@@@@+-####*.####%.%###%:*####-=%###+:%####.%###%.#####:+####=-%%###
 =#**#-.++++=.+++++ +++++.=++++::++++-.++++=.+++++ =+=++.-++++::*+++=
 -++++::****= +++++ +++++.=++++::+=++-.++++= +++++ =+==+.-++++::++===
 +####=-@@@@#.####%.%###%.*%###-=####+:%####.%###%.#####:+####=-%%###
 -++++::****= +++++ +=+++.-++++::+=++-.+=++= +=+++ =+==+.-+=++::++===
 -++++::++++=.*#*#* +++++.=++++::++++-.++++= +++++ =+==+.-++++::++===
 +####=-####*.@@@@@.%###%.*%###-=####+:%####.%###%.#####:+####=-%%###
 -++++:.++++-.***** ==+++.-++++::+=++-.++++= +=+++ =+==+.-+=++::++===
 =++++::++++=.+=+++ *####.=++++::*+++-.+++++ *++++ =++++.-*+++:.++++=
 *####=-####*.####%.@@@@@.*####-=%###+:#####.%%##%.#####:+%###=:#####
 -+==+::+===-.+==== +****.-===+::+==+-.+==== ++==+ ====+.-+===:.=====
 .=*++- =*++= =*+++ -=+++.+####:-++++-.-++++.=.*++ ++++*.-+-++::**++=
 :*%##= *%### +%##%.++%#%.#@@@@==####+.=####.*:%#%.##*##:+#=##=-%%#**
 .====: ====- -+=== :-+=+.=****::====-.:==== -.+== =====.-=:==:.++==-
 . =**-:  *+=   +*+.- ***. .*+*:-####=   *++.::*+* - .**.- =**-:#-:*+
 : +%#=-. ##*   ##%.= ###. :%##-+@@@@*. .###.-:%#%.+ .##:= +%#=-@=:%#
 . -==:.. ==-   === : ===. .===::*++*-   === :.+== - .==.: -==:.+:.+=
 =****-:****=.*****.+****.=****:-*++*-:##%%*.***** +****.=****-:****+
 +####=-####*.####%.####%.*####-=####+:@@@@@.%###%.#####:+####=-%%###
 -====:.====- ===== =====.-====::====:.++++= ===== =====.-====:.+===-
 =*++*-:*++*=.*++**.*****.=++**:-#*+*=.*++*+.%%%%% +++**:=****-:#**++
 *%###=-%###*.%###%.%###%.*####-=%###+:%####.@@@@@.#####:+####=-%%###
 -====:.====- ===== ===== -====.:====:.====- +++++ -====.:====:.====-
 =#***-:#*+*+.#****.*****.+#+**:-****=.#***+.*****.*%%%%:=****-:#***+
 +%###=-%###*.%###%.%%##%.*%###-=####+:%####.%###%.%@@@@:+####=-%%###
 -====:.==-=- ===== ===== -=-==.:====:.====- ===== =++++.:====:.====-
 =#***-:#***+.#****.*#***.+#***:-#***=.#***+.*****.*#***:+%%%%-:##**+
 +%###=-%###*.%###%.%%##%.*%*#%-=%###+:%####.####%.#%###:*@@@@=-%%###
 -=--=:.=--=- ==-== ==-== -=--=.:=-==:.==-=- =-=== -====.-++++:.====-
 =#--#-:#+:#+.#*:**.#-:##.+#*----+-#*=.#+:#+.==#*#.++#*#:-+***--%%%%#
 +%==%=-%*:%*.%#-#%.%-:%#.*%#==-=*=%#+:%*:%#.++%#%.**###:=*%##=-@@@@%
 :-..-..-:.-: --.-- -..-- :--....:.--: -:.-: ::--- ::---..:---..====-

  • Track distances through time, both by general agreements in terms
    of votes and by explicit support for proposals put forward by each
    party.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

  There are more things to come, I have received some good feedback on
the analysis and also suggestions that are very doable using the
dataset, exciting times.