Skip to contents

Returns marginal mean and variance as a named numeric vector.

Usage

K_moments(
  J,
  a,
  b,
  M = .QUAD_NODES_DEFAULT,
  M_verify = NULL,
  abs_tol = 1e-10,
  rel_tol = 1e-08,
  strict = FALSE
)

Arguments

J

Integer; sample size (positive integer >= 1).

a

Numeric; shape parameter of Gamma prior (> 0).

b

Numeric; rate parameter of Gamma prior (> 0).

M

Integer; number of quadrature nodes (default: 80).

M_verify

Optional quadrature order satisfying the same verification contract as exact_K_moments(): at least max(2*M, M+40) and no greater than 512.

abs_tol, rel_tol

Non-negative selected-versus-verification tolerances.

strict

Logical; require successful higher-order verification.

Value

Named numeric vector c(mean = ..., var = ...) carrying a "marginal_metadata" attribute with status, variance decomposition, and quadrature verification details.

Examples

K_moments(50, 2.0, 1.0)
#>      mean       var 
#>  6.639693 12.954502 
#> attr(,"marginal_metadata")
#> attr(,"marginal_metadata")$schema_version
#> [1] 1
#> 
#> attr(,"marginal_metadata")$status
#> [1] "approximate"
#> 
#> attr(,"marginal_metadata")$decomposition
#> attr(,"marginal_metadata")$decomposition$within_alpha
#> [1] 4.135585
#> 
#> attr(,"marginal_metadata")$decomposition$between_alpha
#> [1] 8.818917
#> 
#> 
#> attr(,"marginal_metadata")$quadrature
#> attr(,"marginal_metadata")$quadrature$schema_version
#> [1] 1
#> 
#> attr(,"marginal_metadata")$quadrature$engine
#> [1] "gauss-laguerre"
#> 
#> attr(,"marginal_metadata")$quadrature$M_selected
#> [1] 80
#> 
#> attr(,"marginal_metadata")$quadrature$M_verification
#> [1] NA
#> 
#> attr(,"marginal_metadata")$quadrature$M_verification_required
#> [1] 160
#> 
#> attr(,"marginal_metadata")$quadrature$verification_available
#> [1] TRUE
#> 
#> attr(,"marginal_metadata")$quadrature$status
#> [1] "approximate"
#> 
#> attr(,"marginal_metadata")$quadrature$reason
#> [1] "fixed_order_unverified"
#> 
#> attr(,"marginal_metadata")$quadrature$verification_performed
#> [1] FALSE
#> 
#> attr(,"marginal_metadata")$quadrature$verification_passed
#> [1] NA
#> 
#> attr(,"marginal_metadata")$quadrature$absolute_tolerance
#> [1] 1e-10
#> 
#> attr(,"marginal_metadata")$quadrature$relative_tolerance
#> [1] 1e-08
#> 
#> attr(,"marginal_metadata")$quadrature$mean_difference
#> [1] NA
#> 
#> attr(,"marginal_metadata")$quadrature$variance_difference
#> [1] NA
#> 
#> attr(,"marginal_metadata")$quadrature$mean_tolerance
#> [1] NA
#> 
#> attr(,"marginal_metadata")$quadrature$variance_tolerance
#> [1] NA
#> 
#> attr(,"marginal_metadata")$quadrature$selected
#> attr(,"marginal_metadata")$quadrature$selected$schema_version
#> [1] 1
#> 
#> attr(,"marginal_metadata")$quadrature$selected$distribution
#> [1] "Gamma(shape, rate)"
#> 
#> attr(,"marginal_metadata")$quadrature$selected$shape
#> [1] 2
#> 
#> attr(,"marginal_metadata")$quadrature$selected$rate
#> [1] 1
#> 
#> attr(,"marginal_metadata")$quadrature$selected$M_selected
#> [1] 80
#> 
#> attr(,"marginal_metadata")$quadrature$selected$M_verification
#> [1] NA
#> 
#> attr(,"marginal_metadata")$quadrature$selected$normalization
#> [1] "log-sum-exp"
#> 
#> attr(,"marginal_metadata")$quadrature$selected$normalized_weight_sum
#> [1] 1
#> 
#> attr(,"marginal_metadata")$quadrature$selected$node_rule
#> attr(,"marginal_metadata")$quadrature$selected$node_rule$schema_version
#> [1] 1
#> 
#> attr(,"marginal_metadata")$quadrature$selected$node_rule$engine
#> [1] "golub-welsch-dense-eigen"
#> 
#> attr(,"marginal_metadata")$quadrature$selected$node_rule$M_selected
#> [1] 80
#> 
#> attr(,"marginal_metadata")$quadrature$selected$node_rule$alpha_param
#> [1] 1
#> 
#> attr(,"marginal_metadata")$quadrature$selected$node_rule$cache_key
#> [1] "M=80|alpha=1"
#> 
#> attr(,"marginal_metadata")$quadrature$selected$node_rule$cache_hit
#> [1] FALSE
#> 
#> attr(,"marginal_metadata")$quadrature$selected$node_rule$zero_normalized_weights
#> [1] 29
#> 
#> attr(,"marginal_metadata")$quadrature$selected$node_rule$normalized_weight_sum
#> [1] 1
#> 
#> 
#> 
#> attr(,"marginal_metadata")$quadrature$verification
#> NULL
#> 
#>