6.3.12.1.4. statsmodels.sandbox.distributions.sppatch.expect_discrete¶
-
statsmodels.sandbox.distributions.sppatch.
expect_discrete
(self, fn=None, args=(), loc=0, lb=None, ub=None, conditional=False)[source]¶ calculate expected value of a function with respect to the distribution for discrete distribution
Parameters: (self : distribution instance as defined in scipy stats)
- fn : function (default: identity mapping)
Function for which integral is calculated. Takes only one argument.
- args : tuple
argument (parameters) of the distribution
optional keyword parameters lb, ub : numbers
lower and upper bound for integration, default is set to the support of the distribution, lb and ub are inclusive (ul<=k<=ub)
- conditional : boolean (False)
If true then the expectation is corrected by the conditional probability of the integration interval. The return value is the expectation of the function, conditional on being in the given interval (k such that ul<=k<=ub).
Returns: expected value : float
Notes
function is not vectorized
- accuracy: uses self.moment_tol as stopping criterium
for heavy tailed distribution e.g. zipf(4), accuracy for mean, variance in example is only 1e-5, increasing precision (moment_tol) makes zipf very slow
- suppnmin=100 internal parameter for minimum number of points to evaluate
could be added as keyword parameter, to evaluate functions with non-monotonic shapes, points include integers in (-suppnmin, suppnmin)
- uses maxcount=1000 limits the number of points that are evaluated
to break loop for infinite sums (a maximum of suppnmin+1000 positive plus suppnmin+1000 negative integers are evaluated)