Skip to main content

Calculate weight factors for survey data to approximate a representative sample

Project description

Continuous Integration Python

Weight Factors

Calculate weight factors for survey data to approximate a representative sample

Installation

pip install weightfactors

or clone and install from source

git clone https://github.com/markteffect/weightfactors
cd weightfactors
poetry install

Usage

Currently, the package implements a generalized raking algorithm.
If you'd like to see support for other algorithms, please open an issue or submit a pull request.

Let's use the following dataset as an example:

sample = pd.DataFrame(
    {
        "Gender": [
            "Male",
            "Male",
            "Female",
            "Female",
            "Female",
            "Male",
            "Female",
            "Female",
            "Male",
            "Female",
        ],
        "Score": [7.0, 6.0, 8.5, 7.5, 8.0, 5.0, 9.5, 8.0, 4.5, 8.5],
    }
)

Suppose our sample comprises 40% males and 60% females.
If we were to calculate the average score, we would get:

np.average(sample["Score"])
# 7.25

Now, assuming a 50/50 gender distribution in the population,
let's calculate weight factors to approximate the population distribution:

from weightfactors import GeneralizedRaker

raker = GeneralizedRaker({"Gender": {"Male": 0.5, "Female": 0.5}})
weights = raker.rake(sample)
# [1.25000008 1.25000008 0.83333334 0.83333334 0.83333334 1.25000008
# 0.83333334 0.83333334 1.25000008 0.83333334]

Let's calculate the average score again, this time applying the weight factors:

np.average(sample["Score"], weights=weights)
# 6.9791666284520835

For more detailed information and customization options, please refer to the docstrings.

Project details


Download files

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

Source Distribution

weightfactors-0.0.5.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

weightfactors-0.0.5-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file weightfactors-0.0.5.tar.gz.

File metadata

  • Download URL: weightfactors-0.0.5.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.3 Windows/11

File hashes

Hashes for weightfactors-0.0.5.tar.gz
Algorithm Hash digest
SHA256 c34eda51376905507240875d0598668e338e7199ef580dced01f568a182afd2e
MD5 5c805ee424b7ac728d4dba743c6c72b1
BLAKE2b-256 13916e4ef4118789e8920fc9a9b1ed56d85aaa7ad302b63b8848a023aa66eb30

See more details on using hashes here.

File details

Details for the file weightfactors-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: weightfactors-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.3 Windows/11

File hashes

Hashes for weightfactors-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 6af15b0555742052368b3008060c9c43f3b0d10591958d1959dffb4e0054a4ec
MD5 49f38362bb039c89048a8e42d53ea456
BLAKE2b-256 4394aaee9696f3020d6777bb295ca66f3f06d2fa3fca34c60591bf67166c4b10

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page