Obtain posterior draws of meta-d' model parameters
Source:R/linpred_draws_metad.R
linpred_draws_metad.RdGiven a data frame and a meta-d' model, adds estimates of all
model parameters. For linpred_draws_metad and add_linpred_draws_metad, parameters are
returned in a tidy tibble with one row per posterior draw. For
linpred_rvars_metad and add_linpred_rvars_metad, parameters are returned as
posterior::rvars, with one row per row in newdata.
Usage
linpred_draws_metad(object, newdata, ..., pivot_longer = FALSE)
add_linpred_draws_metad(newdata, object, ..., pivot_longer = FALSE)
linpred_rvars_metad(object, newdata, ..., pivot_longer = FALSE)
add_linpred_rvars_metad(newdata, object, pivot_longer = FALSE)Arguments
- object
The
brmsmodel with themetadfamily- newdata
A data frame from which to generate posterior predictions
- ...
Additional arguments passed to tidybayes::add_linpred_draws or tidybayes::add_linpred_rvars
- pivot_longer
Return the draws in long format?
if
TRUE, resulting data frame has one row per posterior draw per model parameterif
FALSE(default), resulting data frame has one row per posterior draw
Value
a tibble containing posterior draws of model parameters with the following columns:
.row: the row ofnewdata.chain,.iteration,.draw: forlinpred_draws_metad, identifiers for the posterior sample.variable,.value: ifpivot_longer=TRUE,.variableidentifies different meta-d' model parameters and.valuestores posterior samplesM,dprime,c,meta_dprime,meta_c,meta_c2_0_<k>,meta_c2_1_<k>: ifpivot_longer=FALSE, posterior samples of all meta-d' model parameters
Examples
# running few iterations so example runs quickly, use more in practice
m <- fit_metad(N ~ 1, sim_metad(), chains = 1, iter = 500)
#> Compiling Stan program...
#> Start sampling
#>
#> SAMPLING FOR MODEL 'anon_model' NOW (CHAIN 1).
#> Chain 1:
#> Chain 1: Gradient evaluation took 1.8e-05 seconds
#> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 0.18 seconds.
#> Chain 1: Adjust your expectations accordingly!
#> Chain 1:
#> Chain 1:
#> Chain 1: Iteration: 1 / 500 [ 0%] (Warmup)
#> Chain 1: Iteration: 50 / 500 [ 10%] (Warmup)
#> Chain 1: Iteration: 100 / 500 [ 20%] (Warmup)
#> Chain 1: Iteration: 150 / 500 [ 30%] (Warmup)
#> Chain 1: Iteration: 200 / 500 [ 40%] (Warmup)
#> Chain 1: Iteration: 250 / 500 [ 50%] (Warmup)
#> Chain 1: Iteration: 251 / 500 [ 50%] (Sampling)
#> Chain 1: Iteration: 300 / 500 [ 60%] (Sampling)
#> Chain 1: Iteration: 350 / 500 [ 70%] (Sampling)
#> Chain 1: Iteration: 400 / 500 [ 80%] (Sampling)
#> Chain 1: Iteration: 450 / 500 [ 90%] (Sampling)
#> Chain 1: Iteration: 500 / 500 [100%] (Sampling)
#> Chain 1:
#> Chain 1: Elapsed Time: 0.032 seconds (Warm-up)
#> Chain 1: 0.021 seconds (Sampling)
#> Chain 1: 0.053 seconds (Total)
#> Chain 1:
newdata <- tidyr::tibble(.row = 1)
# obtain model parameters (wide format)
linpred_draws_metad(m, newdata)
#> # A tibble: 250 × 15
#> # Groups: .row [1]
#> .row .chain .iteration .draw M dprime c meta_dprime meta_c
#> <int> <int> <int> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 1 NA NA 1 0.777 1.18 -0.109 0.914 -0.109
#> 2 1 NA NA 2 0.305 1.27 -0.172 0.387 -0.109
#> 3 1 NA NA 3 0.741 1.19 -0.230 0.883 -0.109
#> 4 1 NA NA 4 0.337 1.25 -0.413 0.420 -0.109
#> 5 1 NA NA 5 0.362 1.31 -0.439 0.475 -0.109
#> 6 1 NA NA 6 0.258 1.57 -0.449 0.406 -0.109
#> 7 1 NA NA 7 0.274 1.61 -0.250 0.440 -0.109
#> 8 1 NA NA 8 1.09 0.721 -0.167 0.783 -0.109
#> 9 1 NA NA 9 1.30 0.623 -0.266 0.809 -0.109
#> 10 1 NA NA 10 0.438 1.16 -0.182 0.508 -0.109
#> # ℹ 240 more rows
#> # ℹ 6 more variables: meta_c2_0_1 <dbl>, meta_c2_0_2 <dbl>, meta_c2_0_3 <dbl>,
#> # meta_c2_1_1 <dbl>, meta_c2_1_2 <dbl>, meta_c2_1_3 <dbl>
add_linpred_draws_metad(newdata, m)
#> # A tibble: 250 × 15
#> # Groups: .row [1]
#> .row .chain .iteration .draw M dprime c meta_dprime meta_c
#> <int> <int> <int> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 1 NA NA 1 0.777 1.18 -0.109 0.914 -0.109
#> 2 1 NA NA 2 0.305 1.27 -0.172 0.387 -0.109
#> 3 1 NA NA 3 0.741 1.19 -0.230 0.883 -0.109
#> 4 1 NA NA 4 0.337 1.25 -0.413 0.420 -0.109
#> 5 1 NA NA 5 0.362 1.31 -0.439 0.475 -0.109
#> 6 1 NA NA 6 0.258 1.57 -0.449 0.406 -0.109
#> 7 1 NA NA 7 0.274 1.61 -0.250 0.440 -0.109
#> 8 1 NA NA 8 1.09 0.721 -0.167 0.783 -0.109
#> 9 1 NA NA 9 1.30 0.623 -0.266 0.809 -0.109
#> 10 1 NA NA 10 0.438 1.16 -0.182 0.508 -0.109
#> # ℹ 240 more rows
#> # ℹ 6 more variables: meta_c2_0_1 <dbl>, meta_c2_0_2 <dbl>, meta_c2_0_3 <dbl>,
#> # meta_c2_1_1 <dbl>, meta_c2_1_2 <dbl>, meta_c2_1_3 <dbl>
# obtain model parameters (long format)
linpred_draws_metad(m, newdata, pivot_longer = TRUE)
#> # A tibble: 2,750 × 6
#> # Groups: .row, .variable [11]
#> .row .chain .iteration .draw .variable .value
#> <int> <int> <int> <int> <chr> <dbl>
#> 1 1 NA NA 1 M 0.777
#> 2 1 NA NA 1 dprime 1.18
#> 3 1 NA NA 1 c -0.109
#> 4 1 NA NA 1 meta_dprime 0.914
#> 5 1 NA NA 1 meta_c -0.109
#> 6 1 NA NA 1 meta_c2_0_1 -0.342
#> 7 1 NA NA 1 meta_c2_0_2 -1.01
#> 8 1 NA NA 1 meta_c2_0_3 -1.54
#> 9 1 NA NA 1 meta_c2_1_1 0.382
#> 10 1 NA NA 1 meta_c2_1_2 1.03
#> # ℹ 2,740 more rows
add_linpred_draws_metad(newdata, m, pivot_longer = TRUE)
#> # A tibble: 2,750 × 6
#> # Groups: .row, .variable [11]
#> .row .chain .iteration .draw .variable .value
#> <int> <int> <int> <int> <chr> <dbl>
#> 1 1 NA NA 1 M 0.777
#> 2 1 NA NA 1 dprime 1.18
#> 3 1 NA NA 1 c -0.109
#> 4 1 NA NA 1 meta_dprime 0.914
#> 5 1 NA NA 1 meta_c -0.109
#> 6 1 NA NA 1 meta_c2_0_1 -0.342
#> 7 1 NA NA 1 meta_c2_0_2 -1.01
#> 8 1 NA NA 1 meta_c2_0_3 -1.54
#> 9 1 NA NA 1 meta_c2_1_1 0.382
#> 10 1 NA NA 1 meta_c2_1_2 1.03
#> # ℹ 2,740 more rows
# obtain model parameters (wide format, posterior::rvar)
linpred_rvars_metad(m, newdata)
#> # A tibble: 1 × 12
#> # Groups: .row [1]
#> .row M dprime c meta_dprime meta_c
#> <dbl> <rvar[1d]> <rvar[1d]> <rvar[1d]> <rvar[1d]> <rvar[1d]>
#> 1 1 0.52 ± 0.39 1.1 ± 0.24 -0.13 ± 0.13 0.52 ± 0.36 -0.13 ± 0.13
#> # ℹ 6 more variables: meta_c2_0_1 <rvar[1d]>, meta_c2_0_2 <rvar[1d]>,
#> # meta_c2_0_3 <rvar[1d]>, meta_c2_1_1 <rvar[1d]>, meta_c2_1_2 <rvar[1d]>,
#> # meta_c2_1_3 <rvar[1d]>
add_linpred_rvars_metad(newdata, m)
#> # A tibble: 1 × 12
#> # Groups: .row [1]
#> .row M dprime c meta_dprime meta_c
#> <dbl> <rvar[1d]> <rvar[1d]> <rvar[1d]> <rvar[1d]> <rvar[1d]>
#> 1 1 0.52 ± 0.39 1.1 ± 0.24 -0.13 ± 0.13 0.52 ± 0.36 -0.13 ± 0.13
#> # ℹ 6 more variables: meta_c2_0_1 <rvar[1d]>, meta_c2_0_2 <rvar[1d]>,
#> # meta_c2_0_3 <rvar[1d]>, meta_c2_1_1 <rvar[1d]>, meta_c2_1_2 <rvar[1d]>,
#> # meta_c2_1_3 <rvar[1d]>
# obtain model parameters (long format, posterior::rvar)
linpred_rvars_metad(m, newdata, pivot_longer = TRUE)
#> # A tibble: 11 × 3
#> # Groups: .row, .variable [11]
#> .row .variable .value
#> <dbl> <chr> <rvar[1d]>
#> 1 1 M 0.52 ± 0.39
#> 2 1 dprime 1.05 ± 0.24
#> 3 1 c -0.13 ± 0.13
#> 4 1 meta_dprime 0.52 ± 0.36
#> 5 1 meta_c -0.13 ± 0.13
#> 6 1 meta_c2_0_1 -0.43 ± 0.13
#> 7 1 meta_c2_0_2 -1.04 ± 0.15
#> 8 1 meta_c2_0_3 -1.61 ± 0.17
#> 9 1 meta_c2_1_1 0.32 ± 0.13
#> 10 1 meta_c2_1_2 0.79 ± 0.15
#> 11 1 meta_c2_1_3 1.40 ± 0.18
add_linpred_rvars_metad(newdata, m, pivot_longer = TRUE)
#> # A tibble: 11 × 3
#> # Groups: .row, .variable [11]
#> .row .variable .value
#> <dbl> <chr> <rvar[1d]>
#> 1 1 M 0.52 ± 0.39
#> 2 1 dprime 1.05 ± 0.24
#> 3 1 c -0.13 ± 0.13
#> 4 1 meta_dprime 0.52 ± 0.36
#> 5 1 meta_c -0.13 ± 0.13
#> 6 1 meta_c2_0_1 -0.43 ± 0.13
#> 7 1 meta_c2_0_2 -1.04 ± 0.15
#> 8 1 meta_c2_0_3 -1.61 ± 0.17
#> 9 1 meta_c2_1_1 0.32 ± 0.13
#> 10 1 meta_c2_1_2 0.79 ± 0.15
#> 11 1 meta_c2_1_3 1.40 ± 0.18