1- """
2- pointwise_loglikelihoods
3-
4- Compute pointwise conditional log-likelihoods for ELPD-based model comparison/validation.
5-
6- Given model parameters ``\\ theta`` and observations ``y``, the pointwise conditional
7- log-likelihood of ``y_i`` given ``y_{-i}`` (the elements of ``y`` excluding ``y_i``) and
8- ``\\ theta`` is defined as
9- ```math
10- \\ log p(y_i \\ mid y_{-i}, \\ theta)
11- ```
12-
13- This method is a utility function that dependant packages can override to provide pointwise
14- conditional log-likelihoods for their own models/distributions.
15-
16- See also: [`loo`](@ref)
17- """
18- pointwise_loglikelihoods
1+ @deprecate pointwise_loglikelihoods (y, dists) pointwise_conditional_loglikelihoods (y, dists)
192
203@doc """
21- pointwise_loglikelihoods (y, dists)
4+ pointwise_conditional_loglikelihoods (y, dists)
225
236Compute pointwise conditional log-likelihoods of `y` for non-factorized distributions.
247
@@ -52,7 +35,7 @@ PPL. This utility function computes ``\\log p(y_i \\mid y_{-i}, \\theta)`` terms
5235- [LOOFactorized](@cite) Vehtari et al. Leave-one-out cross-validation for non-factorized
5336 models
5437"""
55- function pointwise_loglikelihoods (
38+ function pointwise_conditional_loglikelihoods (
5639 y:: AbstractArray{<:Real,N} ,
5740 dists:: AbstractArray {
5841 <: Distributions.Distribution{<:Distributions.ArrayLikeVariate{N}} ,M
@@ -62,13 +45,13 @@ function pointwise_loglikelihoods(
6245 sample_dims = ntuple (identity, M)
6346 log_like = similar (y, T, (axes (dists)... , axes (y)... ))
6447 for (dist, ll) in zip (dists, eachslice (log_like; dims= sample_dims))
65- pointwise_loglikelihoods ! (ll, y, dist)
48+ pointwise_conditional_loglikelihoods ! (ll, y, dist)
6649 end
6750 return log_like
6851end
6952
7053# Array-variate normal distribution
71- function pointwise_loglikelihoods ! (
54+ function pointwise_conditional_loglikelihoods ! (
7255 log_like:: AbstractVector{<:Real} ,
7356 y:: AbstractVector{<:Real} ,
7457 dist:: Distributions.MvNormal ,
@@ -78,7 +61,7 @@ function pointwise_loglikelihoods!(
7861 g = Σ \ (y - μ)
7962 return @. log_like = (log (λ) - g^ 2 / λ - log2π) / 2
8063end
81- function pointwise_loglikelihoods ! (
64+ function pointwise_conditional_loglikelihoods ! (
8265 log_like:: AbstractVector{<:Real} ,
8366 y:: AbstractVector{<:Real} ,
8467 dist:: Distributions.MvNormalCanon ,
@@ -88,7 +71,7 @@ function pointwise_loglikelihoods!(
8871 cov_inv_y = _pdmul (J, y)
8972 return @. log_like = (log (λ) - (cov_inv_y - h)^ 2 / λ - log2π) / 2
9073end
91- function pointwise_loglikelihoods ! (
74+ function pointwise_conditional_loglikelihoods ! (
9275 log_like:: AbstractMatrix{<:Real} ,
9376 y:: AbstractMatrix{<:Real} ,
9477 dist:: Distributions.MatrixNormal ,
@@ -101,19 +84,19 @@ function pointwise_loglikelihoods!(
10184end
10285
10386# Multivariate log-normal distribution
104- function pointwise_loglikelihoods ! (
87+ function pointwise_conditional_loglikelihoods ! (
10588 log_like:: AbstractVector{<:Real} ,
10689 y:: AbstractVector{<:Real} ,
10790 dist:: Distributions.MvLogNormal ,
10891)
10992 logy = log .(y)
110- pointwise_loglikelihoods ! (log_like, logy, dist. normal)
93+ pointwise_conditional_loglikelihoods ! (log_like, logy, dist. normal)
11194 log_like .- = logy
11295 return log_like
11396end
11497
11598# Array-variate t-distribution
116- function pointwise_loglikelihoods ! (
99+ function pointwise_conditional_loglikelihoods ! (
117100 log_like:: AbstractVector{T} ,
118101 y:: AbstractVector{<:Real} ,
119102 dist:: Distributions.GenericMvTDist ,
0 commit comments