{ } Raw JSON

bundles / scipy 1.17.1 / scipy / stats / _kde / gaussian_kde / set_bandwidth

function

scipy.stats._kde:gaussian_kde.set_bandwidth

source: /scipy/stats/_kde.py :518

Signature

def   set_bandwidth ( self bw_method = None )

Summary

Compute the bandwidth factor with given method.

Extended Summary

The new bandwidth calculated after a call to set_bandwidth is used for subsequent evaluations of the estimated density.

Parameters

bw_method : str, scalar or callable, optional

The method used to calculate the bandwidth factor. This can be 'scott', 'silverman', a scalar constant or a callable. If a scalar, this will be used directly as factor. If a callable, it should take a gaussian_kde instance as only parameter and return a scalar. If None (default), nothing happens; the current covariance_factor method is kept.

Notes

Examples

import numpy as np
import scipy.stats as stats
x1 = np.array([-7, -5, 1, 4, 5.])
kde = stats.gaussian_kde(x1)
xs = np.linspace(-10, 10, num=50)
y1 = kde(xs)
kde.set_bandwidth(bw_method='silverman')
y2 = kde(xs)
kde.set_bandwidth(bw_method=kde.factor / 3.)
y3 = kde(xs)
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(x1, np.full(x1.shape, 1 / (4. * x1.size)), 'bo',
        label='Data points (rescaled)')
ax.plot(xs, y1, label='Scott (default)')
ax.plot(xs, y2, label='Silverman')
ax.plot(xs, y3, label='Const (1/3 * Silverman)')
ax.legend()
plt.show()
fig-36cb2efbfda74232.png

Aliases

  • scipy.stats.gaussian_kde.set_bandwidth