The aim of this project is to analyze the global landscape of political parties using dimension reduction and unsupervised learning. Utilizing the V-Party custom dataset, which characterizes ruling parties across 18 distinct political and ideological variables, this study seeks to simplify complex multi-dimensional information into a more manageable and interpretable structure.
The core objective is to reduce the 18-variable space into a minimal set of dimensions. We aim to identify how individual variables cluster together to form broader institutional characteristics. A critical challenge in this study is balancing the reduction of data for ease of interpretation with the necessity of preserving a high percentage of original information. This balance ensures that the positioning of specific countries within the new coordinates remains representative of their actual political reality. While 2D visualizations are used for clarity, the study explores a 3-dimensional solution to capture institutional nuances that are otherwise lost in further compression.
To ensure the robustness of our findings, we compare several techniques, including Principal Component Analysis (PCA), Multidimensional Scaling (MDS), and t-SNE. A key focus is to evaluate whether these different approaches yield consistent results regarding the relative distances and similarities between political regimes.
Finally, the project employs Cluster Analysis (k-means) performed on the reduced dimensions. This step serves as a validation tool to determine if the low-dimensional space successfully facilitates the identification of logical, cohesive groups of political parties with shared governance styles.
The added value of this research is its multi-methodological approach to political data, going beyond simple descriptive statistics to uncover global patterns. Employing PCA, MDS, and t-SNE allows for the verification of findings across different assumptions, ensuring that the identified groups of countries are not a result of a single method.
Modern comparative analysis of political systems often relies on unsupervised learning techniques. The application of dimension reduction and clustering serves as a means to uncover structures within complex datasets. The work of Vrooman (2012) utilizes Principal Component Analysis (PCA) to identify political regimes. By applying nonlinear PCA to 54 institutional traits, Vrooman successfully reduced a high-dimensional space into two primary axes: the “scope of social security” and the “degree of universalism”. This mirrors the core objective of our project: to reduce 18 V-Party variables into an interpretable lower-dimensional space that captures the main characteristics of global political parties.
While reduction simplifies data, it must be accompanied by rigorous diagnostic testing. Marozzi (2014) emphasizes that the selection of variables and normalization methods can significantly influence the results. Marozzi’s approach to “uncertainty analysis” and the use of correlation coefficients to evaluate how much information is lost during reduction provides a technical foundation for this study. It justifies the use of the Mantel Test and Stress metrics to ensure that MDS and PCA models are not only simplifications, but robust representations of the original data structure.
The use of validation through clustering present in this project is supported by the recent study by De la Cerda and Gunderson (2024). They argue that traditional party families based on historical origins may no longer be ideologically coherent. By employing Model-Based Clustering (MBC) and using PCA for visualization, they demonstrate that empirical ideological positions are a more accurate basis for grouping parties than historical labels. Their findings that left-wing parties show high heterogeneity while right-wing parties often converge into single large clusters provide a comparative benchmark for our own k-means clustering results.
In summary, these studies collectively support a research plan that moves from raw institutional data to reduced dimensions, and finally to clustering.
Data utilized for this project comes from a V-Dem’s V-Party dataset, which contains variables decribing political parties present in parliaments in numerous countries. This dataset is currently the most comprehensive global study of its kind, examining policies, identities, and organizational structures of political parties worldwide. It provides assessments for over 1,900 parties across 169 countries for the period between 1970 and 2019.
data_filtered <- data %>%
dplyr::select(country_name, year, v2paseatshare, e_regionpol_6C,
v2pariglef, v2pawelf, v2paimmig, v2parelig,
v2palgbt, v2pagender, v2pawomlab,
v2paanteli, v2paopresp, v2paplur, v2paminor, v2paviol, v2paculsup,v2xpa_popul,
v2paclient, v2paind, v2padisa, v2pasoctie) %>%
filter(!is.na(v2paseatshare))For this project we choose the year 2019, as it is the last one available in the dataset, and look for the election held in either that year or the most recent one before that.
latest_years <- data_filtered %>%
filter(year <= 2019) %>%
group_by(country_name) %>%
summarise(latest_year = max(year, na.rm = TRUE))We choose the party with the highest share of seats in the parliament, as this study’s aim is to focus on the ruling parties worldwide. We are left with 158 observations. We then look at the parties’ multiple characteristics, namely:
Economic left-right scale (v2pariglef) - describes the party’s attitudes towards government’s role in the economy (active - left-wing, reduced - right-wing).
Welfare (v2pawelf) - characterizes the support for means-tested or universal welfare policies.
Immigration (v2paimmig) - party’s position regarding immigration.
Religious principles (v2parelig) - justifying the party’s positions by religion.
LGBT social equality (v2palgbt) - describes party’s views on equality for LGBT community.
Gender equality (v2pagender) - share of women in national-level leadership positions of this political party.
Working women (v2pawomlab) - characterizes the party’s support for women’s participation in the labor market.
Anti-elitism (v2paanteli) - importance of the anti-elitist rhetoric.
Political opponents (v2paopresp) - use of personal attacks or demonization tactics againt the opponents prior to this election.
Political pluralism (v2paplur) - commitment to fair election with multiple parties.
Minority rights (v2paminor) - attitude towards violating minority rights by implementing the will of the majority.
Rejection of political violence (v2paviol) - party’s discouragement of the use of political violence.
Cultural superiority (v2paculsup) - promoting cultural superiority of a grup or nation.
Populism Index (v2xpa_popul) - the use of populist rhetoric.
Clientelism (v2paclient) - provision of targeted clientelistic goods and benefits.
Personalization of party (v2paind) - describes if a party is a vehicle for one leader.
Internal cohesion (v2padisa) - disagreement of the party elites over party strategies.
Affiliate organizations (v2pasoctie) - party’s ties to social organizations.
Additionally, variable ‘region’ is chosen to be used in visual analysis.
data_vparty <- data_filtered %>%
inner_join(latest_years, by = "country_name") %>%
filter(year == latest_year) %>%
group_by(country_name) %>%
slice_max(v2paseatshare, n = 1, with_ties = FALSE) %>%
ungroup()
data_vparty <- na.omit(data_vparty)
data_vparty <- data_vparty %>% rename(
left_right = v2pariglef,
welfare = v2pawelf,
immigration_support = v2paimmig,
religiosity = v2parelig,
lgbt_equality = v2palgbt,
women_leadership = v2pagender,
women_labor = v2pawomlab,
anti_elitism = v2paanteli,
opponents_demonization = v2paopresp,
pluralism = v2paplur,
minority_rights = v2paminor,
rejection_violence = v2paviol,
cultural_superiority = v2paculsup,
populism_index = v2xpa_popul,
clientelism = v2paclient,
personalization = v2paind,
internal_cohesion = v2padisa,
social_ties = v2pasoctie,
region = e_regionpol_6C
)Dataset containing only the 18 variables used for dimension reduction is then scaled and converted into a matrix.
Before reducing the dimensions we investigate the correlations between variables. Ideally, many of them would exhibit high correlation with each other, which would simplify the dimension reduction process by indicating that several variables are measuring different facets of the same underlying phenomenon. As shown in the correlation matrix, we observe several significant clusters of correlations. Strong positive correlations exist between variables such as pluralism, minority_rights, lgbt_equality, and rejection_violence. This suggests a cohesive dimension describing democratic and pluralistic values. There is also a very high correlation between anti_elitism and populism_index, indicating that these variables can likely be reduced to a single dimension. The variables women_labor and women_leadership also show a strong relationship.
To formally assess whether the 18 ideological variables are suitable for factor analysis and dimensionality reduction, the Kaiser-Meyer-Olkin (KMO) Measure of Sampling Adequacy was calculated. This test evaluates the proportion of variance among variables that might be common variance, justifying the use of PCA. For this dataset, the overall KMO value was 0.81, which significantly exceeds the widely accepted threshold of 0.5 - 0.6. This value indicates that the sampling is very good, confirming that the variables are sufficiently correlated to yield stable and interpretable principal components.
Most variables also exceed this threshold individually, but the scores of anti_elitism (0.51), populism_index (0.52), and internal_cohesion (0.57) are barely acceptable. This indicates that they can create their own dimension because of their weak correlation with the rest of the variables, which will have to be further investigated.
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = data_scaled)
## Overall MSA = 0.81
## MSA for each item =
## left_right welfare immigration_support
## 0.67 0.70 0.81
## religiosity lgbt_equality women_leadership
## 0.87 0.88 0.85
## women_labor anti_elitism opponents_demonization
## 0.81 0.51 0.88
## pluralism minority_rights rejection_violence
## 0.85 0.89 0.86
## cultural_superiority populism_index clientelism
## 0.89 0.52 0.86
## personalization internal_cohesion social_ties
## 0.87 0.57 0.90
In addition to the KMO measure, Bartlett’s Test was conducted to verify the presence of correlations among the 18 variables. This test examines the null hypothesis that the observed correlation matrix is an identity matrix, which would indicate that variables are unrelated and unsuitable for structure detection. The test yielded a Chi-square value of 1502.105 with a p-value very close to 0. Since the p-value is significantly lower than 0.05, we reject the null hypothesis. This result proves that the correlations between the V-Party ideological indicators are statistically significant, providing a solid foundation for further dimension reduction.
## R was not square, finding R from data
## $chisq
## [1] 1502.105
##
## $p.value
## [1] 4.434015e-220
##
## $df
## [1] 153
As we already conformed that the data is suitable for dimension reduction, we move on to examining the appropriate number of dimension. Firstly, we utilize the Scree Plot, which displays the variances associated with each component. It shows a primary ‘elbow’ after the second component, suggesting that two dimensions might be an optimal number to retain. Based on the statistics describing the components, we opted for reducing the dataset to three dimensions in addition to two. That is because the eigenvalue for the third component is still significantly above 1, which justifies its inclusion as it carries more information than a single average variable. It also stems from the fact that the first two dimensions often only cover the broadest divides. The third dimension was retained to capture more nuanced ideological differences that were otherwise lost.
## Importance of components:
## PC1 PC2 PC3 PC4 PC5 PC6 PC7
## Standard deviation 2.3749 1.5489 1.32858 1.16293 1.03176 0.96739 0.87135
## Proportion of Variance 0.3133 0.1333 0.09806 0.07513 0.05914 0.05199 0.04218
## Cumulative Proportion 0.3133 0.4466 0.54468 0.61981 0.67895 0.73095 0.77313
## PC8 PC9 PC10 PC11 PC12 PC13 PC14
## Standard deviation 0.83689 0.71850 0.70169 0.69025 0.65202 0.61792 0.59192
## Proportion of Variance 0.03891 0.02868 0.02735 0.02647 0.02362 0.02121 0.01946
## Cumulative Proportion 0.81204 0.84072 0.86807 0.89454 0.91816 0.93937 0.95883
## PC15 PC16 PC17 PC18
## Standard deviation 0.53622 0.50065 0.41448 0.17614
## Proportion of Variance 0.01597 0.01392 0.00954 0.00172
## Cumulative Proportion 0.97481 0.98873 0.99828 1.00000
The variables factor map provides a visual representation of the correlations between the ideological indicators. The proximity of vectors indicates the strength and direction of their relationships. We observe a very tight grouping of variables such as pluralism, minority_rights, lgbt_equality, rejection_violence, and opponents_demonization. Their proximity on the left side of Dim1 confirms that they represent a single, cohesive dimension of liberal democratic norms. The vectors for populism_index and anti_elitism are almost overlapping at the top of Dim2. This proximity proves that anti-elitist rhetoric is the primary driver of the populist dimension in our dataset. There is a clear opposition between the democratic cluster (pluralism, rejection_violence) on the left and clientelism on the right. This confirms that as a party relies more on clientelistic networks, its support for formal democratic pluralism significantly decreases.
fviz_pca_var(pca_base, col.var = "contrib",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE)The map visualizes the distribution of 158 ruling parties within the 2D space defined by the first two principal components. Countries positioned on the far left (Norway, Sweden, Germany, and New Zealand) represent stable, pluralistic systems. In contrast, parties on the far right (Malaysia, Turkey, and India) exhibit higher scores in variables associated with power personalization and clientelism. Parties at the top of the map, most notably Venezuela, followed by Mexico and Bolivia, show the highest levels of populist rhetoric and anti-elitism. The color gradient indicates the quality of representation for each point on the plane. Observations in dark red are very well explained by these two dimensions, whereas those in blue or grey are more complex and likely require the third dimension to be fully understood.
fviz_pca_ind(pca_base, col.ind = "cos2",
gradient.cols = c("#D3D3D3", "#2E9FDF", "#FC4E07"),
repel = TRUE)To identify the underlying structure of global party politics, we employ Principal Component Analysis (PCA). PCA is a statistical technique used for dimension reduction, which transforms a large set of correlated variables into a smaller number of variables called Principal Components. The primary goal is to simplify the dataset while retaining as much of the original variance as possible.
In its raw form, the output of PCA can often be difficult to interpret because many variables may load across multiple components. To achieve a simple structure where each political indicator is clearly associated with only one main dimension, we applied a Varimax rotation. Varimax is an orthogonal rotation method that maximizes the variance of the squared loadings.
As discussed before, in this project, we compare the results for both 2-dimensional and 3-dimensional solutions. While the 3D model is chosen for its superior statistical fit and higher information retention, the 2D representation is also utilized as a primary tool for clear visualization. Reducing the data to two axes allows for the creation of intuitive maps of political party positioning, making the complex ideological landscape easier to interpret visually without sacrificing the broader context provided by the third dimension.
This first component explains 31.1% of the total variance. It represents the divide regarding democratic norms and institutional integrity. Strong positive loadings are observed for variables that define democratic pluralism, such as rejection_violence, pluralism, minority_rights, lgbt_equality, and opponents_demonization. This axis is anchored on the opposite end by clientelism, personalization, and social_ties.
The second component accounts for 13.5% of the variance and focuses on political style and social welfare. The highest loadings are found for populism_index and anti_elitism, clearly marking this as a Populism dimension. Interestingly, this dimension also incorporates the left_right economic scale (negative loading) and welfare (positive loading). The negative loading for the left-right scale suggests that, in this specific 2D reduction, populist rhetoric is often associated with more right-wing economic stance. Variables like women_labor and women_leadership also contribute to this dimension (positive loadings), showing its multifaceted nature.
While the first component (RC1) appears highly coherent, the second component (RC2) is primarily driven by populism_index and anti_elitism. The inclusion of other variables in RC2 at times produces results that are somewhat counter-intuitive, which further suggests that a two-dimensional solution may be oversimplifying the data and that a third component is necessary to fully capture the remaining nuances.
pca_rotated2 <- principal(data_scaled, nfactors = 2, rotate = "varimax")
print(pca_rotated2$loadings, cutoff = 0.3)##
## Loadings:
## RC1 RC2
## left_right -0.620
## welfare 0.507
## immigration_support 0.346
## religiosity 0.599
## lgbt_equality 0.710
## women_leadership 0.480 0.347
## women_labor 0.479 0.399
## anti_elitism 0.780
## opponents_demonization 0.711
## pluralism 0.767
## minority_rights 0.766
## rejection_violence 0.819
## cultural_superiority 0.668
## populism_index 0.790
## clientelism -0.722
## personalization -0.624
## internal_cohesion
## social_ties -0.559
##
## RC1 RC2
## SS loadings 5.602 2.438
## Proportion Var 0.311 0.135
## Cumulative Var 0.311 0.447
The eigenvalues associated with PCA represent the amount of variance captured by each successive component. The first eigenvalue is substantially large (5.64), indicating that a single dominant axis explains a significant portion of the total variance in the 18 ideological variables.
## [1] 5.63997746 2.39914167 1.76512194 1.35240732 1.06451844 0.93584718
## [7] 0.75924863 0.70037752 0.51623899 0.49236646 0.47644484 0.42512654
## [13] 0.38182007 0.35036692 0.28753227 0.25064925 0.17179086 0.03102364
We then examine the Uniqueness and Complexity of the 18 ideological variables. Uniqueness represents the proportion of variance in each variable that is not explained by the components. Variables such as rejection_violence (0.31), populism_index (0.34), and anti_elitism (0.37) show low uniqueness values. This indicates that the majority of their variance is successfully captured by the two main axes. Variables like internal_cohesion (0.95) and immigration_support (0.87) exhibit very high uniqueness. This suggests that these specific traits are largely independent of the Democracy-Populism framework and would likely require additional dimensions.
## left_right welfare immigration_support
## 0.6117056 0.7121397 0.8682589
## religiosity lgbt_equality women_leadership
## 0.6282737 0.4140633 0.6490313
## women_labor anti_elitism opponents_demonization
## 0.6110075 0.3706795 0.4644589
## pluralism minority_rights rejection_violence
## 0.4110985 0.4087819 0.3080384
## cultural_superiority populism_index clientelism
## 0.4707378 0.3373693 0.4748958
## personalization internal_cohesion social_ties
## 0.6052344 0.9503802 0.6647261
Complexity indicates how many components are needed to explain a single variable. Ideally, in a rotated model, complexity should be close to 1, meaning the variable loads onto only one axis. Most variables, including pluralism (1.00), clientelism (1.01), and personalization (1.03), have complexity values near 1. This confirms that the Varimax rotation was effective in creating a simple structure. Variables women_labor (1.94) and women_leadership (1.82) show the highest complexity. This means these variables are split between the two dimensions.
## left_right welfare immigration_support
## 1.021479 1.236785 1.204439
## religiosity lgbt_equality women_leadership
## 1.073932 1.316541 1.822052
## women_labor anti_elitism opponents_demonization
## 1.936714 1.070638 1.116498
## pluralism minority_rights rejection_violence
## 1.002742 1.014256 1.060787
## cultural_superiority populism_index clientelism
## 1.361374 1.120446 1.014600
## personalization internal_cohesion social_ties
## 1.027597 1.242224 1.148082
The diagnostic results are synthesized in the Quality of Variables plot, which maps each indicator based on its Complexity and Uniqueness. This visualization confirms several key findings of our analysis. A significant majority of variables are clustered at the far left of the x-axis with a Complexity score near 1. This validates that the Varimax rotation effectively isolated these indicators into distinct, non-overlapping dimensions. Variables with the lowest Uniqueness, such as rejection_violence, populism_index, and anti_elitism, are the most reliably represented within this 2D framework. The plot clearly distinguishes women_leadership and women_labor as outliers with high complexity scores. This confirms that gender-related policies do not fit into a single ideological pole but rather bridge multiple dimensions of political identity.
The final mapping of ruling parties visualizes the global political landscape based on the two rotated principal components, with observations color-coded by geographical region. Region 5 parties (Western Europe and North America including Cyprus, Australia, and New Zealand) are predominantly clustered on the far right of RC1, representing the global benchmark for liberal democracy. Region 2 (Latin America and the Caribbean) shows a tendency toward high scores on RC2, with countries like Venezuela, Mexico, and Bolivia on the populist pole of the map. Region 1 and 4 (Eastern Europe and Central Asia, Sub-Saharan Africa) exhibit high heterogeneity but are more frequently found on the negative side of RC1, indicating higher levels of power personalization or clientelism compared to the Western cluster.
## Warning: ggrepel: 22 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
By moving to three dimensions, the total Cumulative Variance explained increases to 54.5%, providing a much more nuanced ideological map than the 2D model. Dimension RC1 remains the primary axis of political competition, with high positive loadings for rejection_violence (0.874), pluralism (0.858), and minority_rights (0.696). On the negative pole we can find clientelism (-0.720), social_ties (-0.684), and personalization (-0.606).
The most striking result of the 3-factor solution is the isolation of Populism into its own dimension. Unlike the 2D model, where populism was blurred with economic variables, RC2 is now a dedicated axis with high loadings for populism_index (0.969) and anti_elitism (0.967).
The third dimension, which emerged by splitting the noise from the 2D model, captures the socio-cultural and economic identity of the parties. There are strong positive loadings for women_labor (0.760) and women_leadership (0.605). It also includes cultural_superiority (0.537), lgbt_equality (0.526), welfare (0.570), and left_right economic scale (-0.624). While RC3 captures a broad socio-cultural dimension, it exhibits a degree of internal tension, grouping progressive traits like lgbt_equality and women_labor alongside cultural_superiority and religiosity. This suggests that for many global ruling parties, ideological development does not follow a linear Western path of liberalism vs. conservatism. Instead, RC3 highlights a hybrid ‘modernization’ axis where institutional progress for women can coexist with traditional cultural identities. This nuance justifies the use of clustering, which can further distinguish how these traits combine in specific groups of countries.
Variable internal_cohesion continues to exhibit high uniqueness, suggesting that internal party discipline is an organizational trait that operates independently of the broader ideological and institutional axes identified in this study.
pca_rotated3 <- principal(data_scaled, nfactors = 3, rotate = "varimax")
print(pca_rotated3$loadings, cutoff = 0.3)##
## Loadings:
## RC1 RC3 RC2
## left_right -0.624
## welfare 0.570
## immigration_support 0.501
## religiosity 0.431 0.452
## lgbt_equality 0.558 0.526
## women_leadership 0.605
## women_labor 0.760
## anti_elitism 0.967
## opponents_demonization 0.651
## pluralism 0.858
## minority_rights 0.696 0.327
## rejection_violence 0.874
## cultural_superiority 0.502 0.537
## populism_index 0.969
## clientelism -0.720
## personalization -0.606
## internal_cohesion
## social_ties -0.684
##
## RC1 RC3 RC2
## SS loadings 4.712 2.903 2.189
## Proportion Var 0.262 0.161 0.122
## Cumulative Var 0.262 0.423 0.545
The first three eigenvalues are 5.64, 2.40, and 1.77. These values are significantly greater than 1, which justifies their retention as they contain more information than any single original variable.
## [1] 5.63997746 2.39914167 1.76512194 1.35240732 1.06451844 0.93584718
## [7] 0.75924863 0.70037752 0.51623899 0.49236646 0.47644484 0.42512654
## [13] 0.38182007 0.35036692 0.28753227 0.25064925 0.17179086 0.03102364
Analyzing the Uniqueness and Complexity of the 3-component model compared to the 2D version provides strong evidence that the third dimension is essential for capturing the true diversity of the V-Party dataset. Moving to 3D drastically improved the representation of several key variables. For example, women_labor dropped from 0.61 uniqueness in 2D to 0.39 in 3D, and populism_index fell from 0.33 to a near-perfect 0.05. The variable internal_cohesion remains at 0.91 uniqueness (down slightly from 0.95). This confirms that internal party discipline is a highly specific organizational trait that does not align with broader global ideological divides. Most democratic variables (pluralism, rejection_violence) now show uniqueness values below 0.30, indicating that the 3D model explains over 70% of their variance.
## left_right welfare immigration_support
## 0.50849950 0.63706055 0.68074942
## religiosity lgbt_equality women_leadership
## 0.59168145 0.40913685 0.57009139
## women_labor anti_elitism opponents_demonization
## 0.39111966 0.06225258 0.46431316
## pluralism minority_rights rejection_violence
## 0.25516520 0.40535047 0.22475589
## cultural_superiority populism_index clientelism
## 0.45828894 0.05544847 0.44920713
## personalization internal_cohesion social_ties
## 0.59631194 0.91551734 0.52080899
The complexity of populism_index (1.01) and anti_elitism (1.00) is now nearly perfect. This proves that the 3D model successfully cleaned the populist dimension, separating it from the noise of the 2D model. Variables like religiosity (2.17), lgbt_equality (2.01), and cultural_superiority (2.00) show a significant increase in complexity compared to the 2D model. This is the mathematical proof of the nature of the third dimension. These variables are now shared across components, reflecting the complex reality where, for instance, a party might be progressive on labor but traditional on culture.
## left_right welfare immigration_support
## 1.531122 1.231057 1.535487
## religiosity lgbt_equality women_leadership
## 2.176606 2.010566 1.340666
## women_labor anti_elitism opponents_demonization
## 1.106923 1.006993 1.541608
## pluralism minority_rights rejection_violence
## 1.025673 1.433218 1.028894
## cultural_superiority populism_index clientelism
## 2.000555 1.013791 1.126491
## personalization internal_cohesion social_ties
## 1.203442 1.508697 1.050063
The plot shows that key variables like populism_index, anti_elitism, rejection_violence, and pluralism have a Complexity near 1.0 and extremely low Uniqueness. This confirms they are perfectly captured by their respective independent axes. Unlike the 2D model, the 3D version identifies religiosity, cultural_superiority, and lgbt_equality as high-complexity items. This proves that these issues are “shared” across dimensions. The variable internal_cohesion remains an outlier with the highest uniqueness.
The transition from the 2D to the 3D model refines the Map of Ruling Parties. Regional patterns, particularly for Latin America (Region 2) and Sub-Saharan Africa (Region 4), become more distinct. Because the RC2 axis is now a cleaner measure of populism, the vertical positioning of parties like Venezuela and Mexico is more statistically robust. In the 3D map, the Western European cluster (Region 5) remains anchored on the far right of the Democratic Axis, but their internal variance is better captured, reflecting differences in socio-cultural progressivism that the 2D model simplified.
To complement and validate the results obtained through PCA, we conduct a Multidimensional Scaling (MDS) analysis. While PCA focuses on maximizing the variance explained by linear combinations of variables, MDS aims to preserve the pairwise distances (dissimilarities) between parties in a lower-dimensional space. This provides an alternative that is often more robust when dealing with complex, non-linear relationships in political data. In this study, we perform MDS for both 2-dimensional and 3-dimensional solutions.
We start with calculating the distance matrix of the scaled data using euclidean distance metric.
We then perform the Mantel test to compare the original Euclidean distance matrix with a new dissimilarity matrix. This test determines whether the ‘closeness’ of parties in our spatial maps is consistent across different mathematical definitions of similarity. The p-value is 0.001, allowing us to reject the null hypothesis that there is no relationship between the matrices. This result proves that the ideological ‘distances’ we observed in the MDS and PCA maps are not an artifact of choosing Euclidean distance. Instead, they reflect a consistent and objective pattern of political differentiation inherent in the data.
sim_vparty <- cor(t(data_scaled))
dis_from_sim <- sim2diss(sim_vparty, method = "corr", to.dist = TRUE)
mantel_results <- mantel.test(as.matrix(dist_vparty), as.matrix(dis_from_sim))
print(mantel_results)## $z.stat
## [1] 73200.22
##
## $p
## [1] 0.001
##
## $alternative
## [1] "two.sided"
The quality of this 2D projection is evaluated using the Goodness of Fit (GOF) index. In our model, the GOF value is around 44.7%. This statistic indicates the proportion of the total variance in the distance matrix that is accounted for by the first two dimensions. Notably, this GOF value is identical to the Cumulative Variance explained by the first two components in our PCA model (44.7%). This consistency between PCA and Classical MDS is expected when using Euclidean distances, providing further validation that our 2D mapping is a stable - though partial - representation of the dataset.
## [1] 0.4466177 0.4466177
To interpret the meaning of the MDS axes, we calculated the correlations between the 18 ideological variables and the two MDS dimensions. Dimension 1 shows strong negative correlations with democratic markers like rejection_violence (-0.799), minority_rights (-0.769), and pluralism (-0.759). On the opposite end, it correlates positively with clientelism (0.711) and personalization (0.612). This dimension is almost identical in meaning to RC1 from our PCA, representing the institutional divide. Dimension 2 is dominated by strong negative correlations with populism_index (-0.807) and anti_elitism (-0.791). It also captures the economic divide, with a positive correlation with the left_right scale (0.609). This aligns with the RC2 dimension from PCA, representing political style and rhetoric.
The results of the MDS correlation analysis highly correlate with the PCA rotated loadings. The fact that both methods, one focusing on variance (PCA) and the other on spatial distances (MDS), produce nearly identical ideological dimensions provides robust validation for our model.
mds_coords <- mds_model2$points
cor_mds <- cor(data_scaled, mds_coords)
colnames(cor_mds) <- c("Cor_MDS1", "Cor_MDS2")
print(round(cor_mds, 3))## Cor_MDS1 Cor_MDS2
## left_right 0.131 0.609
## welfare -0.230 -0.485
## immigration_support -0.356 -0.073
## religiosity -0.608 -0.049
## lgbt_equality -0.737 -0.207
## women_leadership -0.515 -0.293
## women_labor -0.520 -0.345
## anti_elitism 0.061 -0.791
## opponents_demonization -0.688 0.248
## pluralism -0.759 0.112
## minority_rights -0.769 0.019
## rejection_violence -0.799 0.231
## cultural_superiority -0.695 -0.214
## populism_index 0.107 -0.807
## clientelism 0.711 -0.140
## personalization 0.612 -0.141
## internal_cohesion 0.217 0.050
## social_ties 0.539 -0.212
The MDS map serves as a robust spatial validation of the PCA results, as both methods identify the same primary ideological divides. In the MDS projection, the horizontal axis (Dim1) is effectively a mirror image of the PCA’s RC1 (Democratic Axis). While PCA placed established democracies on the right, MDS places the Western European cluster (Region 5) on the far left, confirming the stability of the divide regardless of the algorithm used. The vertical axis (Dim2) in MDS remains dominated by the populist dimension, mirroring RC2 in the PCA model. Highly populist parties like Venezuela and Mexico (Region 2) are isolated at the bottom of the MDS map.
The primary indicator of the model’s quality is the Stress-1 value, which in our 2D solution is 0.262. According to standard methodological thresholds, a stress value of 0.26 is considered “poor”. This suggests that a two-dimensional map is insufficient to accurately capture the true ideological distances between ruling parties without significant distortion. The diagnostics reveal which specific countries are the most difficult to place in 2D. Parties in Laos (1.49%), North Korea (1.29%), and Guinea-Bissau (1.23%) exhibit the highest individual stress levels. This indicates that their political profiles are so unique that a 2D projection cannot faithfully represent them, further justifying the transition to a 3D model.
## [1] 0.2622795
##
## Configurations:
## D1 D2
## Albania -0.4579 0.2680
## Algeria 0.3038 -0.4545
## Angola -0.3122 -0.2202
## Argentina -0.4714 -0.2702
## Armenia -0.4570 -0.6897
## Australia -1.0265 -0.3515
## Austria -0.3605 0.5779
## Azerbaijan 0.8818 0.3198
## Bangladesh 0.6434 0.1077
## Barbados -0.4848 -0.0220
## Belgium -0.7470 0.2296
## Benin 0.3602 0.0427
## Bhutan -0.5944 0.3977
## Bolivia 0.2866 -0.6880
## Botswana -0.3062 0.2145
## Brazil -0.7723 -0.6077
## Bulgaria -0.3634 0.1018
## Burkina Faso -0.1747 0.1789
## Burma/Myanmar -0.4913 -0.3360
## Burundi 0.7788 -0.5227
## Cambodia 0.6590 -0.0124
## Cameroon 0.2291 0.0523
## Canada -0.7931 -0.1462
## Cape Verde -0.3902 0.3638
## Chad 0.4517 0.2574
## Chile -0.5111 0.6385
## China 0.2105 0.3948
## Colombia -0.3633 -0.1057
## Comoros -0.0411 0.1421
## Costa Rica -0.5801 -0.0006
## Croatia -0.0835 0.2314
## Cuba 0.1186 -0.9693
## Cyprus -0.3059 0.3008
## Czech Republic -0.4599 -0.2049
## Democratic Republic of the Congo 0.7422 -0.2102
## Denmark -0.9519 0.1870
## Djibouti 0.3625 0.1594
## Dominican Republic 0.0327 0.4062
## Ecuador 0.2498 -0.7903
## El Salvador 0.0375 0.5761
## Equatorial Guinea 1.0041 0.6407
## Eritrea 0.6290 -0.3994
## Estonia -0.7874 0.2939
## Ethiopia -0.0766 -0.5592
## Fiji -0.0796 -0.2375
## Finland -1.0395 -0.1615
## France -0.7595 0.0920
## Gabon 0.4378 -0.1616
## Georgia 0.0161 -0.1813
## Germany -0.5492 0.4237
## Ghana -0.3182 -0.3195
## Greece -0.0835 0.3661
## Guatemala -0.1021 -0.4152
## Guinea 0.5133 -0.3755
## Guinea-Bissau 0.0614 -0.6724
## Haiti 0.3235 0.4860
## Honduras 0.5467 0.4580
## Hong Kong -0.1152 0.3393
## Hungary 1.1640 -0.2763
## Iceland -0.5664 0.5242
## India 0.6567 0.3136
## Indonesia -0.0182 -0.1543
## Iran 0.1010 -0.0396
## Iraq 0.5820 0.3065
## Ireland -0.8887 0.3818
## Israel -0.7448 0.7555
## Italy -0.2037 -0.5103
## Ivory Coast 0.2920 0.0586
## Jamaica -0.2915 0.1494
## Japan 0.1305 0.6496
## Kazakhstan -0.0406 0.5819
## Kenya 0.0833 0.3608
## Kosovo 0.1730 -0.5986
## Kuwait 0.6006 0.6117
## Kyrgyzstan 0.2255 0.5327
## Laos 0.3268 -0.8151
## Latvia -0.4643 -0.5158
## Lebanon -0.0214 -0.0263
## Lesotho -0.2051 0.4945
## Lithuania -0.5210 -0.1820
## Luxembourg -0.8031 0.3998
## Madagascar 0.1375 0.1976
## Malawi 0.1482 0.4081
## Malaysia 0.7686 -0.0072
## Maldives -0.2354 -0.2516
## Mali -0.3366 -0.1402
## Malta -0.3323 -0.6635
## Mauritania 0.8961 0.4278
## Mauritius -0.1213 -0.1627
## Mexico -0.0689 -0.7787
## Moldova 0.2367 -0.2141
## Mongolia 0.4334 -0.6881
## Montenegro 0.0927 0.4831
## Morocco 0.0425 0.0021
## Mozambique -0.1662 0.0446
## Namibia 0.1139 -0.2398
## Nepal -0.1315 -0.3813
## Netherlands -0.5294 0.7912
## New Zealand -0.6611 0.2793
## Nicaragua 0.5619 -0.5961
## Niger 0.2831 -0.2242
## Nigeria 0.2365 -0.3033
## North Korea 1.0241 -0.3547
## North Macedonia 0.4222 0.2890
## Norway -1.0479 -0.0402
## Pakistan 0.1519 -0.4195
## Palestine/West Bank 1.0692 0.1512
## Panama -0.1559 -0.0910
## Paraguay 0.4833 0.4969
## Peru 0.3898 -0.2808
## Philippines 0.0408 -0.7771
## Poland 0.6616 -0.5811
## Portugal -0.8691 -0.0910
## Republic of the Congo -0.0944 0.4652
## Romania 0.0163 -0.3424
## Russia 0.3744 0.3787
## Rwanda -0.3913 -0.7407
## Sao Tome and Principe -0.3730 0.2409
## Senegal -0.0787 0.1468
## Serbia 0.5588 -0.5488
## Seychelles -0.1952 -0.4719
## Sierra Leone 0.0721 0.2393
## Singapore 0.3512 0.7386
## Slovakia -0.0116 -0.4104
## Slovenia 0.8698 -0.5544
## Somalia 0.9156 -0.0671
## Somaliland 0.2597 0.2787
## South Africa -0.5431 -0.3904
## South Korea -0.5084 -0.0696
## Spain -0.8775 -0.2542
## Sri Lanka 0.2001 0.1320
## Sudan 0.7167 0.3759
## Sweden -0.9793 -0.1237
## Switzerland 0.2076 1.2556
## Syria 0.4755 -0.3175
## Taiwan -0.9255 0.1091
## Tajikistan 0.9000 0.2529
## Tanzania -0.0893 -0.8733
## Thailand -0.8070 -0.5772
## The Gambia -0.3536 0.4241
## Timor-Leste -0.2423 -0.0155
## Togo 0.3698 0.5264
## Trinidad and Tobago -0.4619 0.0338
## Tunisia -0.0346 0.0505
## Turkey 1.2696 0.0860
## Turkmenistan 0.5578 0.7532
## Uganda 0.5236 0.0619
## Ukraine -0.5251 -0.4803
## United Kingdom -0.3207 0.7166
## United States of America 0.2046 0.7387
## Uruguay -1.0510 -0.2962
## Uzbekistan -0.0906 0.5170
## Venezuela 0.5773 -1.0168
## Vietnam -0.1310 0.7810
## Yemen 0.4983 0.1278
## Zambia 0.5806 -0.1488
## Zanzibar 0.2366 -0.0868
## Zimbabwe 0.7739 -0.0944
##
##
## Stress per point (in %):
## Albania Algeria
## 0.87 0.95
## Angola Argentina
## 0.48 0.35
## Armenia Australia
## 0.84 0.40
## Austria Azerbaijan
## 0.71 0.53
## Bangladesh Barbados
## 0.67 0.59
## Belgium Benin
## 0.74 0.55
## Bhutan Bolivia
## 0.83 0.56
## Botswana Brazil
## 0.41 0.42
## Bulgaria Burkina Faso
## 0.42 0.95
## Burma/Myanmar Burundi
## 0.64 0.73
## Cambodia Cameroon
## 0.39 0.31
## Canada Cape Verde
## 0.48 0.47
## Chad Chile
## 0.51 0.61
## China Colombia
## 0.98 0.51
## Comoros Costa Rica
## 0.50 0.52
## Croatia Cuba
## 0.42 0.78
## Cyprus Czech Republic
## 0.43 0.70
## Democratic Republic of the Congo Denmark
## 0.62 0.59
## Djibouti Dominican Republic
## 0.36 0.66
## Ecuador El Salvador
## 0.61 0.77
## Equatorial Guinea Eritrea
## 0.45 0.74
## Estonia Ethiopia
## 0.33 0.84
## Fiji Finland
## 0.54 0.47
## France Gabon
## 0.51 0.53
## Georgia Germany
## 0.51 0.36
## Ghana Greece
## 0.57 0.48
## Guatemala Guinea
## 0.40 0.64
## Guinea-Bissau Haiti
## 1.23 0.52
## Honduras Hong Kong
## 0.48 0.66
## Hungary Iceland
## 0.82 0.63
## India Indonesia
## 0.77 0.31
## Iran Iraq
## 0.63 0.42
## Ireland Israel
## 0.40 0.61
## Italy Ivory Coast
## 0.81 0.74
## Jamaica Japan
## 0.59 0.64
## Kazakhstan Kenya
## 0.71 0.70
## Kosovo Kuwait
## 0.62 0.87
## Kyrgyzstan Laos
## 0.74 1.49
## Latvia Lebanon
## 0.64 0.70
## Lesotho Lithuania
## 0.77 0.47
## Luxembourg Madagascar
## 0.48 0.36
## Malawi Malaysia
## 0.49 0.62
## Maldives Mali
## 0.68 0.48
## Malta Mauritania
## 0.66 0.56
## Mauritius Mexico
## 0.82 0.53
## Moldova Mongolia
## 0.56 0.74
## Montenegro Morocco
## 0.77 0.47
## Mozambique Namibia
## 0.89 0.73
## Nepal Netherlands
## 0.80 0.55
## New Zealand Nicaragua
## 0.41 0.76
## Niger Nigeria
## 0.59 0.48
## North Korea North Macedonia
## 1.29 0.63
## Norway Pakistan
## 0.37 0.68
## Palestine/West Bank Panama
## 0.81 0.35
## Paraguay Peru
## 0.61 0.78
## Philippines Poland
## 0.76 0.83
## Portugal Republic of the Congo
## 0.32 0.97
## Romania Russia
## 0.68 0.44
## Rwanda Sao Tome and Principe
## 1.11 0.40
## Senegal Serbia
## 0.33 0.63
## Seychelles Sierra Leone
## 0.68 0.53
## Singapore Slovakia
## 0.76 0.87
## Slovenia Somalia
## 1.14 0.83
## Somaliland South Africa
## 0.34 0.54
## South Korea Spain
## 0.41 0.47
## Sri Lanka Sudan
## 0.69 0.56
## Sweden Switzerland
## 0.38 1.33
## Syria Taiwan
## 0.62 0.64
## Tajikistan Tanzania
## 0.59 0.74
## Thailand The Gambia
## 0.58 0.52
## Timor-Leste Togo
## 0.70 0.65
## Trinidad and Tobago Tunisia
## 0.64 0.59
## Turkey Turkmenistan
## 0.52 0.94
## Uganda Ukraine
## 0.59 0.69
## United Kingdom United States of America
## 0.95 1.04
## Uruguay Uzbekistan
## 0.35 0.64
## Venezuela Vietnam
## 0.52 1.02
## Yemen Zambia
## 0.36 0.79
## Zanzibar Zimbabwe
## 0.48 0.71
We then visualise the individual stress levels focusing on the most problematic countries. Among them we can find Switzerland with its unique political system or North Korea with its extremely authoritarian governance which is hard to compare to other systems.
The Goodness of Fit (GOF) for the 3D model is 0.5447 (or 54.5%). This is a substantial increase from the 2D model’s GOF of 0.4466 (44.7%). Similarly to the 2D model, the 3D GOF (54.5%) perfectly matches the Cumulative Variance explained by the 3-component PCA model.
## [1] 0.5446801 0.5446801
The analysis of the correlations between the 18 ideological variables and the coordinates of the 3D MDS model provides a final validation of our multidimensional structure. The first dimension remains highly stable, correlating strongly with rejection_violence (-0.799), minority_rights (-0.769), and pluralism (-0.759). It mirrors the RC1 from our PCA, representing the fundamental divide between liberal democracy and personalized or clientelistic power. Dimension 2 is anchored by populism_index (-0.807) and anti_elitism (-0.791). Just like RC2 in the PCA model, it captures the rhetorical elements of political competition. The third dimension shows significant correlations with anti_elitism (0.555), populism_index (0.531), and women_labor (-0.469). This dimension captures the “hybrid” traits we previously identified, allowing the model to differentiate parties based on their specific socio-cultural positions.
mds_coords <- mds_model3$points
cor_mds <- cor(data_scaled, mds_coords)
colnames(cor_mds) <- c("Cor_MDS1", "Cor_MDS2", "Cor_MDS3")
print(round(cor_mds, 3))## Cor_MDS1 Cor_MDS2 Cor_MDS3
## left_right 0.131 0.609 0.321
## welfare -0.230 -0.485 -0.274
## immigration_support -0.356 -0.073 -0.433
## religiosity -0.608 -0.049 -0.191
## lgbt_equality -0.737 -0.207 -0.070
## women_leadership -0.515 -0.293 -0.281
## women_labor -0.520 -0.345 -0.469
## anti_elitism 0.061 -0.791 0.555
## opponents_demonization -0.688 0.248 -0.012
## pluralism -0.759 0.112 0.395
## minority_rights -0.769 0.019 0.059
## rejection_violence -0.799 0.231 0.289
## cultural_superiority -0.695 -0.214 -0.112
## populism_index 0.107 -0.807 0.531
## clientelism 0.711 -0.140 -0.160
## personalization 0.612 -0.141 -0.094
## internal_cohesion 0.217 0.050 -0.187
## social_ties 0.539 -0.212 -0.379
Compared to the 2D MDS map, the 3D model visualized in a 2D projection shows a clearer dispersion of parties. Parties that appeared to overlap in 2D are now separated. The horizontal dimension (Dim1) remains the primary divider, mirroring the RC1 from the PCA maps. Established democracies from Region 5 are tightly clustered on the left, while authoritarian and personalized regimes are situated toward the right. Both MDS and PCA consistently isolate extreme cases. Venezuela and Equatorial Guinea remain at the far peripheries of the map, confirming their unique ideological profiles regardless of the method used.
The stress level of the three-dimensional model is around 18.27%, exhibiting a significant improvement compared to the 2D model. This value falls below the critical threshold of 0.2, moving the model’s fit from “poor” in 2D into the “fair-to-good” category. This mathematically confirms that the 3-dimensional structure is necessary to represent global party positions without excessive distortion. Individual Stress per Point has generally decreased across the dataset. While countries like Guinea-Bissau (1.37%) and Vietnam (1.01%) still show higher stress than the average, the overall accuracy of their placement has improved significantly compared to the 2D model.
## [1] 0.1827113
##
## Configurations:
## D1 D2 D3
## Albania -0.3408 0.1261 -0.4992
## Algeria 0.1787 -0.3759 -0.4782
## Angola -0.2845 -0.2680 -0.1447
## Argentina -0.4430 -0.2805 0.0596
## Armenia -0.3585 -0.6418 -0.2963
## Australia -0.9697 -0.3731 -0.1833
## Austria -0.2821 0.5246 0.3060
## Azerbaijan 0.7891 0.2972 -0.3853
## Bangladesh 0.4677 0.0622 -0.5152
## Barbados -0.4159 -0.0703 -0.2980
## Belgium -0.6050 0.1509 0.5128
## Benin 0.3291 0.0402 -0.2219
## Bhutan -0.4701 0.2502 0.5018
## Bolivia 0.2521 -0.6770 -0.1590
## Botswana -0.3028 0.2026 -0.0658
## Brazil -0.7439 -0.5916 0.1030
## Bulgaria -0.3239 0.1438 0.1759
## Burkina Faso -0.1263 -0.0003 -0.5261
## Burma/Myanmar -0.4092 -0.1716 0.4599
## Burundi 0.7880 -0.4817 0.1252
## Cambodia 0.6391 -0.0230 -0.1979
## Cameroon 0.2018 0.0403 -0.1750
## Canada -0.7855 -0.0884 -0.0134
## Cape Verde -0.3678 0.3761 -0.1340
## Chad 0.4518 0.2761 0.0101
## Chile -0.4423 0.5374 0.3938
## China 0.0635 0.0835 -0.5809
## Colombia -0.3326 -0.0740 0.2429
## Comoros -0.0367 0.1874 0.2271
## Costa Rica -0.5355 -0.0251 -0.1450
## Croatia -0.0710 0.2633 0.0976
## Cuba 0.0873 -0.8017 -0.4873
## Cyprus -0.2835 0.3164 0.1382
## Czech Republic -0.3695 -0.0325 0.4339
## Democratic Republic of the Congo 0.7407 -0.2169 -0.0588
## Denmark -0.8540 0.1727 -0.3422
## Djibouti 0.3459 0.1693 -0.1835
## Dominican Republic 0.0020 0.4324 -0.1987
## Ecuador 0.2502 -0.7606 -0.1464
## El Salvador 0.0218 0.5842 -0.0936
## Equatorial Guinea 0.9855 0.6203 -0.0514
## Eritrea 0.5606 -0.4837 -0.1369
## Estonia -0.7603 0.2878 -0.0313
## Ethiopia -0.0214 -0.3516 0.5023
## Fiji -0.0360 -0.1586 0.2714
## Finland -0.9351 -0.1852 -0.3622
## France -0.7359 0.1223 0.1731
## Gabon 0.4291 -0.2235 -0.0936
## Georgia -0.0225 -0.2138 -0.2051
## Germany -0.5257 0.4327 0.0602
## Ghana -0.2830 -0.3046 0.2291
## Greece -0.0374 0.3963 0.1912
## Guatemala -0.0835 -0.3992 0.1349
## Guinea 0.5235 -0.3711 0.0902
## Guinea-Bissau 0.1303 -0.0961 0.7278
## Haiti 0.3087 0.5043 -0.1314
## Honduras 0.5273 0.4873 -0.0629
## Hong Kong -0.1145 0.2056 -0.3775
## Hungary 0.9728 -0.1593 0.6153
## Iceland -0.5113 0.5100 -0.2309
## India 0.5259 0.2119 0.4788
## Indonesia -0.0101 -0.1652 0.0320
## Iran 0.1133 0.0266 0.3794
## Iraq 0.5821 0.2847 0.1321
## Ireland -0.8567 0.3724 -0.0685
## Israel -0.6780 0.7666 0.1436
## Italy -0.0999 -0.1469 0.6084
## Ivory Coast 0.1760 0.0322 -0.4196
## Jamaica -0.2785 0.0866 -0.2898
## Japan 0.1374 0.6504 -0.0026
## Kazakhstan -0.0595 0.4710 -0.3771
## Kenya 0.0258 0.3847 -0.2958
## Kosovo 0.1852 -0.5680 0.2480
## Kuwait 0.5368 0.4843 0.4174
## Kyrgyzstan 0.2054 0.5389 0.1611
## Laos 0.0977 -0.2251 -0.8417
## Latvia -0.4259 -0.4715 0.2814
## Lebanon 0.0176 0.1198 0.4294
## Lesotho -0.2206 0.3285 -0.4035
## Lithuania -0.4926 -0.1673 0.1636
## Luxembourg -0.7579 0.3996 -0.1454
## Madagascar 0.1277 0.2164 -0.0908
## Malawi 0.1264 0.4623 -0.0761
## Malaysia 0.7656 -0.0456 -0.1145
## Maldives -0.1936 -0.1475 0.3529
## Mali -0.3185 -0.1409 0.1458
## Malta -0.2964 -0.6426 0.2042
## Mauritania 0.8795 0.3550 -0.2083
## Mauritius -0.1368 -0.1485 -0.3895
## Mexico 0.0014 -0.7435 0.1778
## Moldova 0.2677 -0.1234 0.2498
## Mongolia 0.4084 -0.6075 0.3605
## Montenegro 0.0677 0.3466 -0.3981
## Morocco 0.0501 0.0304 0.1959
## Mozambique -0.1291 -0.0936 -0.5083
## Namibia 0.0303 -0.2761 -0.3359
## Nepal -0.1330 -0.4103 -0.2415
## Netherlands -0.4631 0.7172 0.3610
## New Zealand -0.6329 0.2884 0.1743
## Nicaragua 0.5223 -0.5684 -0.2602
## Niger 0.2728 -0.2298 0.1359
## Nigeria 0.2593 -0.2528 0.2363
## North Korea 0.5254 -0.1956 -0.9164
## North Macedonia 0.4106 0.3386 0.1465
## Norway -0.9821 -0.0626 -0.2593
## Pakistan 0.1904 -0.2707 0.4032
## Palestine/West Bank 0.8927 0.1550 0.5328
## Panama -0.1462 -0.1122 -0.0595
## Paraguay 0.4634 0.5269 0.0767
## Peru 0.4446 -0.2093 0.2189
## Philippines 0.1007 -0.5823 0.5151
## Poland 0.5647 -0.3518 0.5555
## Portugal -0.8562 -0.0759 0.0526
## Republic of the Congo -0.0024 0.3271 0.4360
## Romania -0.0094 -0.4074 -0.0604
## Russia 0.3546 0.3620 -0.2109
## Rwanda -0.2867 -0.4286 -0.6267
## Sao Tome and Principe -0.3454 0.2786 -0.0103
## Senegal -0.0802 0.1410 -0.1035
## Serbia 0.5595 -0.5130 0.2061
## Seychelles -0.1034 -0.2687 0.4968
## Sierra Leone 0.0333 0.1865 -0.2898
## Singapore 0.3063 0.6579 -0.3604
## Slovakia -0.0296 -0.4307 0.1824
## Slovenia 0.6230 -0.1648 0.7704
## Somalia 0.6459 -0.1036 -0.6536
## Somaliland 0.2517 0.3161 0.1047
## South Africa -0.4625 -0.4563 -0.0392
## South Korea -0.4813 -0.0128 0.1906
## Spain -0.7890 -0.2690 -0.3025
## Sri Lanka 0.2261 0.2228 0.2468
## Sudan 0.6825 0.2845 0.3062
## Sweden -0.9073 -0.1588 -0.2570
## Switzerland 0.2352 0.4442 1.1417
## Syria 0.3655 -0.3618 -0.3239
## Taiwan -0.7297 0.0575 -0.5333
## Tajikistan 0.7367 0.2101 -0.5340
## Tanzania -0.0249 -0.8443 0.1040
## Thailand -0.7479 -0.5124 0.3435
## The Gambia -0.3184 0.4708 0.0206
## Timor-Leste -0.1410 0.0930 0.4408
## Togo 0.3124 0.4327 -0.3880
## Trinidad and Tobago -0.4146 -0.1688 -0.1634
## Tunisia 0.0008 0.1382 0.3677
## Turkey 1.2345 0.0086 0.1425
## Turkmenistan 0.4063 0.4031 -0.7149
## Uganda 0.4512 0.0721 -0.3542
## Ukraine -0.4296 -0.2852 0.5134
## United Kingdom -0.2167 0.3834 0.6336
## United States of America 0.2467 0.3123 0.6318
## Uruguay -1.0107 -0.3155 -0.0776
## Uzbekistan -0.0740 0.5107 0.0485
## Venezuela 0.5594 -0.9872 -0.1213
## Vietnam -0.1613 0.3301 -0.6926
## Yemen 0.5061 0.1330 -0.0673
## Zambia 0.4757 -0.2317 -0.3934
## Zanzibar 0.1962 -0.1499 -0.1847
## Zimbabwe 0.7229 -0.1687 -0.3044
##
##
## Stress per point (in %):
## Albania Algeria
## 0.83 1.08
## Angola Argentina
## 0.46 0.33
## Armenia Australia
## 0.94 0.38
## Austria Azerbaijan
## 0.76 0.50
## Bangladesh Barbados
## 0.50 0.64
## Belgium Benin
## 0.65 0.68
## Bhutan Bolivia
## 0.89 0.47
## Botswana Brazil
## 0.47 0.43
## Bulgaria Burkina Faso
## 0.42 0.89
## Burma/Myanmar Burundi
## 0.54 0.73
## Cambodia Cameroon
## 0.36 0.29
## Canada Cape Verde
## 0.57 0.49
## Chad Chile
## 0.59 0.58
## China Colombia
## 0.87 0.60
## Comoros Costa Rica
## 0.52 0.67
## Croatia Cuba
## 0.44 0.56
## Cyprus Czech Republic
## 0.47 0.73
## Democratic Republic of the Congo Denmark
## 0.72 0.64
## Djibouti Dominican Republic
## 0.37 0.79
## Ecuador El Salvador
## 0.51 0.96
## Equatorial Guinea Eritrea
## 0.43 0.91
## Estonia Ethiopia
## 0.29 0.92
## Fiji Finland
## 0.62 0.45
## France Gabon
## 0.57 0.61
## Georgia Germany
## 0.52 0.32
## Ghana Greece
## 0.66 0.42
## Guatemala Guinea
## 0.39 0.72
## Guinea-Bissau Haiti
## 1.37 0.54
## Honduras Hong Kong
## 0.45 0.73
## Hungary Iceland
## 0.65 0.65
## India Indonesia
## 0.48 0.30
## Iran Iraq
## 0.57 0.37
## Ireland Israel
## 0.38 0.66
## Italy Ivory Coast
## 0.48 0.84
## Jamaica Japan
## 0.64 0.72
## Kazakhstan Kenya
## 0.72 0.87
## Kosovo Kuwait
## 0.65 0.92
## Kyrgyzstan Laos
## 0.88 1.19
## Latvia Lebanon
## 0.71 0.61
## Lesotho Lithuania
## 0.93 0.55
## Luxembourg Madagascar
## 0.49 0.37
## Malawi Malaysia
## 0.52 0.70
## Maldives Mali
## 0.82 0.54
## Malta Mauritania
## 0.71 0.59
## Mauritius Mexico
## 0.98 0.47
## Moldova Mongolia
## 0.64 0.73
## Montenegro Morocco
## 0.89 0.48
## Mozambique Namibia
## 0.52 0.79
## Nepal Netherlands
## 0.91 0.45
## New Zealand Nicaragua
## 0.38 0.78
## Niger Nigeria
## 0.69 0.51
## North Korea North Macedonia
## 1.17 0.77
## Norway Pakistan
## 0.32 0.71
## Palestine/West Bank Panama
## 0.54 0.35
## Paraguay Peru
## 0.67 1.01
## Philippines Poland
## 0.65 0.60
## Portugal Republic of the Congo
## 0.28 1.13
## Romania Russia
## 0.88 0.47
## Rwanda Sao Tome and Principe
## 0.90 0.43
## Senegal Serbia
## 0.31 0.66
## Seychelles Sierra Leone
## 0.55 0.57
## Singapore Slovakia
## 0.83 1.20
## Slovenia Somalia
## 0.85 0.68
## Somaliland South Africa
## 0.30 0.57
## South Korea Spain
## 0.42 0.48
## Sri Lanka Sudan
## 0.91 0.41
## Sweden Switzerland
## 0.32 0.83
## Syria Taiwan
## 0.63 0.55
## Tajikistan Tanzania
## 0.41 0.80
## Thailand The Gambia
## 0.64 0.54
## Timor-Leste Togo
## 0.55 0.61
## Trinidad and Tobago Tunisia
## 0.79 0.47
## Turkey Turkmenistan
## 0.43 1.00
## Uganda Ukraine
## 0.62 0.66
## United Kingdom United States of America
## 0.90 0.54
## Uruguay Uzbekistan
## 0.31 0.77
## Venezuela Vietnam
## 0.42 1.01
## Yemen Zambia
## 0.36 0.93
## Zanzibar Zimbabwe
## 0.55 0.79
To further validate our findings and explore the data from a modern machine learning perspective, we include t-Distributed Stochastic Neighbor Embedding (t-SNE) as our third dimensionality reduction method. It is a non-linear dimension reduction technique specifically designed for the visualization of high-dimensional datasets. Unlike PCA, which focuses on preserving global variance, or MDS, which preserves distances, t-SNE excels at preserving local structures. It works by converting similarities between data points into joint probabilities and minimizing the divergence between these probabilities in a low-dimensional space. T-SNE is highly effective at revealing natural groupings that might be obscured in linear models like PCA. Consistent with our overall methodology, we will test both 2D and 3D t-SNE.
Perplexity is the most critical parameter in t-SNE, acting as a balance between the local and global aspects of the data. A value of 30 is optimal for our dataset of 158 parties, as it allows the algorithm to consider a sufficient number of neighbors for each point, encouraging the formation of cohesive regional clusters rather than isolated fragments. The sharp decline in the error value in the final phases (Iteration 500: error 0.65) suggests that the algorithm found a high-quality local fit. This means that ideologically similar parties have been effectively grouped in the new 2D space.
set.seed(123)
tsne_results2 <- Rtsne(data_scaled, dims = 2, perplexity = 30, verbose = TRUE, max_iter = 500)## Performing PCA
## Read the 158 x 18 data matrix successfully!
## Using no_dims = 2, perplexity = 30.000000, and theta = 0.500000
## Computing input similarities...
## Building tree...
## Done in 0.00 seconds (sparsity = 0.714950)!
## Learning embedding...
## Iteration 50: error is 57.119821 (50 iterations in 0.01 seconds)
## Iteration 100: error is 57.552261 (50 iterations in 0.01 seconds)
## Iteration 150: error is 60.231891 (50 iterations in 0.01 seconds)
## Iteration 200: error is 57.162136 (50 iterations in 0.01 seconds)
## Iteration 250: error is 57.284576 (50 iterations in 0.01 seconds)
## Iteration 300: error is 1.592955 (50 iterations in 0.01 seconds)
## Iteration 350: error is 1.061030 (50 iterations in 0.01 seconds)
## Iteration 400: error is 0.760545 (50 iterations in 0.00 seconds)
## Iteration 450: error is 0.657907 (50 iterations in 0.00 seconds)
## Iteration 500: error is 0.651145 (50 iterations in 0.00 seconds)
## Fitting performed in 0.06 seconds.
The map successfully isolates the Western European and Liberal Democratic group (Region 5) in the top right quadrant. Their proximity in the t-SNE space confirms they share a highly specific and nearly identical ideological neighborhood. Parties from Region 1 and Region 4 are spread across the bottom and left sectors, showing significantly more internal diversity in their local structures than the democratic cluster. Highly populist parties like Venezuela and Mexico (Region 2) are grouped at the top left, maintaining their distance from the mainstream democratic parties. This consistency across PCA, MDS, and now t-SNE confirms that populism is a robust separator in global politics.
The final error in the 3D model dropped to 0.598, compared to 0.651 in the 2D model. This indicates that the 3 diemnsions are more successful at preserving the complex, high-dimensional relationships from the original 18 variables.
set.seed(123)
tsne_results3 <- Rtsne(data_scaled, dims = 3, perplexity = 30, verbose = TRUE, max_iter = 500)## Performing PCA
## Read the 158 x 18 data matrix successfully!
## Using no_dims = 3, perplexity = 30.000000, and theta = 0.500000
## Computing input similarities...
## Building tree...
## Done in 0.00 seconds (sparsity = 0.714950)!
## Learning embedding...
## Iteration 50: error is 55.629275 (50 iterations in 0.01 seconds)
## Iteration 100: error is 55.063800 (50 iterations in 0.02 seconds)
## Iteration 150: error is 59.356771 (50 iterations in 0.02 seconds)
## Iteration 200: error is 59.089903 (50 iterations in 0.02 seconds)
## Iteration 250: error is 58.842798 (50 iterations in 0.02 seconds)
## Iteration 300: error is 1.434180 (50 iterations in 0.02 seconds)
## Iteration 350: error is 0.962745 (50 iterations in 0.01 seconds)
## Iteration 400: error is 0.772789 (50 iterations in 0.01 seconds)
## Iteration 450: error is 0.645958 (50 iterations in 0.01 seconds)
## Iteration 500: error is 0.598696 (50 iterations in 0.01 seconds)
## Fitting performed in 0.13 seconds.
In the 3D t-SNE projection, the Western democratic cluster (Region 5) is even more isolated and compact than in the 2D version. This confirms that established democracies share a highly specific local neighborhood that is distinct from all other political families. Highly populist parties like Venezuela, Mexico, and Bolivia (Region 2) are tightly grouped in the bottom-left corner, far removed from the rest, reinforcing that their ideological profile is a unique local phenomenon in global politics. The Eastern Europe and Central Asia parties (Region 1), which showed significant overlap in 2D MDS and PCA, are now better separated into distinct sub-groups.
Before proceeding with clustering, we have to determine the optimal number of clusters. Based on the elbow plot we decided to opt for 4 clusters.
set.seed(123)
clusters <- kmeans(pca_coords, centers = 4)
data_vparty$cluster <- as.factor(clusters$cluster)Overall, the clustering results remain highly consistent across both the raw variable model and the PCA-based model. This stability proves that the PCA dimension reduction did not introduce any false patterns; rather, it preserved the core ideological structures while improving the model’s analytical precision. In the model using all 18 variables, China is unexpectedly grouped in Cluster 2 alongside stable democracies like Japan, the UK, and Austria. This is a statistical artifact caused by administrative similarities, which outvote the fundamental ideological differences in the raw data. The PCA-based clustering successfully identifies the ‘authoritarian signal’ by focusing on the core pillars of pluralism and power exercise. Consequently, China is moved to Cluster 3, joining Russia and North Korea.
This research successfully utilized a multi-methodological approach to map the ideological positioning of global ruling parties. By the analysis of results from Principal Component Analysis (PCA), Multidimensional Scaling (MDS), and t-SNE, we have established a robust framework for understanding contemporary political structures.
The analysis consistently proved that a three-dimensional model is superior to a 2D approach, as two-dimensional mappings resulted in excessive overlap. This necessity for three dimensions was confirmed by multiple statistical metrics: the 3D PCA achieved a substantial explained variance of 54.5%, the 3D MDS model reached a lower stress value of 0.18, and the 3D t-SNE reached its lowest error rate of 0.598.
The high degree of structural consistency between the variance-based PCA and the distance-based MDS further validates these results, proving that the identified axes are not mathematical artifacts but represent objective ideological divides. Furthermore, the non-linear t-SNE analysis confirmed that the local neighborhoods of parties are most accurately preserved in this tridimensional space. While the subsequent K-means clustering produced generally similar results across different data inputs, the model based on PCA dimensions proved to be analytically superior by filtering out secondary organizational noise.
The value of this research lies in its ability to move beyond simplistic “Left vs. Right” labels to identify three distinct pillars of modern governance: Liberal Democracy, Populist Style, and Socio-Cultural Identity. By proving that a 3D model is required to resolve the tensions inherent in hybrid regimes, this study provides a complex view of the political world. This added value is critical for understanding the current global decline of traditional liberal norms, offering a more reliable and theoretically sound tool for predicting party behavior in an increasingly polarized international environment.
De La Cerda, N., & Gunderson, J. R. (2024). Are party families in Europe ideologically coherent today?. European Journal of Political Research, 63(3), 1208-1226.
Marozzi, M. (2014). Construction, dimension reduction and uncertainty analysis of an index of trust in public institutions. Quality & Quantity, 48(2), 939-953.
Lindberg, S. I., Düpont, N., Higashijima, M., et al. (2022). Codebook Varieties of Party Identity and Organization (V–Party) V2. Varieties of Democracy (V–Dem) Project. https://doi.org/10.23696/vpartydsv2
Vrooman, J. C. (2012). Regimes and cultures of social security: Comparing institutional models through nonlinear PCA. International Journal of Comparative Sociology, 53(5-6), 444-477.