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.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 37350ba9c81f722cf55cb418085738581be1728fa8ac8e9ec5153b7fd110fc86 |
|
MD5 | 1928f7473e8ea3165c95ac2457f1cba1 |
|
BLAKE2b-256 | b0adc86fe729ef0b1f4efa60b1e32939f0d700e10c1355eb3f9e4bd0861f72b3 |