Generalized M-Estimation
Project description
Delicatessen
The one-stop sandwich (variance) shop in Python. delicatessen
is a Python 3.8+ library for the generalized calculus
of M-estimation.
Citation: Zivich PN, Klose M, Cole SR, Edwards JK, & Shook-Sa BE. (2022). Delicatessen: M-Estimation in Python. arXiv:2203.11300 [stat.ME]
M-Estimation and Estimating Equations
Here, we provide a brief overview of M-estimation theory. For more detailed introductions to M-estimation, see Ross et al. (2024), Stefanski & Boos (2002), or Chapter 7 of Boos & Stefanski (2013). M-estimation is a generalization of likelihood-based methods. M-estimators are solutions to estimating equations. To apply the M-estimator, we solve the estimating equations using observed data. This is similar to other approaches, but the key advantage of M-Estimators is variance estimation via the empirical sandwich variance estimator.
While M-Estimation is a powerful tool, the derivatives and matrix algebra can quickly become unwieldy. This is where
delicatessen
comes in. delicatessen
takes estimating functions and data, and solves for the parameter estimates,
computes the derivatives, and performs the matrix algebra calculations. Therefore, M-estimators can be more easily
adopted without having to perform by-hand calculations. In other words, we can let the computer do the math for us.
To further ease use, delicatessen
also comes with a variety of built-in estimating equations. See
the delicatessen website for details on the available estimating equations,
how to use them, and practical examples.
Installation
Installing:
You can install via python -m pip install delicatessen
Dependencies:
The dependencies are: numpy
, scipy
To replicate the tests located in tests/
, you will additionally need to install: panda
, statsmodels
, and pytest
While versions of delicatessen
prior to v1.0 were compatible with older versions of Python 3 and NumPy and SciPy, the
v1.0+ releases are only available for Python 3.8+ with NumPy v1.18.5+ and SciPy v1.9.0. This change was made to use
a better numerical approximation procedure for the derivative. If you want to use with older versions of those packages
or older versions of Python, install v0.6 instead.
Getting started
Below is a simple demonstration of calculating the mean with delicatessen
import numpy as np
y = np.array([1, 2, 3, 1, 4, 1, 3, -2, 0, 2])
Loading the M-estimator functionality, building the corresponding estimating equation for the mean, and printing the results to the console
from delicatessen import MEstimator
def psi(theta):
return y - theta[0]
estr = MEstimator(psi, init=[0, ])
estr.estimate()
print(estr.theta) # Estimate of the mean
print(estr.variance) # Variance estimate
For further details on using delicatessen
, see the full documentation and worked examples available
at delicatessen website.
References
Boos DD, & Stefanski LA. (2013). M-estimation (estimating equations). In Essential Statistical Inference (pp. 297-337). Springer, New York, NY.
Stefanski LA, & Boos DD. (2002). The calculus of M-estimation. The American Statistician, 56(1), 29-38.
Ross RK, Zivich PN, Stringer JS, & Cole SR. (2024). M-estimation for common epidemiological measures: introduction and applied examples. International Journal of Epidemiology, 53(2).
Zivich PN, Klose M, Cole SR, Edwards JK, & Shook-Sa BE. (2022). Delicatessen: M-Estimation in Python. arXiv preprint arXiv:2203.11300.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file delicatessen-2.3.tar.gz
.
File metadata
- Download URL: delicatessen-2.3.tar.gz
- Upload date:
- Size: 79.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3bdadde5c971e3064306886dbec7e1244c00501a91c2d92e6aab87731630753f |
|
MD5 | 6f758ded5dd822bdc2196a89e54a356b |
|
BLAKE2b-256 | cc6fd779ea0dc2e4556d6ae88445e5a9a0163161dac6bcc7c5d921d0b6b7d144 |
File details
Details for the file delicatessen-2.3-py2.py3-none-any.whl
.
File metadata
- Download URL: delicatessen-2.3-py2.py3-none-any.whl
- Upload date:
- Size: 109.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c09a8d4fc4745a0dd5f4e1e1b50396e691f35ebd0aeeb54c6f35f52da0a72ca |
|
MD5 | 325a4033dec3a5a040c0d506b896a1b2 |
|
BLAKE2b-256 | da93ddd40280249291132c2edfc6981ac54651933e25af47a9546a28d0b98c0a |