{ "info": { "author": "Matthew Ritter", "author_email": "", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Science/Research", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Pre/Posterous\n=============\n\nEstimate the impact of an intervention, with simplicity and humility\n\n**Pre/Posterous is under active development** and the current release\ncan be considered a 'proof of concept'. The largest restriction is that\nit only imports data from the `Reporter\napp `__, which is my current default\nrecommendation for anyone who is trying to track something for\nQuantified Self.\n\nInstallation\n------------\n\nYou can install with ``pip install preposterous``\n\nIf you want to install from source, then clone this repository and run\n``pip install -e .`` from the project root.\n\nTesting\n-------\n\nTests can be seen in the ``tests/`` directory and run with ``pytest``\n\nUse cases\n---------\n\nQuantified Self data\n~~~~~~~~~~~~~~~~~~~~\n\nThe primary use case is for quantified self, where you have periodic\nmeasurements of the target metric (weight, categorical sleep quality,\nect) and potential interventions (medications, diet shifts, ect). This\nlibrary can organize these into 'natural experiments' that point the way\ntowards a causal relationship\n\n*Warning* Python is pretty great, but nothing can replace a well powered\n`Double Blind Randomized Controlled\nTrial `__ for\nestablishing causality. That said, many (most?) situations do not lend\nthemselves to RCTs, and yet we're still forced to make decisions. That's\nwhere tools like this, used with an appreciation for non-binary modes of\nbelief, can be helpful.\n\nExample\n-------\n\n::\n\n import preposterous.preposterous as ppl\n pdf = ppl.PrePostDF()\n pdf.add_outcome(filename='data/sample_reporter_output.csv')\n pdf.add_intervention(filename='data/sample_reporter_output.csv')\n\n # Sanity check the data\n pdf.basic_info()\n\n # Basic statistical test of difference between periods pre and post intervention\n pdf.fisher_test(intervention='Exercise')\n\n # Bayesian comparison of relative impact of multiple interventions\n # (note that the sample data only contains one)\n # Output is written to an image file named 'relative_effectiveness_YYYYMMDD.png'\n pdf.outcomes(\n positive_outcomes=['Totally fine'],\n negative_outcomes=['Noticeable', 'Distracting'],\n window=3\n )\n pdf.calculate_relative_effectiveness()\n _ = pdf.plot_relative_effectiveness()\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/matthewwritter/preposterous", "keywords": "quantified self,quantifiedself,statistics,bayesian statistics,time series", "license": "MIT", "maintainer": "Matthew Ritter", "maintainer_email": "", "name": "preposterous", "package_url": "https://pypi.org/project/preposterous/", "platform": "", "project_url": "https://pypi.org/project/preposterous/", "project_urls": { "Homepage": "https://github.com/matthewwritter/preposterous" }, "release_url": "https://pypi.org/project/preposterous/0.0.2/", "requires_dist": [ "ipython (==6.5.0)", "numpy (==1.15.0)", "pandas (==0.23.3)", "pytest (==3.7.1)", "scipy (==1.1.0)", "pypandoc (==1.4.0)", "matplotlib (>=2.2.2)", "pytest; extra == 'testing'" ], "requires_python": "", "summary": "A simple library for estimating the impact of an intervention, with humility", "version": "0.0.2" }, "last_serial": 4235046, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "8325551a13d2f02187f80653ae3c151c", "sha256": "3aa2936a992e6327185d13a79126805580f64d1947cdb9fc18918839f1c1b187" }, "downloads": -1, "filename": "preposterous-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8325551a13d2f02187f80653ae3c151c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4182, "upload_time": "2018-08-20T00:54:39", "url": "https://files.pythonhosted.org/packages/44/0e/db63a73704f9b6a368e5ad894a5f4ea6141d7875dbde0c482e0c87466110/preposterous-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "82ed042915452a4b019f165682488910", "sha256": "2e08be660f6d67b3ff6c813fa31430b1881419c4785755299d348397932fd881" }, "downloads": -1, "filename": "preposterous-0.0.1.tar.gz", "has_sig": false, "md5_digest": "82ed042915452a4b019f165682488910", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3999, "upload_time": "2018-08-20T00:54:40", "url": "https://files.pythonhosted.org/packages/0e/4f/bdf8a61e0fbe3e0affd1c73c53fe3ca4e9cec470070b07fcd175589090f1/preposterous-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "2614963b93935e8e6263fef6436e6329", "sha256": "8d3e4a32de196d332165eab61d90ef5d4fd34990d2456c2f23ebe71b2a81f9bb" }, "downloads": -1, "filename": "preposterous-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2614963b93935e8e6263fef6436e6329", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6244, "upload_time": "2018-09-03T17:50:33", "url": "https://files.pythonhosted.org/packages/4c/55/fd756ae07bb75828d165df4f9f26f90439563588a07baace232809f06f34/preposterous-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88cf78e4667dfde04aaa5809fa395a5c", "sha256": "729e745b62194f21605f4e77d370ce5ecd9305b5169dc759f12b21f77e128ee9" }, "downloads": -1, "filename": "preposterous-0.0.2.tar.gz", "has_sig": false, "md5_digest": "88cf78e4667dfde04aaa5809fa395a5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6096, "upload_time": "2018-09-03T17:50:34", "url": "https://files.pythonhosted.org/packages/c6/72/237409314766a688c4f3cdf754dc247a2583aa82b667320322017307117a/preposterous-0.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2614963b93935e8e6263fef6436e6329", "sha256": "8d3e4a32de196d332165eab61d90ef5d4fd34990d2456c2f23ebe71b2a81f9bb" }, "downloads": -1, "filename": "preposterous-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2614963b93935e8e6263fef6436e6329", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6244, "upload_time": "2018-09-03T17:50:33", "url": "https://files.pythonhosted.org/packages/4c/55/fd756ae07bb75828d165df4f9f26f90439563588a07baace232809f06f34/preposterous-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88cf78e4667dfde04aaa5809fa395a5c", "sha256": "729e745b62194f21605f4e77d370ce5ecd9305b5169dc759f12b21f77e128ee9" }, "downloads": -1, "filename": "preposterous-0.0.2.tar.gz", "has_sig": false, "md5_digest": "88cf78e4667dfde04aaa5809fa395a5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6096, "upload_time": "2018-09-03T17:50:34", "url": "https://files.pythonhosted.org/packages/c6/72/237409314766a688c4f3cdf754dc247a2583aa82b667320322017307117a/preposterous-0.0.2.tar.gz" } ] }