skneuromsi.mle._alais_burr2004 module

class skneuromsi.mle._alais_burr2004.AlaisBurr2004(*, mode0='auditory', mode1='visual', position_range=(-20, 20), position_res=0.01, time_range=(1, 1), time_res=1, seed=None)[source]

Bases: SKNMSIMethodABC

Optimal bimodal estimator model of Alais and Burr (2004).

This model estimates multisensory integration by combining unisensory estimates with weights derived from the standard deviations of sensory modalities. It follows the Near-optimal Bimodal Integrator model described in Alais and Burr (2004) for integrating auditory and visual information.

References

[Alais & Burr, 2004]

Notes

The Near-optimal Bimodal Integrator for visual (V) and auditory (A) signals can be computed as:

\[\hat{S}_{VA} = w_{V} \hat{S}_{V} + w_{A} \hat{S}_{A}\]

where \(\hat{S}_{V}\) and \(\hat{S}_{A}\) are unimodal auditory and visual estimates, respectively, and \(\hat{S}_{VA}\) is the multimodal estimate.

In addition, \(w_{A}\) and \(w_{V}\) are the relative weights for each modality, defined as:

\[\begin{split}w_{A} = \frac{\sigma_{V}^{2}}{\sigma_{A}^{2} + \sigma_{V}^{2}} \\ w_{V} = \frac{\sigma_{A}^{2}}{\sigma_{V}^{2} + \sigma_{A}^{2}}\end{split}\]

where \(\sigma_{A}\) and \(\sigma_{V}\) are the standard deviations (or square roots of the variances) of each unimodal stimuli, respectively.

These equations show that the optimal multisensory estimate combines the unisensory estimates weighted by their normalized reciprocal variances.

property mode0

Returns the name of the first sensory modality.

Returns:

The name of the first sensory modality.

Return type:

str

property mode1

Returns the name of the second sensory modality.

Returns:

The name of the second sensory modality.

Return type:

str

property time_range

Returns the range of time considered for estimation.

Not used in this implementation.

Returns:

The range of time. E.g., (0, 100).

Return type:

tuple of float

property time_res

Returns the resolution of time considered for estimation.

Not used in this implementation.

Returns:

The resolution of time. E.g., 0.01.

Return type:

float

property position_range

Returns the range of positions considered for estimation.

Returns:

The range of positions. E.g., (-20, 20).

Return type:

tuple of float

property position_res

Returns the resolution of positions considered for estimation.

Returns:

The resolution of positions. E.g., 0.01.

Return type:

float

unisensory_estimator(unisensory_sigma, unisensory_position, possible_locations)[source]

Estimates the unisensory probability density function.

Parameters:
  • unisensory_sigma (float) – The standard deviation of the sensory modality.

  • unisensory_position (float) – The position estimate of the sensory modality.

  • possible_locations (numpy.ndarray) – The array of possible positions to evaluate.

Returns:

The estimated probability density function for the given sensory modality.

Return type:

numpy.ndarray

weight_calculator(target_sigma, reference_sigma)[source]

Calculates the weight of a sensory modality.

Parameters:
  • target_sigma (float) – The standard deviation of the target sensory modality.

  • reference_sigma (float) – The standard deviation of the reference sensory modality.

Returns:

The weight of the target sensory modality.

Return type:

float

multisensory_estimator(unisensory_position_a, unisensory_position_b, unisensory_weight_a, unisensory_weight_b, multisensory_sigma, possible_locations)[source]

Estimates the multisensory probability density function.

Parameters:
  • unisensory_position_a (float) – The position estimate of the first sensory modality.

  • unisensory_position_b (float) – The position estimate of the second sensory modality.

  • unisensory_weight_a (float) – The weight of the first sensory modality.

  • unisensory_weight_b (float) – The weight of the second sensory modality.

  • multisensory_sigma (float) – The standard deviation of the multisensory estimate.

  • possible_locations (numpy.ndarray) – The array of possible positions to evaluate.

Returns:

The estimated multisensory probability density function.

Return type:

numpy.ndarray

set_random(rng)[source]

Sets the random number generator.

Parameters:

rng (numpy.random.Generator) – The random number generator to use.

run(*, auditory_position=-5, visual_position=5, auditory_sigma=3.0, visual_sigma=3.0, noise=None)[source]

Run the simulation of the Alais-Burr 2004 model.

Parameters:
  • auditory_position (float) – The position estimate for the auditory modality.

  • visual_position (float) – The position estimate for the visual modality.

  • auditory_sigma (float) – The standard deviation for the auditory modality.

  • visual_sigma (float) – The standard deviation for the visual modality.

  • noise (any, optional) – Additional noise to apply, if needed (not used in this implementation).

Returns:

A tuple containing:

  • responsedict

    A dictionary with keys ‘auditory’, ‘visual’, and ‘multi’ containing the auditory, visual, and multisensory estimates respectively.

  • extradict

    A dictionary with keys ‘auditory_weight’ and ‘visual_weight’ containing the weights for the auditory and visual modalities respectively.

Return type:

tuple