Automatic Differentiation
 
Loading...
Searching...
No Matches

◆ hmm_latent_rng()

template<typename T_omega , typename T_Gamma , typename T_rho , class RNG , require_all_eigen_t< T_omega, T_Gamma > * = nullptr, require_eigen_col_vector_t< T_rho > * = nullptr>
std::vector< int > stan::math::hmm_latent_rng ( const T_omega &  log_omegas,
const T_Gamma &  Gamma,
const T_rho &  rho,
RNG &  rng 
)
inline

For a hidden Markov model with observation y, hidden state x, and parameters theta, generate samples from the posterior distribution of the hidden states, x.

In this setting, the hidden states are discrete and takes values over the finite space {1, ..., K}. log_omegas is a matrix of observational densities, where the (i, j)th entry corresponds to the density of the ith observation, y_i, given x_i = j. The transition matrix Gamma is such that the (i, j)th entry is the probability that x_n = j given x_{n - 1} = i. The rows of Gamma are simplexes.

Template Parameters
T_omegatype of the log likelihood matrix
T_Gammatype of the transition matrix
T_rhotype of the initial guess vector
Parameters
[in]log_omegaslog matrix of observational densities.
[in]Gammatransition density between hidden states.
[in]rhoinitial state
[in]rngrandom number generator
Returns
sample from the posterior distribution of the hidden states.
Exceptions
`std::invalid_argument`if Gamma is not square, when we have at least one transition, or if the size of rho is not the number of rows of log_omegas.
`std::domain_error`if rho is not a simplex and of the rows of Gamma are not a simplex (when there is at least one transition).

Definition at line 44 of file hmm_latent_rng.hpp.