@@ -9,8 +9,8 @@ _to_varname(n::VarName) = n
9
9
"""
10
10
marginalize(
11
11
model::DynamicPPL.Model,
12
- varinfo::DynamicPPL.AbstractVarInfo=VarInfo(model),
13
12
varnames::AbstractVector{<:Union{Symbol,<:VarName}},
13
+ varinfo::DynamicPPL.AbstractVarInfo=link(VarInfo(model), model),
14
14
getlogprob=DynamicPPL.getlogjoint,
15
15
method::MarginalLogDensities.AbstractMarginalizer=MarginalLogDensities.LaplaceApprox();
16
16
kwargs...,
@@ -23,6 +23,10 @@ log-density of the given `model`, after marginalizing out the variables specifie
23
23
The resulting object can be called with a vector of parameter values to compute the marginal
24
24
log-density.
25
25
26
+ You can specify the `varinfo` to use for the model. By default we use a linked `VarInfo`,
27
+ meaning that the resulting log-density function accepts parameters that have been
28
+ transformed to unconstrained space.
29
+
26
30
The `getlogprob` argument can be used to specify which kind of marginal log-density to
27
31
compute. Its default value is `DynamicPPL.getlogjoint` which returns the marginal log-joint
28
32
probability.
@@ -55,7 +59,7 @@ julia> logpdf(Normal(2.0), 1.0)
55
59
function DynamicPPL. marginalize (
56
60
model:: DynamicPPL.Model ,
57
61
varnames:: AbstractVector{<:Union{Symbol,<:VarName}} ,
58
- varinfo:: DynamicPPL.AbstractVarInfo = DynamicPPL. VarInfo (model),
62
+ varinfo:: DynamicPPL.AbstractVarInfo = DynamicPPL. link (DynamicPPL . VarInfo (model), model),
59
63
getlogprob:: Function = DynamicPPL. getlogjoint,
60
64
method:: MarginalLogDensities.AbstractMarginalizer = MarginalLogDensities. LaplaceApprox ();
61
65
kwargs... ,
0 commit comments