Shiny App



As per the Merriam-Webster dictionary, happiness is defined as a state of well-being and contentment. Over the years, several attempts have been made by philosophers and researchers to quantify happiness (for instance, see [1,2]). Such measures have then been used to determine the overall happiness levels of nations in the world. One such significant survey was conducted by Gallup World Poll and the data from this study was compiled in the World Happiness Report. The data from this study is available on Kaggle for the years 2015, 2016 and 2017. As per this study, six key variables play a role in determining the overall happiness of a nation. These include—

  1. GDP per Capita in terms of Purchasing Power Parity: The data for this variable was obtained from the World Development Indicators released by the World Bank.
  2. Life Expectancy: The data for life expectancy was obtained from World Health Organization along with the World Development Indicators.
  3. Family or Social Support: “If you were in trouble, do you have relatives or friends you can count on to help you whenever you need them, or not?”
  4. Freedom: “Are you satisfied or dissatisfied with your freedom to choose what you do with your life?”
  5. Generosity: “Have you donated money to a charity in the past month?”
  6. Government Corruption: “Is corruption widespread throughout the government or not” and “Is corruption widespread within businesses or not?”

Data for variables 3-6 (above) were collected based on binary responses to Gallup World Poll questions. The purpose of this blog and the shiny application is to provide life to the available raw data with the aid of visual graphics and to employ a bit of statistics to assess the importance of each of these variables on the overall happiness of various countries around the world.

Shiny App Layout and Design

The raw data from Kaggle was available as three separate Comma Separated Values files. The data in these files did not contain the latitude and longitude information that was necessary for constructing the Geo map using the gvisGeoChart function. Therefore, the package ‘rworldmap’ was used to import the latitude longitude information. Finally, the package ‘dplyr’ was used to clean up the data and the function ‘rbind’ was used to generate a single dataframe that was stored as Happiness_Data.Rdata file for data visualization and statistics.

With regards to the design of the shiny app, the cerulean theme from shinythemes was chosen for its simplicity. The app allows users to select a variable and year to interactively display various visualizations. All the source codes for this app are available on GitHub.

Data Visualization & Statistics

Several visualizations tools were employed to better understand the effect of each variable on the happiness of the nation as described below—

  • World map: The function ‘gvisGeoChart’ was used to creates contours of all the variables on the world map (see Figure-1). Green to Red coloring scheme was employed with the general interpretation that green color is closer to utopia (perfect country) while a red color indicates proximity to dystopia (an imaginary country that has the world’s least-happy people). It is evident from these plots that happier nations have lower corruption, higher life expectancy, high GDP and Freedom. Interestingly, the happiest countries are not necessarily as generous as some of the nations in Southeast Asia.

Figure 1: Visualizing each variable on the world map

  • Motion Chart: The inspiration for creating motion chart stem from Hans Rosling's TED talk as well as the Bubble Charts popularized by Professor Mike Ashby in the field of materials science. Motion charts show data in action and it is best visualized when used interactively. Visit the  shiny application for viewing the motion charts interactively. Motion charts are packed with all the information from the data frame and therefore display a variety of charts interactively. For instance, Figure-2 tracks the GDP and Life Expectancy of all nations from the year 2015 to 2017. Each country is a bubble in this motion chart and the size of the bubble is proportional to the total population of that country. The color of each bubble indicates the happiness rank with blue signifying happy nations and red highlighting unhappy nations. Motion charts also reveal the countries that have consistently (2015-2017) appeared at the top (or bottom) for each of the variables contributing towards the happiness score (see TABLE-1).

TABLE-1: Top and Bottom countries for all variables




Happiness Score

Switzerland (2015), Denmark (2016), Norway (2017) Togo (2015), Burundi (2016), Central African Republic (2017)

Life Expectancy

Singapore (2015, 2017) & Hong Kong (2016)

Sierra Leone (2015, 2016), Lesotho (2017)


Qatar (2015, 2016, 2017)

Congo (2015), Somalia (2016), Central African Republic (2017)


Least corrupt—Singapore (2017), Rwanda (2015, 2016) Most corrupt—Indonesia (2015), Bosnia and Herzegovina (2016, 2017)


Myanmar (2015, 2016, 2017)

Greece (2015, 2016, 2017)

An interesting feature of the motion plot is to enable the trails feature to track the progression of specific countries (bubbles). For illustrative purposes, Burundi, Syria, Nigeria and Switzerland were chosen for the trail plot solely based on the GDP. It is evident from the trail plot that the trajectory of these nations from 2015 to 2017 had a negative slope indicating that although the GDP increased during this time frame, the life expectancy values have come down. This observation holds true for most of the other nations as well. The negative slope is steep for Syria highlighting a significant decrease in life expectancy since 2015. Also, Syria and Nigeria appear to have similar scores for the GDP, but the life expectancy in Nigeria is significantly lower than Syria. Despite this, Nigeria seems to be relatively happier than Syria. It can be a good exercise for the reader to interactively investigate the motion charts further and determine if this data along with proximity of Syria to Europe provides a rationale for the influx of refugees over the past three years.



Figure 2: Motion charts

  • Box and Density Plots: We next focus on the box and density plots to view the effect of all the variables on the happiness score grouped by the specific continent. For the sake of discussion, only the plots for the year 2017 is discussed in this blog (see Figure-3). The shiny application gives the user the option of selecting the year to plot the box and density plots. It is evident from these plots that Australia and North America are the happiest regions with less variability from one country to another. Although, Europe has some of the happiest countries in the world (a lot of Nordic countries), there are several nations in Europe that are relatively unhappy (many countries in Southeast Europe). Likewise, most of the countries in Asia and Africa rank low on the happiness score and there is a significant variability from one country to another.

Figure 3: Box and Density plots

  • Correlation plot: This plot highlights the correlation between all the variables. A dark blue color indicates a strong positive correlation and a dark red color indicates a strong negative correlation. A white color indicates no correlation. Results based on a significance test with 95 % confidence level have also been superposed on this plot. Cells with 'X' indicate no significance between the variables based on this test. As expected, there is a strong dependence between GDP, Life Expectancy and the Happiness Score. One interesting observation from this plot is the fact that a nation’s generosity is not related to the GDP. In fact, Myanmar is the most generous nation and the data reveals that Syria is more generous than countries like United States and Germany. On a lighter note, it appears that Latitude has some correlation with Economy and Life Expectancy, whereas the Longitude does not. It does appear to make sense since there is a directional dependence based on whether a country lies above the Equator or below and the data appears to have captured this effect.

Figure 4: Correlation plot with significance

  • Tree map: As a reader of this blog, I am sure there is curiosity to view the ranking list of the happiest and least happiest nations in the world. The list of countries is displayed as a Tree plot on the shiny application for the year as input by the user. For this blog, the rankings are presented only for the year 2017 (see Figure-5). The coloring scheme used is such that a darker green color indicates a happier nation.

Figure 5: Tree plot—Ranking the happiest and the least happiest nations in the world


Visualization and Statistics bring life to the raw data and offer unparalleled insights into the relationship between the variables contributing to the happiness score.


[1]  Kalmijn, Wim, and Ruut Veenhoven. “Measuring inequality of happiness in nations: In search for proper statistics.” Journal of Happiness Studies 6.4 (2005): 357-396.

[2]  Frijters, Paul. “Measuring happiness, The Economics of Well-Being.” Journal of Economic Psychology 53 (2016): 180-183.

Shivakumar Ranganathan
Shivakumar Ranganathan
Shivakumar Ranganathan (Kumar) earned a PhD in mechanical engineering from the University of Illinois at Urbana-Champaign. He has a wide range of interests in Engineering, Medical Implants, Education and Data Science.

Leave a Reply

Your email address will not be published. Required fields are marked *