@@ -183,16 +183,16 @@ function _model(μ_X, σ_X, prior, intercept_ranef, idx, ::Type{Normal})
183
183
α ~ prior. intercept
184
184
β ~ filldist (prior. predictors, predictors)
185
185
σ ~ Exponential (residual)
186
- μ = α .+ X * β
187
- if ! isempty (intercept_ranef)
186
+ if isempty (intercept_ranef)
187
+ μ = α .+ X * β
188
+ else
188
189
τ ~ mad_y * truncated (TDist (3 ); lower= 0 )
189
190
zⱼ ~ filldist (Normal (), n_gr)
190
- αⱼ = zⱼ .* τ
191
- μ .+ = αⱼ[idxs]
191
+ μ = α .+ τ .* getindex .((zⱼ,), idxs) .+ X * β
192
192
end
193
193
# TODO : implement random-effects slope
194
194
y ~ MvNormal (μ, σ^ 2 * I)
195
- return (; α, β, σ, τ, zⱼ, αⱼ, y)
195
+ return nothing
196
196
end
197
197
end
198
198
function _model (μ_X, σ_X, prior, :: Type{Normal} )
@@ -203,7 +203,7 @@ function _model(μ_X, σ_X, prior, ::Type{Normal})
203
203
β ~ filldist (prior. predictors, predictors)
204
204
σ ~ Exponential (residual)
205
205
y ~ MvNormal (α .+ X * β, σ^ 2 * I)
206
- return (; α, β, σ, y)
206
+ return nothing
207
207
end
208
208
end
209
209
@@ -226,16 +226,16 @@ function _model(μ_X, σ_X, prior, intercept_ranef, idx, ::Type{TDist})
226
226
β ~ filldist (prior. predictors, predictors)
227
227
σ ~ Exponential (residual)
228
228
ν ~ prior. auxiliary
229
- μ = α .+ X * β
230
- if ! isempty (intercept_ranef)
229
+ if isempty (intercept_ranef)
230
+ μ = α .+ X * β
231
+ else
231
232
τ ~ mad_y * truncated (TDist (3 ); lower= 0 )
232
233
zⱼ ~ filldist (Normal (), n_gr)
233
- αⱼ = zⱼ .* τ
234
- μ .+ = αⱼ[idxs]
234
+ μ = α .+ τ .* getindex .((zⱼ,), idxs) .+ X * β
235
235
end
236
236
# TODO : implement random-effects slope
237
237
y ~ arraydist (μ + σ * TDist .(ν))
238
- return (; α, β, σ, ν, τ, zⱼ, αⱼ, y)
238
+ return nothing
239
239
end
240
240
end
241
241
function _model (μ_X, σ_X, prior, :: Type{TDist} )
@@ -247,7 +247,7 @@ function _model(μ_X, σ_X, prior, ::Type{TDist})
247
247
σ ~ Exponential (residual)
248
248
ν ~ prior. auxiliary
249
249
y ~ arraydist ((α .+ X * β) .+ σ .* TDist .(ν))
250
- return (; α, β, σ, ν, y)
250
+ return nothing
251
251
end
252
252
end
253
253
@@ -267,16 +267,16 @@ function _model(μ_X, σ_X, prior, intercept_ranef, idx, ::Type{Bernoulli})
267
267
)
268
268
α ~ prior. intercept
269
269
β ~ filldist (prior. predictors, predictors)
270
- μ = α .+ X * β
271
- if ! isempty (intercept_ranef)
270
+ if isempty (intercept_ranef)
271
+ μ = α .+ X * β
272
+ else
272
273
τ ~ mad_y * truncated (TDist (3 ); lower= 0 )
273
274
zⱼ ~ filldist (Normal (), n_gr)
274
- αⱼ = zⱼ .* τ
275
- μ .+ = αⱼ[idxs]
275
+ μ = α .+ τ .* getindex .((zⱼ,), idxs) .+ X * β
276
276
end
277
277
# TODO : implement random-effects slope
278
278
y ~ arraydist (LazyArray (@~ BernoulliLogit .(μ)))
279
- return (; α, β, τ, zⱼ, αⱼ, y)
279
+ return nothing
280
280
end
281
281
end
282
282
function _model (μ_X, σ_X, prior, :: Type{Bernoulli} )
@@ -286,7 +286,7 @@ function _model(μ_X, σ_X, prior, ::Type{Bernoulli})
286
286
α ~ prior. intercept
287
287
β ~ filldist (prior. predictors, predictors)
288
288
y ~ arraydist (LazyArray (@~ BernoulliLogit .(α .+ X * β)))
289
- return (; α, β, y)
289
+ return nothing
290
290
end
291
291
end
292
292
@@ -306,16 +306,16 @@ function _model(μ_X, σ_X, prior, intercept_ranef, idx, ::Type{Poisson})
306
306
)
307
307
α ~ prior. intercept
308
308
β ~ filldist (prior. predictors, predictors)
309
- μ = α .+ X * β
310
- if ! isempty (intercept_ranef)
309
+ if isempty (intercept_ranef)
310
+ μ = α .+ X * β
311
+ else
311
312
τ ~ mad_y * truncated (TDist (3 ); lower= 0 )
312
313
zⱼ ~ filldist (Normal (), n_gr)
313
- αⱼ = zⱼ .* τ
314
- μ .+ = αⱼ[idxs]
314
+ μ = α .+ τ .* getindex .((zⱼ,), idxs) .+ X * β
315
315
end
316
316
# TODO : implement random-effects slope
317
317
y ~ arraydist (LazyArray (@~ LogPoisson .(μ)))
318
- return (; α, β, τ, zⱼ, αⱼ, y)
318
+ return nothing
319
319
end
320
320
end
321
321
function _model (μ_X, σ_X, prior, :: Type{Poisson} )
@@ -325,7 +325,7 @@ function _model(μ_X, σ_X, prior, ::Type{Poisson})
325
325
α ~ prior. intercept
326
326
β ~ filldist (prior. predictors, predictors)
327
327
y ~ arraydist (LazyArray (@~ LogPoisson .(α .+ X * β)))
328
- return (; α, β, y)
328
+ return nothing
329
329
end
330
330
end
331
331
@@ -347,16 +347,16 @@ function _model(μ_X, σ_X, prior, intercept_ranef, idx, ::Type{NegativeBinomial
347
347
β ~ filldist (prior. predictors, predictors)
348
348
ϕ⁻ ~ prior. auxiliary
349
349
ϕ = 1 / ϕ⁻
350
- μ = α .+ X * β
351
- if ! isempty (intercept_ranef)
350
+ if isempty (intercept_ranef)
351
+ μ = α .+ X * β
352
+ else
352
353
τ ~ mad_y * truncated (TDist (3 ); lower= 0 )
353
354
zⱼ ~ filldist (Normal (), n_gr)
354
- αⱼ = zⱼ .* τ
355
- μ .+ = αⱼ[idxs]
355
+ μ = α .+ τ .* getindex .((zⱼ,), idxs) .+ X * β
356
356
end
357
357
# TODO : implement random-effects slope
358
358
y ~ arraydist (LazyArray (@~ NegativeBinomial2 .(exp .(μ), ϕ)))
359
- return (; α, β, ϕ, τ, zⱼ, αⱼ, y)
359
+ return nothing
360
360
end
361
361
end
362
362
function _model (μ_X, σ_X, prior, :: Type{NegativeBinomial} )
@@ -366,7 +366,7 @@ function _model(μ_X, σ_X, prior, ::Type{NegativeBinomial})
366
366
ϕ⁻ ~ prior. auxiliary
367
367
ϕ = 1 / ϕ⁻
368
368
y ~ arraydist (LazyArray (@~ NegativeBinomial2 .(exp .(α .+ X * β), ϕ)))
369
- return (; α, β, ϕ, y)
369
+ return nothing
370
370
end
371
371
end
372
372
0 commit comments