Skip to main content

Specification_Curve

Project description

Specification Curve

Specification Curve is a Python package that performs specification curve analysis; it helps with the problem of the "garden of forking paths" (many defensible choices) when doing analysis by running many regressions and summarising the effects in an easy to digest chart.

PyPI Status Python Version License Tests Codecov pre-commit Black Google Colab DOI Downloads

Linux macOS Windows

Source

Go to the full documentation for Specification Curve.

Quickstart

You can try out specification curve right now in Google Colab.

Here's an example of using Specification Curve.

# import specification curve
import specification_curve as specy


# Generate some fake data
# ------------------------
import numpy as np
import pandas as pd
# Set seed for random numbers
seed_for_prng = 78557
# prng=probabilistic random number generator
prng = np.random.default_rng(seed_for_prng)
n_samples = 400
# Number of dimensions
n_dim = 4
c_rnd_vars = prng.random(size=(n_dim, n_samples))
y_1 = (0.4*c_rnd_vars[0, :] -  # THIS IS THE TRUE VALUE OF THE COEFFICIENT
       0.2*c_rnd_vars[1, :] +
       0.3*prng.standard_normal(n_samples))
# Next line causes y_2 ests to be much more noisy
y_2 = y_1 - 0.5*np.abs(prng.standard_normal(n_samples))
# Put data into dataframe
df = pd.DataFrame([y_1, y_2], ['y1', 'y2']).T
df["x_1"] = c_rnd_vars[0, :]
df["c_1"] = c_rnd_vars[1, :]
df["c_2"] = c_rnd_vars[2, :]
df["c_3"] = c_rnd_vars[3, :]

# Specification Curve Analysis
#-----------------------------
sc = specy.SpecificationCurve(
    df,
    y_endog=['y1', 'y2'],
    x_exog="x_1",
    controls=["c_1", "c_2", "c_3"])
sc.fit()
sc.plot()

Grey squares (black lines when there are many specifications) show whether a variable is included in a specification or not. Blue or red markers and error bars show whether the coefficient is positive and significant (at the 0.05 level) or red and significant, respectively.

Installation

You can install Specification Curve via pip:

$ pip install specification-curve

To install the development version from git, use:

$ pip install git+https://github.com/aeturrell/specification_curve.git

License

Distributed under the terms of the MIT license.

Credits

The package is built with poetry, while the documentation is built with Jupyter Book. Tests are run with nox.

Similar Packages

In RStats, there is specr (which inspired many design choices in this package) and spec_chart. Some of the example data in this package is the same as in specr, but please note that results have not been cross-checked across packages.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

specification_curve-0.3.1.tar.gz (41.6 kB view details)

Uploaded Source

Built Distribution

specification_curve-0.3.1-py3-none-any.whl (38.6 kB view details)

Uploaded Python 3

File details

Details for the file specification_curve-0.3.1.tar.gz.

File metadata

  • Download URL: specification_curve-0.3.1.tar.gz
  • Upload date:
  • Size: 41.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for specification_curve-0.3.1.tar.gz
Algorithm Hash digest
SHA256 7f1ea2fc95d316fa13eb220db14c1901ce498017dd2e12c803e9752cfcf79d32
MD5 2990dd3822e254a8607f6dd97b1ea2d6
BLAKE2b-256 0180a03cb68504b610cdd1599da1ff80d5bca81c29c4da7cc80535e3cdb11454

See more details on using hashes here.

File details

Details for the file specification_curve-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for specification_curve-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3022dad0e587c05c77c9f76b840907520d870155105b48056f5ae91bcb479e72
MD5 bfe7f7e38c312d9406f19bea2d518910
BLAKE2b-256 e1a087b8f93135836a15b30e9fd4b2503e6eba026389516bc9b147fd567a55a6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page