Posterior¶
Package Overview¶
posterior
¶
posterior¶
Posterior representations.
This subpackage provides: - ParameterPosterior: protocol for posteriors over model parameters p(θ | data) - MAPPosterior: delta distribution at θ_MAP (point estimate)
Two-tier design
- ParameterPosterior: represents p(θ | data)
- PredictivePosterior: represents p(f(X*) | data)
Future extensions
- LaplacePosterior: Gaussian approximation N(θ_MAP, Σ)
Classes:
| Name | Description |
|---|---|
MAPPosterior |
MAP (Maximum A Posteriori) posterior - delta distribution at θ_MAP. |
MCMCPosterior |
Backend-agnostic container for MCMC posterior samples. |
ParameterPosterior |
Protocol for posterior distributions over model parameters p(θ | data). |
PredictivePosterior |
Protocol for predictive distributions p(f(X*) | data) at test stimuli. |
ThresholdConfig |
Configuration for :class: |
WPPMPredictivePosterior |
Predictive posterior for WPPM models. |
MAPPosterior
¶
MAP (Maximum A Posteriori) posterior - delta distribution at θ_MAP.
Represents a point estimate with no uncertainty.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
params
|
dict
|
MAP parameter dictionary (θ_MAP) |
required |
model
|
WPPM
|
Model instance used for predictions |
required |
Notes
This implements the ParameterPosterior protocol.
Methods:
| Name | Description |
|---|---|
sample |
Sample from delta distribution (returns repeated θ_MAP). |
Attributes:
| Name | Type | Description |
|---|---|---|
model |
Return the associated model. |
|
params |
Return the MAP parameters (θ_MAP). |
Source code in src/psyphy/posterior/posterior.py
sample
¶
sample(n: int = 1, *, key=None)
Sample from delta distribution (returns repeated θ_MAP).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
n
|
int
|
Number of samples |
1
|
key
|
Array
|
PRNG key (unused for delta distribution) |
None
|
Returns:
| Type | Description |
|---|---|
dict
|
Parameter PyTree with leading dimension n. Each array has shape (n, ...) with identical values. |
Notes
Delta distribution has no randomness - returns repeated MAP estimate.
Source code in src/psyphy/posterior/posterior.py
MCMCPosterior
¶
Backend-agnostic container for MCMC posterior samples.
Satisfies the ParameterPosterior protocol:
- params: posterior mean over all chains and draws
- model: the fitted WPPM instance
- sample(n, key): draw n parameter vectors from the chain pool
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
samples
|
dict
|
Parameter samples. Each value has shape |
required |
model
|
WPPM
|
The model instance used during inference. |
required |
sampler_stats
|
dict | None
|
Per-chain diagnostics returned by the sampler, each of shape
|
None
|
Notes
Implements the ParameterPosterior protocol (i.e., structural, not inherited).
Methods:
| Name | Description |
|---|---|
sample |
Draw n parameter vectors from the pooled chain samples. |
to_arviz |
Convert MCMC samples to an ArviZ InferenceData object. |
Attributes:
| Name | Type | Description |
|---|---|---|
model |
The WPPM instance used during inference. |
|
n_chains |
int
|
Number of chains. |
n_draws |
int
|
Number of draws per chain. |
params |
dict
|
Posterior mean over all chains and draws. |
sampler_stats |
|
Source code in src/psyphy/posterior/mcmc_posterior.py
params
¶
params: dict
Posterior mean over all chains and draws.
Returns:
| Type | Description |
|---|---|
dict
|
Parameter PyTree with the same structure as a single draw.
For WPPM: |
sample
¶
Draw n parameter vectors from the pooled chain samples.
Pools all chains and draws into a flat collection of
n_chains * n_draws samples, then randomly subsamples n
of them (without replacement if n <= total, with replacement otherwise).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
n
|
int
|
Number of samples to return. |
required |
key
|
Array | None
|
PRNG key. Defaults to |
None
|
Returns:
| Type | Description |
|---|---|
dict
|
Parameter PyTree with leading dimension |
Source code in src/psyphy/posterior/mcmc_posterior.py
to_arviz
¶
Convert MCMC samples to an ArviZ InferenceData object.
Requires arviz to be installed::
1 | |
Returns:
| Type | Description |
|---|---|
DataTree
|
ArviZ >= 1.0 returns xarray's DataTree; |
Notes
ArviZ handles arbitrary-dimensional variables natively — no flattening required. R-hat and ESS are computed per scalar element.
If sampler_stats were provided at construction (e.g.
acceptance_rate), they are included in the sample_stats
group.
Examples:
Source code in src/psyphy/posterior/mcmc_posterior.py
ParameterPosterior
¶
Bases: Protocol
Protocol for posterior distributions over model parameters p(θ | data).
Returned by InferenceEngine.fit(model, data). Used for diagnostics, parameter sampling, uncertainty.
Methods:
| Name | Description |
|---|---|
sample |
Sample parameter vectors from p(θ | data). |
Attributes:
| Name | Type | Description |
|---|---|---|
model |
Associated generative model. |
|
params |
dict
|
Point estimate or posterior mean parameters. |
model
¶
Associated generative model.
Returns:
| Type | Description |
|---|---|
Model
|
The WPPM or (other model) instance used for predictions. |
params
¶
params: dict
Point estimate or posterior mean parameters.
Returns:
| Type | Description |
|---|---|
dict
|
Parameter PyTree (e.g., {"log_diag": jnp.ndarray, ...}) |
Notes
- MAP: θ_MAP
- MCMC: posterior mean of samples
sample
¶
Sample parameter vectors from p(θ | data).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
n
|
int
|
Number of samples |
required |
key
|
Array
|
PRNG key for randomness |
required |
Returns:
| Type | Description |
|---|---|
dict
|
Parameter PyTree with leading dimension n. |
Notes
- MAP: returns repeated θ_MAP
- Numpyro/Blackjax: returns stored samples (may subsample if n differs)
Source code in src/psyphy/posterior/parameter_posterior.py
PredictivePosterior
¶
Bases: Protocol
Protocol for predictive distributions p(f(X*) | data) at test stimuli.
Returned by Model.posterior(X) for use in acquisition functions.
Methods:
| Name | Description |
|---|---|
cov_field |
Posterior over perceptual covariance field Σ(X). |
rsample |
Reparameterized samples from p(f(X*) | data). |
Attributes:
| Name | Type | Description |
|---|---|---|
mean |
ndarray
|
Posterior predictive mean E[f(X*) | data]. |
variance |
ndarray
|
Posterior predictive marginal variances Var[f(X*) | data]. |
mean
¶
Posterior predictive mean E[f(X*) | data].
Returns:
| Type | Description |
|---|---|
ndarray
|
Shape (n_test,) for scalar outputs Shape (n_test, output_dim) for vector outputs (future) |
Notes
Computed via Monte Carlo integration over parameter posterior.
:class:WPPMPredictivePosterior in threshold_pred=True mode is a
documented exception to the shapes above: it returns matrix-valued
moments, shape (n_test, input_dim, input_dim) -- a threshold
covariance per test point, not a scalar or vector. See its own
mean/variance docstrings.
variance
¶
Posterior predictive marginal variances Var[f(X*) | data].
Returns:
| Type | Description |
|---|---|
ndarray
|
Shape (n_test,) for scalar outputs Shape (n_test, output_dim) for vector outputs (future) |
Notes
Captures both aleatoric (model) and epistemic (parameter) uncertainty.
Same WPPM threshold_pred=True exception as :attr:mean applies.
cov_field
¶
Posterior over perceptual covariance field Σ(X).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
X
|
ndarray
|
Test stimuli, shape (n_test, input_dim) |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Posterior mean covariance E[Σ(X) | data], shape (n_test, input_dim, input_dim) |
Notes
WPPM-specific method for visualizing perceptual noise structure. This is NOT the predictive covariance - it's the model's internal representation of perceptual uncertainty.
Source code in src/psyphy/posterior/predictive_posterior.py
rsample
¶
rsample(sample_shape: tuple = (), *, key: Array) -> ndarray
Reparameterized samples from p(f(X*) | data).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sample_shape
|
tuple
|
Shape of sample batch |
()
|
key
|
Array
|
PRNG key |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Shape (*sample_shape, n_test) for scalar outputs Shape (*sample_shape, n_test, output_dim) for vector outputs |
Notes
Enables gradient-based acquisition optimization via reparameterization trick.
Source code in src/psyphy/posterior/predictive_posterior.py
ThresholdConfig
¶
ThresholdConfig(n_theta: int = 16, n_length: int = 200, bounds: tuple[float, float] = (0.0005, 0.3), target_pc: float = 2.0 / 3.0, chunk: int = 2000)
Configuration for :class:WPPMPredictivePosterior's threshold_pred mode.
Controls the oddity-task inversion that recovers a threshold covariance
Σ_thres(x) — the target_pc-correct discrimination contour — from a
fitted noise field. There is no closed form for this inversion (see
:class:~psyphy.model.likelihood.OddityTask), so it is done numerically:
probe n_theta directions around each reference point, brute-force
search n_length candidate distances per direction for the one closest
to target_pc, then fit an ellipsoid to the resulting boundary points.
Attributes:
| Name | Type | Description |
|---|---|---|
n_theta |
int
|
Number of directions probed around each reference point. Must be at
least |
n_length |
int
|
Number of candidate distances probed per direction. Brute-force search rather than bisection: P(correct) is only monotone in distance up to Monte Carlo noise, so a root-finder can walk off a noisy plateau where a dense-grid argmin cannot. |
bounds |
tuple[float, float]
|
|
target_pc |
float
|
Target probability-correct defining the threshold (2/3 for the oddity task's standard criterion). |
chunk |
int
|
Batch size for the Monte Carlo sweep, bounding peak memory —
|
Notes
Cost per (posterior sample, reference point) pair is
n_theta * n_length calls to the task's MC-simulated predict, each
itself an average over OddityTaskConfig.num_samples draws. Total cost
for a call to :class:WPPMPredictivePosterior scales as
n_samples * n_test * n_theta * n_length * num_samples — a warning is
emitted when n_samples * n_test alone exceeds 200.
WPPMPredictivePosterior
¶
WPPMPredictivePosterior(param_posterior: ParameterPosterior, X: ndarray, n_samples: int = 100, threshold_pred: bool = False, threshold_config: ThresholdConfig | None = None)
Predictive posterior for WPPM models.
Computes p(f(X*) | data) via Monte Carlo integration over parameter posterior p(θ | data).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
param_posterior
|
ParameterPosterior
|
Posterior over model parameters |
required |
X
|
ndarray
|
Test stimuli. Shape depends on
|
required |
n_samples
|
int
|
Number of posterior samples for MC integration |
100
|
threshold_pred
|
bool
|
Whether to compute threshold covariances (Σ_thres, the
|
False
|
threshold_config
|
ThresholdConfig
|
Settings for the threshold inversion. Only used when
|
None
|
Attributes:
| Name | Type | Description |
|---|---|---|
param_posterior |
ParameterPosterior
|
Wrapped parameter posterior |
X |
ndarray
|
Test stimuli |
n_samples |
int
|
MC sample count |
threshold_pred |
bool
|
Whether this instance predicts thresholds rather than probabilities |
threshold_config |
ThresholdConfig or None
|
Threshold-inversion settings ( |
Notes
Uses lazy evaluation: moments computed on first access.
Methods:
| Name | Description |
|---|---|
cov_field |
Posterior mean covariance field E[Σ(X) | data]. |
rsample |
Sample predictions from p(f(X*) | data). |
Source code in src/psyphy/posterior/predictive_posterior.py
mean
¶
E[f(X*) | data].
Shape (n_test,) — predicted probabilities — unless
threshold_pred=True, in which case shape is
(n_test, input_dim, input_dim): the posterior-mean threshold
covariance Σ_thres at each reference point, averaged arithmetically
over posterior parameter samples (the PD cone is convex, so this
stays PD; not a geometric/Bures mean).
variance
¶
Var[f(X*) | data].
Shape (n_test,) unless threshold_pred=True, in which case shape
is (n_test, input_dim, input_dim): elementwise variance of the
per-sample threshold covariances (not a variance of a matrix in
any distributional sense — just jnp.var over the sample axis,
entry by entry).
cov_field
¶
Posterior mean covariance field E[Σ(X) | data].
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
X
|
ndarray
|
Test stimuli, shape (n_test, input_dim) OR (n_test, k_stim, input_dim) Note that standard use for OddityTask is 2D with X as test REFS, not all stimuli. |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Covariance matrices, shape (n_test, input_dim, input_dim) OR (n_test, k_stim, input_dim, input_dim) |
Notes
Averages local_covariance(x) over parameter posterior samples.
Source code in src/psyphy/posterior/predictive_posterior.py
rsample
¶
rsample(sample_shape: tuple = (), *, key: Array) -> ndarray
Sample predictions from p(f(X*) | data).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sample_shape
|
tuple
|
Batch shape |
()
|
key
|
Array
|
PRNG key |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Shape (*sample_shape, n_test) — or, when |
Source code in src/psyphy/posterior/predictive_posterior.py
Parameter Posterior Protocol¶
parameter_posterior
¶
parameter_posterior.py
Protocol and implementations for posterior distributions over model parameters.
This module defines the ParameterPosterior interface representing p(θ | data).
Design
Different inference engines produce different posterior representations: - MAP: delta distribution at θ_MAP - MCMC: collection of samples
All implement a common protocol for polymorphic use.
Classes:
| Name | Description |
|---|---|
ParameterPosterior |
Protocol for posterior distributions over model parameters p(θ | data). |
ParameterPosterior
¶
Bases: Protocol
Protocol for posterior distributions over model parameters p(θ | data).
Returned by InferenceEngine.fit(model, data). Used for diagnostics, parameter sampling, uncertainty.
Methods:
| Name | Description |
|---|---|
sample |
Sample parameter vectors from p(θ | data). |
Attributes:
| Name | Type | Description |
|---|---|---|
model |
Associated generative model. |
|
params |
dict
|
Point estimate or posterior mean parameters. |
model
¶
Associated generative model.
Returns:
| Type | Description |
|---|---|
Model
|
The WPPM or (other model) instance used for predictions. |
params
¶
params: dict
Point estimate or posterior mean parameters.
Returns:
| Type | Description |
|---|---|
dict
|
Parameter PyTree (e.g., {"log_diag": jnp.ndarray, ...}) |
Notes
- MAP: θ_MAP
- MCMC: posterior mean of samples
sample
¶
Sample parameter vectors from p(θ | data).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
n
|
int
|
Number of samples |
required |
key
|
Array
|
PRNG key for randomness |
required |
Returns:
| Type | Description |
|---|---|
dict
|
Parameter PyTree with leading dimension n. |
Notes
- MAP: returns repeated θ_MAP
- Numpyro/Blackjax: returns stored samples (may subsample if n differs)
Source code in src/psyphy/posterior/parameter_posterior.py
Parameter Posterior Implementations¶
posterior
¶
posterior.py
Concrete ParameterPosterior implementations.
This module provides: - MAPPosterior: delta distribution at θ_MAP (point estimate)
Classes:
| Name | Description |
|---|---|
MAPPosterior |
MAP (Maximum A Posteriori) posterior - delta distribution at θ_MAP. |
MAPPosterior
¶
MAP (Maximum A Posteriori) posterior - delta distribution at θ_MAP.
Represents a point estimate with no uncertainty.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
params
|
dict
|
MAP parameter dictionary (θ_MAP) |
required |
model
|
WPPM
|
Model instance used for predictions |
required |
Notes
This implements the ParameterPosterior protocol.
Methods:
| Name | Description |
|---|---|
sample |
Sample from delta distribution (returns repeated θ_MAP). |
Attributes:
| Name | Type | Description |
|---|---|---|
model |
Return the associated model. |
|
params |
Return the MAP parameters (θ_MAP). |
Source code in src/psyphy/posterior/posterior.py
sample
¶
sample(n: int = 1, *, key=None)
Sample from delta distribution (returns repeated θ_MAP).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
n
|
int
|
Number of samples |
1
|
key
|
Array
|
PRNG key (unused for delta distribution) |
None
|
Returns:
| Type | Description |
|---|---|
dict
|
Parameter PyTree with leading dimension n. Each array has shape (n, ...) with identical values. |
Notes
Delta distribution has no randomness - returns repeated MAP estimate.
Source code in src/psyphy/posterior/posterior.py
Predictive Posterior¶
predictive_posterior
¶
predictive_posterior.py
Predictive posterior distributions p(f(X*) | data) at test stimuli.
This module defines posteriors over predictions (not parameters), used by acquisition functions for Bayesian optimization.
Design
PredictivePosterior wraps a ParameterPosterior and computes predictions via: E[f(X*) | data] pprox (1/N) Σ_i f(X*; θ_i) where θ_i ~ p(θ | data)
This separates concerns: - ParameterPosterior: represents uncertainty over θ - PredictivePosterior: represents uncertainty over f(X*) (decision-making) - effectively decoupling how we FIT the model from how we USE the fitted model
Classes:
| Name | Description |
|---|---|
PredictivePosterior |
Protocol for predictive distributions p(f(X*) | data) at test stimuli. |
ThresholdConfig |
Configuration for :class: |
WPPMPredictivePosterior |
Predictive posterior for WPPM models. |
PredictivePosterior
¶
Bases: Protocol
Protocol for predictive distributions p(f(X*) | data) at test stimuli.
Returned by Model.posterior(X) for use in acquisition functions.
Methods:
| Name | Description |
|---|---|
cov_field |
Posterior over perceptual covariance field Σ(X). |
rsample |
Reparameterized samples from p(f(X*) | data). |
Attributes:
| Name | Type | Description |
|---|---|---|
mean |
ndarray
|
Posterior predictive mean E[f(X*) | data]. |
variance |
ndarray
|
Posterior predictive marginal variances Var[f(X*) | data]. |
mean
¶
Posterior predictive mean E[f(X*) | data].
Returns:
| Type | Description |
|---|---|
ndarray
|
Shape (n_test,) for scalar outputs Shape (n_test, output_dim) for vector outputs (future) |
Notes
Computed via Monte Carlo integration over parameter posterior.
:class:WPPMPredictivePosterior in threshold_pred=True mode is a
documented exception to the shapes above: it returns matrix-valued
moments, shape (n_test, input_dim, input_dim) -- a threshold
covariance per test point, not a scalar or vector. See its own
mean/variance docstrings.
variance
¶
Posterior predictive marginal variances Var[f(X*) | data].
Returns:
| Type | Description |
|---|---|
ndarray
|
Shape (n_test,) for scalar outputs Shape (n_test, output_dim) for vector outputs (future) |
Notes
Captures both aleatoric (model) and epistemic (parameter) uncertainty.
Same WPPM threshold_pred=True exception as :attr:mean applies.
cov_field
¶
Posterior over perceptual covariance field Σ(X).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
X
|
ndarray
|
Test stimuli, shape (n_test, input_dim) |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Posterior mean covariance E[Σ(X) | data], shape (n_test, input_dim, input_dim) |
Notes
WPPM-specific method for visualizing perceptual noise structure. This is NOT the predictive covariance - it's the model's internal representation of perceptual uncertainty.
Source code in src/psyphy/posterior/predictive_posterior.py
rsample
¶
rsample(sample_shape: tuple = (), *, key: Array) -> ndarray
Reparameterized samples from p(f(X*) | data).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sample_shape
|
tuple
|
Shape of sample batch |
()
|
key
|
Array
|
PRNG key |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Shape (*sample_shape, n_test) for scalar outputs Shape (*sample_shape, n_test, output_dim) for vector outputs |
Notes
Enables gradient-based acquisition optimization via reparameterization trick.
Source code in src/psyphy/posterior/predictive_posterior.py
ThresholdConfig
¶
ThresholdConfig(n_theta: int = 16, n_length: int = 200, bounds: tuple[float, float] = (0.0005, 0.3), target_pc: float = 2.0 / 3.0, chunk: int = 2000)
Configuration for :class:WPPMPredictivePosterior's threshold_pred mode.
Controls the oddity-task inversion that recovers a threshold covariance
Σ_thres(x) — the target_pc-correct discrimination contour — from a
fitted noise field. There is no closed form for this inversion (see
:class:~psyphy.model.likelihood.OddityTask), so it is done numerically:
probe n_theta directions around each reference point, brute-force
search n_length candidate distances per direction for the one closest
to target_pc, then fit an ellipsoid to the resulting boundary points.
Attributes:
| Name | Type | Description |
|---|---|---|
n_theta |
int
|
Number of directions probed around each reference point. Must be at
least |
n_length |
int
|
Number of candidate distances probed per direction. Brute-force search rather than bisection: P(correct) is only monotone in distance up to Monte Carlo noise, so a root-finder can walk off a noisy plateau where a dense-grid argmin cannot. |
bounds |
tuple[float, float]
|
|
target_pc |
float
|
Target probability-correct defining the threshold (2/3 for the oddity task's standard criterion). |
chunk |
int
|
Batch size for the Monte Carlo sweep, bounding peak memory —
|
Notes
Cost per (posterior sample, reference point) pair is
n_theta * n_length calls to the task's MC-simulated predict, each
itself an average over OddityTaskConfig.num_samples draws. Total cost
for a call to :class:WPPMPredictivePosterior scales as
n_samples * n_test * n_theta * n_length * num_samples — a warning is
emitted when n_samples * n_test alone exceeds 200.
WPPMPredictivePosterior
¶
WPPMPredictivePosterior(param_posterior: ParameterPosterior, X: ndarray, n_samples: int = 100, threshold_pred: bool = False, threshold_config: ThresholdConfig | None = None)
Predictive posterior for WPPM models.
Computes p(f(X*) | data) via Monte Carlo integration over parameter posterior p(θ | data).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
param_posterior
|
ParameterPosterior
|
Posterior over model parameters |
required |
X
|
ndarray
|
Test stimuli. Shape depends on
|
required |
n_samples
|
int
|
Number of posterior samples for MC integration |
100
|
threshold_pred
|
bool
|
Whether to compute threshold covariances (Σ_thres, the
|
False
|
threshold_config
|
ThresholdConfig
|
Settings for the threshold inversion. Only used when
|
None
|
Attributes:
| Name | Type | Description |
|---|---|---|
param_posterior |
ParameterPosterior
|
Wrapped parameter posterior |
X |
ndarray
|
Test stimuli |
n_samples |
int
|
MC sample count |
threshold_pred |
bool
|
Whether this instance predicts thresholds rather than probabilities |
threshold_config |
ThresholdConfig or None
|
Threshold-inversion settings ( |
Notes
Uses lazy evaluation: moments computed on first access.
Methods:
| Name | Description |
|---|---|
cov_field |
Posterior mean covariance field E[Σ(X) | data]. |
rsample |
Sample predictions from p(f(X*) | data). |
Source code in src/psyphy/posterior/predictive_posterior.py
mean
¶
E[f(X*) | data].
Shape (n_test,) — predicted probabilities — unless
threshold_pred=True, in which case shape is
(n_test, input_dim, input_dim): the posterior-mean threshold
covariance Σ_thres at each reference point, averaged arithmetically
over posterior parameter samples (the PD cone is convex, so this
stays PD; not a geometric/Bures mean).
variance
¶
Var[f(X*) | data].
Shape (n_test,) unless threshold_pred=True, in which case shape
is (n_test, input_dim, input_dim): elementwise variance of the
per-sample threshold covariances (not a variance of a matrix in
any distributional sense — just jnp.var over the sample axis,
entry by entry).
cov_field
¶
Posterior mean covariance field E[Σ(X) | data].
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
X
|
ndarray
|
Test stimuli, shape (n_test, input_dim) OR (n_test, k_stim, input_dim) Note that standard use for OddityTask is 2D with X as test REFS, not all stimuli. |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Covariance matrices, shape (n_test, input_dim, input_dim) OR (n_test, k_stim, input_dim, input_dim) |
Notes
Averages local_covariance(x) over parameter posterior samples.
Source code in src/psyphy/posterior/predictive_posterior.py
rsample
¶
rsample(sample_shape: tuple = (), *, key: Array) -> ndarray
Sample predictions from p(f(X*) | data).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sample_shape
|
tuple
|
Batch shape |
()
|
key
|
Array
|
PRNG key |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Shape (*sample_shape, n_test) — or, when |