weave.dimension#
Smoothing dimension specifications.
- class weave.dimension.Dimension(name, coordinates=None, kernel='identity', distance=None, radius=None, exponent=None, version=None, distance_dict=None)[source]#
Smoothing dimension specifications.
Dimension class to specify smoothing dimension column names, kernel function, distance function, and relevant parameters.
- name#
Dimension name.
Column in data frame containing the ID of points in the given dimension. For example, ‘age_id’, ‘year_id’, or ‘location_id’.
- Type:
str
- coordinates#
Dimension coordinates.
Column(s) in data frame containing the coordinates of points in the given dimension. For example, ‘age_mid’, [‘lat’, ‘lon’], or [‘super_region’, ‘region’, ‘country’]. Can be same as name attribute if dimension is 1D.
- Type:
list of str
- kernel#
Kernel function name.
Name of kernel function to compute smoothing weights.
See also
- Type:
{‘exponential’, ‘tricubic’, ‘depth’, ‘inverse’, ‘identity’}
- distance#
Distance function name.
Name of distance function to compute distance between points.
See also
- Type:
{‘euclidean’, ‘tree’, ‘dictionary’}
- radius#
Kernel radius.
Kernel radius if kernel is ‘exponential’, ‘depth’, or ‘inverse’.
- Type:
positive number, optional
- exponent#
Kernel exponent.
Kernel exponent if kernel is ‘tricubic’.
- Type:
positive number, optional
- version#
Kernel version.
Kernel version if kernel is ‘depth’.
- Type:
{‘codem’, ‘stgpr’}, optional
- distance_dict#
Dictionary of distances between points.
User-defined dictionary of distances between points if distance attribute is ‘dictionary’. Dictionary keys are tuples of point ID pairs, and dictionary values are the corresponding distances.
- Type:
dict of {(number, number): number}, optional
Create smoothing dimension.
- Parameters:
name (str) – Dimension name.
coordinates (str or list of str, optional) – Dimension coordinates, if different from name.
kernel ({'exponential', 'tricubic', 'depth', 'inverse', 'identity'}, optional) – Kernel function name. Default is ‘identity’.
distance ({'euclidean', 'tree', 'dictionary'}, optional) – Distance function name. If None, default distance function is assigned based on kernel.
radius (positive number, optional) – Kernel radius if kernel is ‘exponential’, ‘depth’, or ‘inverse’. For depth kernel, radius must be a float in (0.5, 1).
exponent (positive number, optional) – Kernel exponent if kernel is ‘tricubic’.
version ({'codem', 'stgpr'}, optional) – Kernel version if kernel is ‘depth’. Default is ‘codem’.
distance_dict (dict of {(number, number): number}, optional) – Dictionary of distances between points if distance is ‘dictionary’. Dictionary values must be nonnegative.
Notes
Kernel-specific parameters and default attributes are given in the table below.
Kernel
Parameters
Parameter types
Default distance
exponential
radius
Positive number
euclidean
tricubic
exponent
Positive number
euclidean
depth
radius
float in \((0.5, 1)\)
tree
version
{‘codem’, ‘stgpr’}, optional (default is ‘codem’)
inverse
radius
Positive number
euclidean
identity
euclidean
The identity kernel does not have any kernel parameters because the weight values are equal to the distance values.
Examples
Dimensions with exponential kernel and default Euclidean distance.
>>> from weave.dimension import Dimension >>> age = Dimension( name='age_id', coordinates='age_mean', kernel='exponential', radius=0.5 ) >>> location = Dimension( name='location_id', coordinates=['lat', 'lon'], kernel='exponential', radius=0.5 )
Dimension with tricubic kernel and default Euclidean distance.
>>> from weave.dimension import Dimension >>> year = Dimension( name='year_id', kernel='tricubic', exponent=3 )
Dimension with tricubic kernel and dictionary distance.
>>> from weave.dimension import Dimension >>> location = Dimension( name='location_id', kernel='tricubic', exponent=3, distance='dictionary', distance_dict={ (4, 4): 0, (4, 5): 1, (4, 6): 2, (5, 4): 1, (5, 5): 0, (5, 6): 2, (6, 4): 2, (6, 5): 2, (6, 6): 0 } )
Dimension with depth kernel and default tree distance.
>>> from weave.dimension import Dimension >>> location = Dimension( name='location_id', coordinates=['super_region', 'region', 'country'], kernel='depth', radius=0.9 )
Dimension with identity kernel and default Euclidean distance.
>>> from weave.dimension import Dimension >>> location = Dimension( name='location_id', coordinates=['lat', 'lon'], kernel='identity' )