srexp_optimize | R Documentation |
The srexp_optimize()
function generates an optimized proposal for a targeted Exponential Distribution.
The proposal can be customized and adjusted based on various options provided by the user.
srexp_optimize(
rate = NULL,
xl = NULL,
xr = NULL,
steps = 4091,
proposal_range = NULL,
theta = 0.1,
target_sample_size = 1000,
verbose = FALSE
)
rate |
(optional) Numeric. rate parameter of the Exponential Distribution. Defaults to |
xl |
Numeric. Left truncation bound for the target distribution. Defaults to |
xr |
Numeric. Right truncation bound for the target distribution. Defaults to |
steps |
(optional) Integer. Desired number of steps in the proposal. Defaults to |
proposal_range |
(optional) Numeric vector. Specifies the range for optimizing the steps part of the proposal. Defaults to |
theta |
Numeric. A parameter for proposal optimization. Defaults to 0.1. |
target_sample_size |
(optional) Integer. Target sample size for proposal optimization. Defaults to |
verbose |
Boolean. If |
When srexp_optimize()
is explicitly called:
A proposal is created and cached. If no parameters are provided, a standard proposal is created with rate = 1
.
Providing rate
creates a custom proposal, which is cached for use with srexp_custom()
.
The optimization process can be controlled via parameters such as steps
, proposal_range
, or
theta
. If no parameters are provided, the proposal is optimized via brute force based on the.
target_sample_size
.
The user does not need to store the returned value, because the package internally cashes the proposal. However, we explain here the full returned proposal for advanced users.
A list containing the optimized proposal and related parameters for the specified built-in distribution:
data
A data frame with detailed information about the proposal steps, including:
x
The start point of each step on the x-axis.
s_upper
The height of each step on the y-axis.
p_a
Pre-acceptance probability for each step.
s_upper_lower
A vector used to scale the uniform random number when the sample is accepted.
areas
A numeric vector containing the areas under:
left_tail
The left tail bound.
steps
The middle steps.
right_tail
The right tail bound.
steps_number
An integer specifying the number of steps in the proposal.
sampling_probabilities
A numeric vector with:
left_tail
The probability of sampling from the left tail.
left_and_middle
The combined probability of sampling from the left tail and middle steps.
unif_scaler
A numeric scalar, the inverse probability of sampling from the steps part of the proposal (\frac{1}{p(lower < x < upper)}
). Used for scaling uniform random values.
lt_properties
A numeric vector of 5 values required for Adaptive Rejection Sampling (ARS) in the left tail.
rt_properties
A numeric vector of 6 values required for ARS in the right tail.
alpha
A numeric scalar representing the uniform step area.
tails_method
A string, either "ARS"
(Adaptive Rejection Sampling) or "IT"
(Inverse Transform), indicating the sampling method for the tails.
proposal_bounds
A numeric vector specifying the left and right bounds of the target density.
cnum
An integer representing the cache number of the created proposal in memory.
symmetric
A numeric scalar indicating the symmetry point of the proposal, or NULL
if not symmetric.
f_params
A list of parameters for the target density that the proposal is designed for.
rate
the rate of the target distribution.
is_symmetric
A logical value indicating whether the proposal is symmetric.
proposal_type
A string indicating the type of the generated proposal:
"scaled"
The proposal is "scalable" and standardized with rate = 1
. This is used when parameter rate
is either NULL
or not provided. Scalable proposals are compatible with srexp
.
"custom"
The proposal is "custom" when rate
is provided. Custom proposals are compatible with srexp_custom
.
target_function_area
A numeric scalar estimating the area of the target distribution.
dens_func
A string containing the hardcoded density function.
density_name
A string specifying the name of the target density distribution.
lock
An identifier used for saving and loading the proposal from disk.
srexp
: Function to sample from a scalable proposal generated by srexp_optimize()
.
srexp_custom
: Function to sample from a custom proposal tailored to user specifications.
# Generate scalable proposal that with rate = 1, that has 4096 steps
scalable_proposal <- srexp_optimize(steps = 4096)
# Generate custom proposal that with rate = 4
scalable_proposal <- srexp_optimize(rate = 4)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.