weight_draws: Weight 'draws' objects

Description Usage Arguments Value See Also Examples

View source: R/weight_draws.R

Description

Add weights to draws objects, with one weight per draw, for use in subsequent weighting operations. For reasons of numerical accuracy, weights are stored in the form of unnormalized log-weights (in a variable called .log_weight). See weights.draws() for details how to extract weights from draws objects.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
weight_draws(x, weights, ...)

## S3 method for class 'draws_matrix'
weight_draws(x, weights, log = FALSE, ...)

## S3 method for class 'draws_array'
weight_draws(x, weights, log = FALSE, ...)

## S3 method for class 'draws_df'
weight_draws(x, weights, log = FALSE, ...)

## S3 method for class 'draws_list'
weight_draws(x, weights, log = FALSE, ...)

## S3 method for class 'draws_rvars'
weight_draws(x, weights, log = FALSE, ...)

Arguments

x

(draws) A draws object or another R object for which the method is defined.

weights

(numeric vector) A vector of weights of length ndraws(x). Weights will be internally stored on the log scale (in a variable called .log_weight) and will not be normalized, but normalized (non-log) weights can be returned via the weights.draws() method later.

...

Arguments passed to individual methods (if applicable).

log

(logicla) Are the weights passed already on the log scale? The default is FALSE, that is, expecting weights to be on the standard (non-log) scale.

Value

A draws object of the same class as x.

See Also

weights.draws(), resample_draws()

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
x <- example_draws()

# sample some random weights for illustration
wts <- rexp(ndraws(x))
head(wts)

# add weights
x <- weight_draws(x, weights = wts)

# extract weights
head(weights(x)) # defaults to normalized weights
head(weights(x, normalize=FALSE)) # recover original weights
head(weights(x, log=TRUE)) # get normalized log-weights

# add weights which are already on the log scale
log_wts <- log(wts)
head(log_wts)

x <- weight_draws(x, weights = log_wts, log = TRUE)
# extract weights
head(weights(x))
head(weights(x, log=TRUE, normalize = FALSE)) # recover original log_wts

posterior documentation built on Sept. 9, 2021, 5:07 p.m.