Movatterモバイル変換


[0]ホーム

URL:


Title:Polya Gamma Distribution Sampler
Version:0.2.4
Description:Provides access to a high performant random distribution sampler for the Polya Gamma Distribution using either 'C++' headers for 'Rcpp' or 'RcppArmadillo' and 'R'.
URL:https://tmsalab.github.io/pg/,https://github.com/tmsalab/pg
BugReports:https://github.com/tmsalab/pg/issues
License:GPL (≥ 3)
LinkingTo:Rcpp, RcppArmadillo
Imports:Rcpp
Encoding:UTF-8
RoxygenNote:7.2.3
Suggests:testthat (≥ 2.1.0)
NeedsCompilation:yes
Packaged:2023-07-21 05:41:00 UTC; ronin
Author:James Balamuta [aut, cre, cph]
Maintainer:James Balamuta <balamut2@illinois.edu>
Repository:CRAN
Date/Publication:2023-07-22 10:30:06 UTC

pg: Polya Gamma Distribution Sampler

Description

Provides access to a high performant random distribution sampler for the Polya Gamma Distribution using either 'C++' headers for 'Rcpp' or 'RcppArmadillo' and 'R'.

Author(s)

Maintainer: James Balamutabalamut2@illinois.edu [copyright holder]

See Also

Useful links:


Theoretical Polya Gamma Distribution's Mean and Variance

Description

Compute the theoretical mean and variance for a Polya Gamma variable.

Usage

pg_mean(h, z)pg_var(h, z)

Arguments

h

A singleinteger value corresponding to the "shape" parameter.

z

A singlenumeric value corresponding to the "scale" parameter.

Value

Either the theoretical mean or theoretical variance for a Polya Gammadistribution.

Examples

# Fixed parameter distribution simulation ----## Parameters  ----h = 1; z = .5## Attempt distribution recovery  ----vector_of_pg_samples = rpg_vector(1e6, h, z)head(vector_of_pg_samples)length(vector_of_pg_samples)## Obtain the empirical results   ----empirical_mean = mean(vector_of_pg_samples)empirical_var = var(vector_of_pg_samples)## Take the theoretical values ----theoretical_mean = pg_mean(h, z)theoretical_var = pg_var(h, z)## Form a comparison table ----# empirically sampled vs. theoretical valuesrbind(c(empirical_mean, theoretical_mean),      c(empirical_var, theoretical_var))

Sample from the Polya Gamma distribution PG(h, z)

Description

Chooses the most efficient implemented method to sample from a Polya Gammadistribution. Details on algorithm selection presented below.

Usage

rpg_scalar(h, z)rpg_vector(n, h, z)rpg_hybrid(h, z)rpg_gamma(h, z, trunc = 1000L)rpg_devroye(h, z)rpg_sp(h, z)rpg_normal(h, z)

Arguments

h

integer values corresponding to the "shape" parameter.

z

numeric values corresponding to the "scale" parameter.

n

The number of samples to taken from a PG(h, z). Used only bythe vector sampler.

trunc

Truncation cut-off. Only used by the gamma sampler.

Details

The following sampling cases are enabled:

Value

A singlenumeric value.

Examples

# Fixed parameter distribution simulation ----## Parameters  ----h = 1; z = .5## Sample only one value  ----single_value = rpg_scalar(h, z)single_value## Attempt distribution recovery  ----vector_of_pg_samples = rpg_vector(1e6, h, z)head(vector_of_pg_samples)length(vector_of_pg_samples)## Obtain the empirical results   ----empirical_mean = mean(vector_of_pg_samples)empirical_var = var(vector_of_pg_samples)## Take the theoretical values ----theoretical_mean = pg_mean(h, z)theoretical_var = pg_var(h, z)## Form a comparison table ----# empirically sampled vs. theoretical valuesrbind(c(empirical_mean, theoretical_mean),      c(empirical_var, theoretical_var))# Varying distribution parameters ----## Generate varying parameters ----u_h = 20:100u_z = 0.5*u_h## Sample from varying parameters ----x = rpg_hybrid(u_h, u_z)

[8]ページ先頭

©2009-2025 Movatter.jp