Algorithm:
As in the run() method, if ``compute_capacity_flag'' is given in
estimate_config and its value is True, an entry ``capacity_string'' is
expected in estimate_config which gives the name of attribute/variable
of location_set that determines capacity for each location. In such a
case, the capacity is computed using method
determine_units_capacity_for_estimation().
The weights for sampling alternatives are determined by an optional entry
``weights_for_estimation_string'' in estimate_config which should be an
attribute/variable name of location_set. They are multiplied by the
given filter (if any) and as in the case of the run() method,
sampling is performed using those weights. The parent class performs then the
estimation. If estimate_config includes an entry
``correct_sampling_bias'' that is set to True, the method performs a bias
correction for non-uniform sampling by adding an appropriate column to the
data that enter the estimation.
Output:
The method passes the return values of its parent method estimate(),
i.e. a tuple of the created Coefficient object and a
dictionary with entries for each submodel equals a dictionary returned by the
run() method of procedure for that submodel.