{ "info": { "author": "Manuel Martinez", "author_email": "manmartgarc@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Stochatreat\n## Introduction\nThis is a Python module to employ block randomization using pandas. Mainly thought with RCTs in mind, it also works for any other scenario in where you would like to randomly allocate treatment within *blocks* or *strata*.\n\n## Installation\n```\npip install stochatreat\n```\n\n## Usage\nSingle cluster:\n```python\nfrom stochatreat import stochatreat\nimport numpy as np\nimport pandas as pd\n\n# make 1000 households in 5 different neighborhoods.\nnp.random.seed(42)\ndf = pd.DataFrame(data={'id': list(range(1000)),\n 'nhood': np.random.randint(1, 6, size=1000)})\n\n# randomly assign treatments by neighborhoods.\ntreats = stochatreat(data=df, # your dataframe\n block_cols='nhood', # the blocking variable\n treats=2, # including control\n idx_col='id', # the unique id column\n random_state=42)\n# merge back with original data\ndf = df.merge(treats, how='left', on='id')\n\n# check for allocations\ndf.groupby('nhood')['treat'].value_counts().unstack()\n\n# previous code should return this\ntreat 0.0 1.0\nnhood \n1 105 105\n2 95 95\n3 95 95\n4 103 103\n5 102 102\n```\n\nMultiple clusters and treatment probabilities:\n```python\nfrom stochatreat import stochatreat\nimport numpy as np\nimport pandas as pd\n\n# make 1000 households in 5 different neighborhoods, with a dummy indicator\nnp.random.seed(42)\ndf = pd.DataFrame(data={'id': list(range(1000)),\n 'nhood': np.random.randint(1, 6, size=1000),\n 'dummy': np.random.randint(0, 2, size=1000)})\n\n# randomly assign treatments by neighborhoods and dummy status.\ntreats = stochatreat(data=df,\n block_cols=['nhood', 'dummy'],\n treats=2,\n probs=[1/3, 2/3],\n idx_col='id',\n random_state=42)\n# merge back with original data\ndf = df.merge(treats, how='left', on='id')\n\n# check for allocations\ndf.groupby(['nhood', 'dummy'])['treat'].value_counts().unstack()\n\n# previous code should return this\ntreat 0.0 1.0\nnhood dummy \n1 0 38 74\n 1 33 65\n2 0 35 69\n 1 29 57\n3 0 30 58\n 1 34 68\n4 0 36 72\n 1 33 65\n5 0 34 67\n 1 35 68\n```\n\n## Acknowledgments\n- `stochatreat` is totally inspired by [Alvaro Carril's](https://acarril.github.io/) fantastic Stata package: [`randtreat`](https://acarril.github.io/posts/randtreat), which was published in [The Stata Journal](https://www.stata-journal.com/article.html?article=st0490) :trumpet:.\n- [David McKenzie's](http://blogs.worldbank.org/impactevaluations/tools-of-the-trade-doing-stratified-randomization-with-uneven-numbers-in-some-strata) fantastic post (and blog) about running RCTs for the World Bank.\n- [*In Pursuit of Balance: Randomization in Practice in Development Field Experiments.* Bruhn, McKenzie, 2009](https://www.aeaweb.org/articles?id=10.1257/app.1.4.200)\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/manmartgarc/stochatreat", "keywords": "randomization,block randomization", "license": "", "maintainer": "", "maintainer_email": "", "name": "stochatreat", "package_url": "https://pypi.org/project/stochatreat/", "platform": "", "project_url": "https://pypi.org/project/stochatreat/", "project_urls": { "Homepage": "https://github.com/manmartgarc/stochatreat" }, "release_url": "https://pypi.org/project/stochatreat/0.0.8/", "requires_dist": [ "pandas", "numpy", "pytest" ], "requires_python": "", "summary": "Randomized block assignment using pandas", "version": "0.0.8" }, "last_serial": 5577599, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "71381c470a83352d436c5a4ac4948c65", "sha256": "c42851949dd4d3680a4ee46f2a763627220c4604d3faa2858fc2ee40028577ea" }, "downloads": -1, "filename": "stochatreat-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "71381c470a83352d436c5a4ac4948c65", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6425, "upload_time": "2019-07-10T17:58:00", "url": "https://files.pythonhosted.org/packages/0c/50/2d4ac5650ab2331895874d589f1e2f3e63eb8a7da91dc8975b1fd8a23d63/stochatreat-0.0.1-py3-none-any.whl" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "412905039170183cd78378b8e236c857", "sha256": "4a08616c3039a31e363c97d9ff673fe62cc8b280ad2763c81abebde3b28cd55a" }, "downloads": -1, "filename": "stochatreat-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "412905039170183cd78378b8e236c857", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6526, "upload_time": "2019-07-10T18:18:16", "url": "https://files.pythonhosted.org/packages/c0/5f/66e5c2a9b01f3ee11a39aa2ece5f6018ee832d529efd7b7435ea07b1a4c6/stochatreat-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4a731727ea0eda347692721e132beb0", "sha256": "b7a542d58fee3b7a5e41a7d2fc0bd5a4665b13ef34d6bb1edd2a27803bdf6708" }, "downloads": -1, "filename": "stochatreat-0.0.2.tar.gz", "has_sig": false, "md5_digest": "d4a731727ea0eda347692721e132beb0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4739, "upload_time": "2019-07-10T18:18:18", "url": "https://files.pythonhosted.org/packages/ec/b3/d85d4a44a9b811afbd41cfb1c4719bfee366bec2b6ac3a5cd5af3079fa04/stochatreat-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "7404403e7830c6d7e95bbb8b39295e40", "sha256": "04ae1000b3cf5a4f1ce92693021775a3af564eb432c87d92fab8eb37ac97e0cc" }, "downloads": -1, "filename": "stochatreat-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7404403e7830c6d7e95bbb8b39295e40", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6113, "upload_time": "2019-07-11T14:07:14", "url": "https://files.pythonhosted.org/packages/36/41/c8d3f27cad5954be249d4e0eb20c00017cc67139e88ef9ada508ea4708c7/stochatreat-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3cb6376907c6c1501bd975f14d36b3b7", "sha256": "cf301a8a60b530fe22700dbfc55c9b5aa875c76e8d84b4837d9cfa1d65bb72b5" }, "downloads": -1, "filename": "stochatreat-0.0.3.tar.gz", "has_sig": false, "md5_digest": "3cb6376907c6c1501bd975f14d36b3b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4617, "upload_time": "2019-07-11T14:07:16", "url": "https://files.pythonhosted.org/packages/40/79/0975fe69912e5ae4b7c5936ef9ea99a5848c4b210c4b2b7a1bbb7fa9b5cf/stochatreat-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "b9a3bc04626541e8a7f7dc00c8aa5be1", "sha256": "d08eca733ef4c9a88401b054e7cb2e046eb847333b89b779183d4b5b31082c17" }, "downloads": -1, "filename": "stochatreat-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "b9a3bc04626541e8a7f7dc00c8aa5be1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6177, "upload_time": "2019-07-15T18:25:55", "url": "https://files.pythonhosted.org/packages/b0/9c/fa8a31eb4e04a0ae4dab9e0d8d28b5c1549f3bf43550d169bb7c465dd164/stochatreat-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6d4c061efb7d14d11857e07faa317838", "sha256": "ed6772556edb9703f07cfd5d2cffba2e0c60782bee2f427cbf6e718b6494eefc" }, "downloads": -1, "filename": "stochatreat-0.0.4.tar.gz", "has_sig": false, "md5_digest": "6d4c061efb7d14d11857e07faa317838", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4681, "upload_time": "2019-07-15T18:25:56", "url": "https://files.pythonhosted.org/packages/3d/5b/6ad0e36181300b432af4b16800465227bd016923b898bc42ba6fe45883d6/stochatreat-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "2fa2cabde5f217a89bd8a35d9840921a", "sha256": "92ff4b92680d55ac2169ce3bda7d250ef1c6abe62bb32fb10a029fe9a6ffaced" }, "downloads": -1, "filename": "stochatreat-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "2fa2cabde5f217a89bd8a35d9840921a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6174, "upload_time": "2019-07-15T20:24:38", "url": "https://files.pythonhosted.org/packages/8c/c4/de36e4dd3be30e7c0e56fbdcf27a5f19ac7456c397559ac67e74dffd1456/stochatreat-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "96a0641ce39da9c00298443f7df1782a", "sha256": "3522942b038c6f8a7aaa0e792c15ef988428ef523485cb430d13b2277967ab20" }, "downloads": -1, "filename": "stochatreat-0.0.5.tar.gz", "has_sig": false, "md5_digest": "96a0641ce39da9c00298443f7df1782a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4969, "upload_time": "2019-07-15T20:24:40", "url": "https://files.pythonhosted.org/packages/47/12/b4c5368b350a872736523967cb6621c65e0a49a0c11a8dcaba3608e81c40/stochatreat-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "fe74a8aeb30e60f0f4c5fc9f6a33bf37", "sha256": "1a54c4719d51c8d43fee6fd84f48d9ed6a0ddcc86d926153a210a58c2e0d9c09" }, "downloads": -1, "filename": "stochatreat-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "fe74a8aeb30e60f0f4c5fc9f6a33bf37", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7165, "upload_time": "2019-07-19T15:05:34", "url": "https://files.pythonhosted.org/packages/8a/e0/7e6b5745c22b896fe1eb07282245349058d48de8c53dcf12923a8abe367d/stochatreat-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e56e7edb3b3902678472962a7487f47d", "sha256": "1ef72f04a94259c7b3beb6de9eb4facfb04b30e2e7ca2b8ec8c3c20588143b04" }, "downloads": -1, "filename": "stochatreat-0.0.6.tar.gz", "has_sig": false, "md5_digest": "e56e7edb3b3902678472962a7487f47d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6519, "upload_time": "2019-07-19T15:05:35", "url": "https://files.pythonhosted.org/packages/b4/3a/347821778e3059ae82674a75701d586e2190115fdfcb5ad8706868959eb9/stochatreat-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "348f79c19ec8eeac4b2e41f1a585f95d", "sha256": "659814a3ebc45b784bce79d1d1d3d69581759ae5681aad562eb3e5eb89d6a66b" }, "downloads": -1, "filename": "stochatreat-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "348f79c19ec8eeac4b2e41f1a585f95d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7201, "upload_time": "2019-07-23T13:50:44", "url": "https://files.pythonhosted.org/packages/b4/b2/c80bb84efb7dfaf5f3b9927481d3937461f65bb28ce4c9f543d1cd298217/stochatreat-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49d1acf5b504206a49df1c67f7d822be", "sha256": "ad764601df9ac449761050bfc4e15656113199733efe48f9a38dca43b72b1537" }, "downloads": -1, "filename": "stochatreat-0.0.7.tar.gz", "has_sig": false, "md5_digest": "49d1acf5b504206a49df1c67f7d822be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6550, "upload_time": "2019-07-23T13:50:45", "url": "https://files.pythonhosted.org/packages/b1/df/1a3c08c861309908ee810df62a950fa8e288f5b30d6e249f873260c9b256/stochatreat-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "f1af4d7f871de60300c7453d5b50accf", "sha256": "90c2423e42de8005e3ef598ffb51b0fd60ddc4fe270a75326270ae643437e4cc" }, "downloads": -1, "filename": "stochatreat-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "f1af4d7f871de60300c7453d5b50accf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7297, "upload_time": "2019-07-24T13:25:41", "url": "https://files.pythonhosted.org/packages/9a/86/bdf8fd6a4f83884ea4f4dc43c93f9b892179ee1f913a242729c247ab3cbd/stochatreat-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c787757cb254e4ded617e92558e13a81", "sha256": "852ba3230fbe2e649948d7b5f6cdab419a51df8202f5285792180dba6ff9d021" }, "downloads": -1, "filename": "stochatreat-0.0.8.tar.gz", "has_sig": false, "md5_digest": "c787757cb254e4ded617e92558e13a81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6651, "upload_time": "2019-07-24T13:25:43", "url": "https://files.pythonhosted.org/packages/15/00/b2e1543376d9c529f583e78f8fe20c3ffef3d9c617fc653d74b0cc7ec1c7/stochatreat-0.0.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f1af4d7f871de60300c7453d5b50accf", "sha256": "90c2423e42de8005e3ef598ffb51b0fd60ddc4fe270a75326270ae643437e4cc" }, "downloads": -1, "filename": "stochatreat-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "f1af4d7f871de60300c7453d5b50accf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7297, "upload_time": "2019-07-24T13:25:41", "url": "https://files.pythonhosted.org/packages/9a/86/bdf8fd6a4f83884ea4f4dc43c93f9b892179ee1f913a242729c247ab3cbd/stochatreat-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c787757cb254e4ded617e92558e13a81", "sha256": "852ba3230fbe2e649948d7b5f6cdab419a51df8202f5285792180dba6ff9d021" }, "downloads": -1, "filename": "stochatreat-0.0.8.tar.gz", "has_sig": false, "md5_digest": "c787757cb254e4ded617e92558e13a81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6651, "upload_time": "2019-07-24T13:25:43", "url": "https://files.pythonhosted.org/packages/15/00/b2e1543376d9c529f583e78f8fe20c3ffef3d9c617fc653d74b0cc7ec1c7/stochatreat-0.0.8.tar.gz" } ] }