Code Monkey home page Code Monkey logo

ose-scientific-computing-course-jdx-mafia-1's Introduction

Constrained optimization of the synthetic control method with application to the Economic Costs of Organised Crime (Pinotti, 2015)

Authors: Cremonese J., Syed M.D., Wang X.

Continuous Integration

License: MIT

This repository contains our replication project of The Economic Costs of Organised Crime: Evidence from Southern Italy (Pinotti, 2015) for the OSE Scientific Computing class at Bonn University held during the Winter Semester 2021-2022.

Replication project

The issue of organized crime represents a source of potentially adverse socio-economic repercussions across a plethora of communities worldwide, in part due to its prevalence in some form or the other in almost every country. To quantify its impact in the case of the infamous Italian mafia, we replicate the Pinotti (2015) investigation into the economic cost of organized crime in Italy. In doing so, we recreate its main results showing the effect of organized crime on GDP and, in the process, we gain insight into the complexities underlying the Synthetic Control Method (SCM).

This project begins with an overview of the topic of organized crime followed by an analysis of the paper featuring descriptive statistics, graphs, and a battery of robustness checks. We use this empirical context to introduce and motivate an implementation of the SCM, with emphasis on gradually building up the several optimization steps. This allows us to showcase the flaws of our earlier SCM optimization functions and gain some economic intuition in the process. Our implementations draw on the variety of algorithms available in Python's rich scientific libraries which can be used for our intermediate computations. Specifically, we draw on some of the state-of-the-art quadratic programming solvers including CVXOPT, OSQP, CPLEX, ECOS, and SLSQP using convenient wrappers in the form of CVXPY, qpsolvers, and scipy.optimize.

A final point of departure is the examination of a conflicting result by Becker and Klößner's (2017) response paper to Pinotti (2015). We attempt to reconcile their different findings by investigating some unexpected, recent developments in the literature on the computational challenges of SCM.

Repository guide

We recommend nbviewer to view the notebook as it provides a clear and seamless experience including any interactive graphs. Alternatively, the entire GitHub repository dedicated to the project can be downloaded and this notebook can be replicated locally via Jupyter Notebooks. A number of packages and libraries are used throughout the notebook, a full list with links to the respective online documentation is made available in the opening section of the notebook as well as in environment.yml.

The auxiliary folder contains .py files with code used in the main notebook, these files are organised according to the section of the notebook in which they are used. The dataset folder provides the original dataset provided by Pinotti as well as the German reunification dataset and the Basque Country dataset used in the main notebook.

Main references

The replication project rests on the following two papers:

ose-scientific-computing-course-jdx-mafia-1's People

Contributors

disj3ssica avatar github-classroom[bot] avatar kokomob avatar mdanialsyed avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.