A Pythonic Package for Regression Discontinuity
Project description
State of the Art RD Packages For Python
Installation
Please note that installation should be done with a mixture of pip and direct installations in R so that the correct versions of packages are installed.
With pip for python:
pip install py_rdpackages
Important: you need to have the original rdrobust
installed in R:
install.packages('rdrobust')
Notes:
rdrobust
requires the newest version ofggplot2
so please:install.packages('ggplot2')
- The
rdrobust
andggplot2
versions in Anaconda lag behind the current release for R. Please install in R directly as opposed to through conda.
Introduction and Use
These packages are a work in progress, but are an attempt to create a wrapper to implement the wonderful RD packages found here (https://sites.google.com/site/rdpackages/rdrobust) which utilize R or Stata, so that they can be used in Python directly.
I utilize the graphics package of Seaborn to make the plots look nice and to enable additional features, like binning points by size.
There are three packages in py_rdpackages
:
rdplot
creates plots of the regression discontinuity with a variety of options.rdrobust
does the RD and reports the regression results.rdbwselect
selects the optimal bandwidth size.
A Example of the Output
The code in the testing folder produces the following example.
Requirements and Stability
Use of the programs requires all of the following packages in Python:
rpy2
for running R in Pythonmatplotlib
andseaborn
for producing high quality graphicspandas
,numpy
and for data manipulation and dataframe reading
Currently tested and stable for:
rdrobust
version 0.99.9rpy2
version 2.9.4 (last version updated through conda -- may work for later versions)ggplot2
version 3.3.0
Limitations
ryp2
produced slow pandas DF to R DF conversions, so I usepd.df.to_csv('temp_file_for_rd.csv')
as a solution and then delete that same file after doing the analysis. This should be fixed in future versions.- Of course, Python calling R and then converting back to python is not ideal. Some future version should code this from scratch.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for py_rdpackages-1.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af19553ef70a544a5aec6e195ce1f751a2c37c3f03848d262c56684f0ea88ac5 |
|
MD5 | 5c5c78bdd1d625c056159c2cff3ee2ec |
|
BLAKE2b-256 | dc43e8c34101a6724443a18587a1d5ba2c7d95bb18d5d871729f590d223e4436 |