Skip to main content

A simple library for estimating the impact of an intervention, with humility

Project description

Estimate the impact of an intervention, with simplicity and humility

Pre/Posterous is under active development and the current release can be considered a ‘proof of concept’. The largest restriction is that it only imports data from the Reporter app, which is my current default recommendation for anyone who is trying to track something for Quantified Self.

Installation

You can install with pip install preposterous

If you want to install from source, then clone this repository and run pip install -e . from the project root.

Testing

Tests can be seen in the tests/ directory and run with pytest

Use cases

Quantified Self data

The primary use case is for quantified self, where you have periodic measurements of the target metric (weight, categorical sleep quality, ect) and potential interventions (medications, diet shifts, ect). This library can organize these into ‘natural experiments’ that point the way towards a causal relationship

Warning Python is pretty great, but nothing can replace a well powered Double Blind Randomized Controlled Trial for establishing causality. That said, many (most?) situations do not lend themselves to RCTs, and yet we’re still forced to make decisions. That’s where tools like this, used with an appreciation for non-binary modes of belief, can be helpful.

Example

import preposterous.preposterous as ppl
pdf = ppl.PrePostDF()
pdf.add_outcome(filename='data/sample_reporter_output.csv')
pdf.add_intervention(filename='data/sample_reporter_output.csv')

# Sanity check the data
pdf.basic_info()

# Basic statistical test of difference between periods pre and post intervention
pdf.fisher_test(intervention='Exercise')

# Bayesian comparison of relative impact of multiple interventions
# (note that the sample data only contains one)
# Output is written to an image file named 'relative_effectiveness_YYYYMMDD.png'
pdf.outcomes(
    positive_outcomes=['Totally fine'],
    negative_outcomes=['Noticeable', 'Distracting'],
    window=3
)
pdf.calculate_relative_effectiveness()
_ = pdf.plot_relative_effectiveness()

Project details


Download files

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

Files for preposterous, version 0.0.2
Filename, size File type Python version Upload date Hashes
Filename, size preposterous-0.0.2-py3-none-any.whl (6.2 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size preposterous-0.0.2.tar.gz (6.1 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page