pysimmmulator


Namepysimmmulator JSON
Version 0.4.1 PyPI version JSON
download
home_page
SummaryPython package for generating MMM (Marketing Mix Model) input data
upload_time2024-03-06 15:48:11
maintainer
docs_urlNone
author
requires_python>=3.8
licenseYEAR: 2024 COPYRIGHT HOLDER: Ryan Duecker
keywords marketing media model mmm simulate simmmulator
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <img align="left" src="PySiMMMulator_logo.png" alt="logo" width="150"/>

# PySiMMMulator

[![CodeFactor](https://www.codefactor.io/repository/github/ryanaugust/pysimmmulator/badge)](https://www.codefactor.io/repository/github/ryanaugust/pysimmmulator)
[![PyPI Downloads](https://img.shields.io/pypi/dm/pysimmmulator.svg?label=PyPI%20downloads)](
https://pypi.org/project/pysimmmulator/)

PySiMMMulator is an open source Python adaption of the R-package [siMMMulator](https://github.com/facebookexperimental/siMMMulator), which allows users to generate simulated data to use in testing Marketing Mix Models (MMMs).
While this package cointains a full pipeline for data generation (configurable via .conf file) it can also be utilized in parts to generate select portions of MMM input data (ie campaign/channel spend)

## Installation

Accessable via PyPI

```bash
pip install pysimmmulator
```

## Usage

PySiMMMulator's simulator can either be run on a step-by-step basis, or can be run single-shot by passing a config file.

### Run via config

Run using this method, you'll be returned both a dataframe of for MMM input as well as the "True ROI" values for each of your channels. These true values are critical to validating your MMM model.

```python
cfg = load_config(config_path="./my_config.yaml")
sim = simmm()
mmm_input_df, channel_roi = sim.run_with_config(config=cfg)
```

### Run by stages

Alternatively you may run each of the stages independently, which allows for easier debugging and in-run adjustments based on the results of each stage. The order of the stages is reflected below **(without their inputs)**. Once you've run through every stage, results are available by calling the `sim.final_df` object (channel ROI results are stored as `sim.channel_roi`).

```python
sim = simmm()
sim.simulate_baseline()
sim.simulate_ad_spend()
sim.simulate_media()
sim.simulate_cvr()
sim.simulate_decay_returns()
sim.calculate_conversions()
sim.consolidate_dataframe()
sim.calculate_channel_roi()
sim.finalize_output()
```

### Run via CLI

A configuration file is required as input for this and should be passed as seen below. An output path can also be passed via `-o`, however when not passed the current working directory will be used.

```bash
pysimmm -i example_config.yaml -o .
```

## Development

Setting up a dev environment

```bash
conda create --prefix=./env python=3.11
conda activate ./env
pip install -e '.[dev]'
```

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "pysimmmulator",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "Marketing,Media,Model,MMM,Simulate,SiMMMulator",
    "author": "",
    "author_email": "Ryan Duecker <ryan.duecker@yahoo.com>",
    "download_url": "https://files.pythonhosted.org/packages/22/02/236e9cd83fae61f78dca30961e356be0e5dcb63ea6c659811e3ca16bf463/pysimmmulator-0.4.1.tar.gz",
    "platform": null,
    "description": "<img align=\"left\" src=\"PySiMMMulator_logo.png\" alt=\"logo\" width=\"150\"/>\n\n# PySiMMMulator\n\n[![CodeFactor](https://www.codefactor.io/repository/github/ryanaugust/pysimmmulator/badge)](https://www.codefactor.io/repository/github/ryanaugust/pysimmmulator)\n[![PyPI Downloads](https://img.shields.io/pypi/dm/pysimmmulator.svg?label=PyPI%20downloads)](\nhttps://pypi.org/project/pysimmmulator/)\n\nPySiMMMulator is an open source Python adaption of the R-package [siMMMulator](https://github.com/facebookexperimental/siMMMulator), which allows users to generate simulated data to use in testing Marketing Mix Models (MMMs).\nWhile this package cointains a full pipeline for data generation (configurable via .conf file) it can also be utilized in parts to generate select portions of MMM input data (ie campaign/channel spend)\n\n## Installation\n\nAccessable via PyPI\n\n```bash\npip install pysimmmulator\n```\n\n## Usage\n\nPySiMMMulator's simulator can either be run on a step-by-step basis, or can be run single-shot by passing a config file.\n\n### Run via config\n\nRun using this method, you'll be returned both a dataframe of for MMM input as well as the \"True ROI\" values for each of your channels. These true values are critical to validating your MMM model.\n\n```python\ncfg = load_config(config_path=\"./my_config.yaml\")\nsim = simmm()\nmmm_input_df, channel_roi = sim.run_with_config(config=cfg)\n```\n\n### Run by stages\n\nAlternatively you may run each of the stages independently, which allows for easier debugging and in-run adjustments based on the results of each stage. The order of the stages is reflected below **(without their inputs)**. Once you've run through every stage, results are available by calling the `sim.final_df` object (channel ROI results are stored as `sim.channel_roi`).\n\n```python\nsim = simmm()\nsim.simulate_baseline()\nsim.simulate_ad_spend()\nsim.simulate_media()\nsim.simulate_cvr()\nsim.simulate_decay_returns()\nsim.calculate_conversions()\nsim.consolidate_dataframe()\nsim.calculate_channel_roi()\nsim.finalize_output()\n```\n\n### Run via CLI\n\nA configuration file is required as input for this and should be passed as seen below. An output path can also be passed via `-o`, however when not passed the current working directory will be used.\n\n```bash\npysimmm -i example_config.yaml -o .\n```\n\n## Development\n\nSetting up a dev environment\n\n```bash\nconda create --prefix=./env python=3.11\nconda activate ./env\npip install -e '.[dev]'\n```\n",
    "bugtrack_url": null,
    "license": "YEAR: 2024 COPYRIGHT HOLDER:  Ryan Duecker",
    "summary": "Python package for generating MMM (Marketing Mix Model) input data",
    "version": "0.4.1",
    "project_urls": null,
    "split_keywords": [
        "marketing",
        "media",
        "model",
        "mmm",
        "simulate",
        "simmmulator"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d468e6dbe4b5d4abce898b558f90f983c7bf5089f4ef4f40e47120ea3b27287c",
                "md5": "accf8191e8f9477e5661c8ee3a837eb8",
                "sha256": "14861b967d04b68045eb76bb009ac264174dc6268a0501949283aa6c6a04f993"
            },
            "downloads": -1,
            "filename": "pysimmmulator-0.4.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "accf8191e8f9477e5661c8ee3a837eb8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 13841,
            "upload_time": "2024-03-06T15:48:10",
            "upload_time_iso_8601": "2024-03-06T15:48:10.187735Z",
            "url": "https://files.pythonhosted.org/packages/d4/68/e6dbe4b5d4abce898b558f90f983c7bf5089f4ef4f40e47120ea3b27287c/pysimmmulator-0.4.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2202236e9cd83fae61f78dca30961e356be0e5dcb63ea6c659811e3ca16bf463",
                "md5": "3f7667f3d8d94e7e69b282e81483bcad",
                "sha256": "7de5c4870d04d0ee0d8cd9a7e9ba378af0a86037bc1eef5d09e6775935a6a769"
            },
            "downloads": -1,
            "filename": "pysimmmulator-0.4.1.tar.gz",
            "has_sig": false,
            "md5_digest": "3f7667f3d8d94e7e69b282e81483bcad",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 67144,
            "upload_time": "2024-03-06T15:48:11",
            "upload_time_iso_8601": "2024-03-06T15:48:11.905378Z",
            "url": "https://files.pythonhosted.org/packages/22/02/236e9cd83fae61f78dca30961e356be0e5dcb63ea6c659811e3ca16bf463/pysimmmulator-0.4.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-06 15:48:11",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "pysimmmulator"
}
        
Elapsed time: 0.20259s