{ "info": { "author": "Arne Leijon", "author_email": "leijon@kth.se", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Topic :: Multimedia :: Sound/Audio", "Topic :: Scientific/Engineering :: Information Analysis" ], "description": "Package **PairedCompCalc** implements probabilistic Bayesian analysis\nof Paired-Comparison data collected from psycho-physical experiments.\nPaired comparisons are used, for example,\nto evaluate the subjective sound quality of two or more different hearing aids\nor any other quality aspects of any multimedia presentations.\n\nThe analysis model estimates quality parameters numerically on an objective *interval scale*,\nalthough the raw input data are *subjective*\nand indicate only an *ordinal* judgment for each presented pair.\n\n## Paired-comparison Experiments\nIn a paired-comparison test procedure, each presentation includes exactly two test items,\nand the test participant indicates a binary or graded judgment\nabout which of the two items is better in terms of the *perceptual attribute*\nbeing investigated.\nThe perceptual attribute might be, for example, *speech clarity*, *sound quality*,\nor whatever is specified by the instructions to participants.\nThe paired-comparison procedure can be applied\neven if the difference between tested objects is very subtle,\neven so small that the difference is just barely notieable.\n\nData can be collected either in controlled *laboratory sessions*,\nor by *Ecological Momentary Assessment (EMA)*, where each subject\nevaluates the tested objects, e.g., hearing-aid programs,\nwhile using them normally in real life.\n\nThis package does *not* include functions to administer the actual experiment;\nit can only use existing results from an earlier experiment.\nThe package can analyse data from simple or quite complex experimental designs,\nincluding the following features:\n\n1. The experiment must include two or more **Test Objects** (A, B, C, etc.).\n The analysis results will show quality parameters for all objects,\n but the first object will always be used as a reference with quality = 0,\n because the zero point on the scale is arbitrary.\n\n1. One or more distinct **Participant Groups** may be included.\n The analysis will show systematic differences between groups.\n\n1. One or more **Perceptual Attributes** may be evaluated.\n The analysis will show correlations between different attributes.\n\n1. Response data may be collected in one or more distinct **Test Conditions**.\n Each test condition may be a combination of categories from one or more *Test Factors*.\n For example, one test factor may be *Stimulus Type*,\n with categories *Speech*, or *Music*.\n Another test factor may be, e.g.,\n *Background*, with categories *Quiet*, or *Weak Noise*, or *Loud Noise*.\n The analysis will show quality differences between categories within each test factor.\n\n1. The subjects' **Responses** may be either *binary*, e.g.,\n *B better than A*, or include an *ordinal grading* of the perceived difference, e.g.,\n *no difference*, *slightly better*, or *much better*.\n\n1. The analysis model does not require anything about the number of\n replicated judgments for each pair, and the numbers may differ among subjects.\n Of course, the reliability is improved if there are\n many test participants, each giving many judgments\n for each pair of objects.\n The analysis estimates the *statistical credibility*\n of any observed quality differences,\n given the amount of collected data.\n The analysis also performs an approximate Likelihood-Ratio test for\n any significant differences among objects in the population\n from which the test participants were recruited.\n\n\nThe Bayesian model is hierarchical.\nThe package can estimate predictive distributions of results for\n* a random individual in the group of test participants,\n* a random individual in the population from which the participants were recruited,\n* the mean quality parameters in the population.\n\n## Package Documentation\nGeneral information and version history is given in the package doc-string that may be accessed by command\n`help(PairedCompCalc)`.\n\nSpecific information about the organisation and accepted formats of input data files\nis presented in the doc-string of module pc_data, accessible via `help(PairedCompCalc.pc_data)`.\nThe most flexible file format is Excel (xlsx), where each work-sheet row\ncontains data for one presentation and response.\n\nAfter running an analysis, the logging output briefly explains\nthe analysis results presented in figures and tables.\n\n## Usage\n1. Install the most recent package version:\n `python3 -m pip install --upgrade PairedCompCalc`\n\n1. Copy the template script `run_pc.py`, rename it, and\n edit the copy as suggested in the template, to specify\n - your experimental layout,\n - the top input data directory,\n - a directory where all output result files will be stored.\n\n1. Run your edited script: `python3 run_my_pc.py`.\n\n1. When planning an experiment, the statistical power can be crudely predicted,\n to estimate the number of test participants needed to get a desired statistical strength.\n Copy, edit, and run the script template `run_plan.py`\n\n1. In the planning phase, complete analysis results may also be calculated\n for synthetic data generated from simulated experiments.\n Simulated experiments allow the same design variants as real experiments.\n Copy, edit, and run the script template `run_sim.py`.\n\n## Requirements\nThis package requires Python 3.6 or newer, with Numpy, Scipy, and Matplotlib,\nas well as a support package samppy, and openpyxl for reading xlsx files.\nThe pip installer will check and install the required packages if needed.\n\n## References\nA. Leijon, M. Dahlquist, and K. Smeds (2019).\nBayesian analysis of paired-comparison sound quality ratings.\n*Manuscript in preparation*.\n\nK. Smeds, F. Wolters, J. Larsson, P. Herrlin, and M. Dahlquist (2018).\nEcological momentary assessments for evaluation of hearing-aid preference.\n*J Acoust Soc Amer* 143(3):1742\u20131742. [download](https://asa.scitation.org/doi/10.1121/1.5035685)\n\nM. Dahlquist and A. Leijon (2003).\nPaired-comparison rating of sound quality using MAP parameter estimation for data analysis.\nIn *First ISCA Tutorial and Research Workshop on Auditory Quality of Systems*,\nMont-Cenis, Germany. [download](https://www.isca-speech.org/archive_open/aqs2003/aqs3_079.html)\n\nThis Python package is a re-implementation and generalization of a similar MatLab package,\ndeveloped by Arne Leijon for *ORCA Europe, Widex A/S, Stockholm, Sweden*.\nThe MatLab development was financially supported by *Widex A/S, Denmark*.\n\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": "", "keywords": "paired-comparison Bayesian psycho-physics", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "PairedCompCalc", "package_url": "https://pypi.org/project/PairedCompCalc/", "platform": "", "project_url": "https://pypi.org/project/PairedCompCalc/", "project_urls": null, "release_url": "https://pypi.org/project/PairedCompCalc/1.0.0/", "requires_dist": [ "numpy", "scipy", "matplotlib", "samppy", "openpyxl" ], "requires_python": ">=3.6", "summary": "Statistical Analysis of Paired-Comparison Data", "version": "1.0.0" }, "last_serial": 5112491, "releases": { "0.8.2": [ { "comment_text": "", "digests": { "md5": "7a5b1e9ed777755c481a28db29bbe391", "sha256": "b4c25ac14d032e3085954372b20eaecdfbdafd39b78bc6438e903e56fc007715" }, "downloads": -1, "filename": "PairedCompCalc-0.8.2-py3-none-any.whl", "has_sig": false, "md5_digest": "7a5b1e9ed777755c481a28db29bbe391", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 66501, "upload_time": "2018-08-15T10:21:56", "url": "https://files.pythonhosted.org/packages/21/c6/580937e451208f522f59c79ff08978dcd4e6cdd067941e5522dd8ea75063/PairedCompCalc-0.8.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "048623416810e93b835a5f3b05b862d0", "sha256": "793c932cba2e2be629f0f70129d3d3c00e7f349d24b903890731c6f54c22fc74" }, "downloads": -1, "filename": "PairedCompCalc-0.8.2.tar.gz", "has_sig": false, "md5_digest": "048623416810e93b835a5f3b05b862d0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 59026, "upload_time": "2018-08-15T10:21:57", "url": "https://files.pythonhosted.org/packages/be/3b/09bdd3ccaaa0cb3f0c29104cae81caafc1412160e1316bf7e527a794106c/PairedCompCalc-0.8.2.tar.gz" } ], "0.8.3": [ { "comment_text": "", "digests": { "md5": "dec804b0e5ec3be659070483b835e74a", "sha256": "cba49b8a58c8be86bd7074b152a93e40e86a986ac68bcd9fcd710284fe082deb" }, "downloads": -1, "filename": "PairedCompCalc-0.8.3-py3-none-any.whl", "has_sig": false, "md5_digest": "dec804b0e5ec3be659070483b835e74a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 66498, "upload_time": "2018-08-15T13:14:45", "url": "https://files.pythonhosted.org/packages/47/7e/339d757396abb64d648b7785f5de678c4abbbdf69fa4a9eef037be3bf144/PairedCompCalc-0.8.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4fafd0ffb392a3b124a8a16516177f23", "sha256": "2699ef5d944dd85a68603c778f8c8bf8c98f0cd465e5c0e6286cb3409ba81c31" }, "downloads": -1, "filename": "PairedCompCalc-0.8.3.tar.gz", "has_sig": false, "md5_digest": "4fafd0ffb392a3b124a8a16516177f23", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 59026, "upload_time": "2018-08-15T13:14:47", "url": "https://files.pythonhosted.org/packages/a9/e3/35b5098e8076e16d730832acf82f30a58f6e2b2f231ed24da50a98f47c66/PairedCompCalc-0.8.3.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "16906d9f162c5106e86788e2446e886e", "sha256": "f2977553d8361ee4288e6e595cb400fa865dc78c459b61a6a5d88ccb084354b3" }, "downloads": -1, "filename": "PairedCompCalc-0.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "16906d9f162c5106e86788e2446e886e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 74868, "upload_time": "2018-10-08T12:19:38", "url": "https://files.pythonhosted.org/packages/d9/0e/c42de813d2ea1fb0dd9526ab9e8f029ba7fffab5d76768ef2782d9041f85/PairedCompCalc-0.9.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e60bc4c6368a21bc86f468d348bbe453", "sha256": "c9b5baff1a93e34611ccedbc222c8f33d8dc4a71a3cf73795a0dbff56b7d094c" }, "downloads": -1, "filename": "PairedCompCalc-0.9.0.tar.gz", "has_sig": false, "md5_digest": "e60bc4c6368a21bc86f468d348bbe453", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 65736, "upload_time": "2018-10-08T12:19:40", "url": "https://files.pythonhosted.org/packages/93/f6/93dc243171794d7f91e19f89081515f4d7b7f6b0c4f9a0d56fce87090daf/PairedCompCalc-0.9.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "5afc41b072736aff30cd2498085acee6", "sha256": "e2ace50ed2e78be4679714a28605bb418d51bc09195f094a5e2aa415aba39b0e" }, "downloads": -1, "filename": "PairedCompCalc-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5afc41b072736aff30cd2498085acee6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 91683, "upload_time": "2019-04-08T08:01:06", "url": "https://files.pythonhosted.org/packages/d5/c3/5c5ec6b7ce6a187345bcbdcd507a1d21e24b6fa51e5eab4436d16134bc8a/PairedCompCalc-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d7c1036f1b0419f32eeaf20022ab7e8", "sha256": "0a1b018b3484d237ed0d9171290b0efe3b6318b3d945404b28b8bc482c319060" }, "downloads": -1, "filename": "PairedCompCalc-1.0.0.tar.gz", "has_sig": false, "md5_digest": "2d7c1036f1b0419f32eeaf20022ab7e8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 80224, "upload_time": "2019-04-08T08:01:11", "url": "https://files.pythonhosted.org/packages/2e/6c/7e600e4114d26e4b032558a7f45ca31823ba2b56abdeca0e06ede9cafaee/PairedCompCalc-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5afc41b072736aff30cd2498085acee6", "sha256": "e2ace50ed2e78be4679714a28605bb418d51bc09195f094a5e2aa415aba39b0e" }, "downloads": -1, "filename": "PairedCompCalc-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5afc41b072736aff30cd2498085acee6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 91683, "upload_time": "2019-04-08T08:01:06", "url": "https://files.pythonhosted.org/packages/d5/c3/5c5ec6b7ce6a187345bcbdcd507a1d21e24b6fa51e5eab4436d16134bc8a/PairedCompCalc-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d7c1036f1b0419f32eeaf20022ab7e8", "sha256": "0a1b018b3484d237ed0d9171290b0efe3b6318b3d945404b28b8bc482c319060" }, "downloads": -1, "filename": "PairedCompCalc-1.0.0.tar.gz", "has_sig": false, "md5_digest": "2d7c1036f1b0419f32eeaf20022ab7e8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 80224, "upload_time": "2019-04-08T08:01:11", "url": "https://files.pythonhosted.org/packages/2e/6c/7e600e4114d26e4b032558a7f45ca31823ba2b56abdeca0e06ede9cafaee/PairedCompCalc-1.0.0.tar.gz" } ] }