Example 1: Estimation#

Here is an example of how to use the regmmd.estimation module. In the following example the mean and standard deviation of a Gaussian are estimated.

>>> from regmmd import MMDEstimator
>>> from regmmd.utils import print_summary
>>>
>>> x = rng.normal(loc=0, scale=1.5, size=(500,))
>>> mmd_estim = MMDEstimator(
...     model="gaussian",
...     par_v=None,
...     par_c=None,
...     kernel="Gaussian",
...     solver={"type": "GD",
...             "burnin": 500,
...             "n_step": 1000,
...             "stepsize": 1,
...             "epsilon": 1e-4
...      },
...      random_state=42
... )
>>> res = mmd_estim.fit(X=x)
>>> print_summary(res)

==================================================
            MMD Result Summary Report
==================================================

Initial Parameters:
    par_v: [-0.07530377  1.29742678]
    par_c: None

Stepsize: 1
Bandwidth: 1.4351152028386247

Estimated Parameters:
     par_v: [-0.05289928  1.52009151]

Trajectory Summary:
    Number of steps: 1501
    Final trajectory values: [ -0.0529, 1.5201 ]

==================================================
                  End of Report
==================================================

If one wants to estimate only the mean, then the “gaussian-loc” model should be used.

>>> from regmmd import MMDEstimator
>>> from regmmd.utils import print_summary
>>>
>>> x = rng.normal(loc=0, scale=1.5, size=(500,))
>>> mmd_estim = MMDEstimator(
...     model="gaussian-loc",
...     par_v=None,
...     par_c=1.5,
...     kernel="Gaussian",
...     solver={"type": "GD",
...             "burnin": 500,
...             "n_step": 1000,
...             "stepsize": 1,
...             "epsilon": 1e-4
...      },
...      random_state=42
... )
>>> res = mmd_estim.fit(X=x)
>>> print_summary(res)

==================================================
            MMD Result Summary Report
==================================================

Initial Parameters:
    par_v: -0.1388514778320709
    par_c: 1.5

Stepsize: 1
Bandwidth: 1.3347485118663052

Estimated Parameters:
     par_v: -0.11699387805163043

Trajectory Summary:
    Number of steps: 1501
    Final trajectory values: -0.1170

==================================================
                  End of Report
==================================================

Available Models#

There are several pre-defined models available in the package, and these should cover most standard use-cases. The available estimation models can be found at Estimation Models.

It is also possible to create your own model using the prescribed class regmmd.models.base_model.EstimationModel. A more detailed example can be found Here Example 3: Writing your own EstimationModel or RegressionModel.