Prev Next sample_conditional

@(@\newcommand{\R}[1]{ {\rm #1} } \newcommand{\B}[1]{ {\bf #1} } \newcommand{\W}[1]{ \; #1 \; }@)@This is cppad_mixed--20220519 documentation: Here is a link to its current documentation .
Sample Posterior for Fixed Effects Using Conditional Covariance

Syntax
Replaced
Prototype
Purpose
manage_gsl_rng
mixed_object
sample
information_info
solution
fixed_lower
fixed_upper
random_opt
Theory
     Notation
     Fixed Effects Subset
     Unconstrained Subset Covariance
     Constraint Equations
     Conditional Covariance
Example

Syntax
mixed_object.sample_conditional(
     
sample,
     
information_info,
     
solution,
     
fixed_lower,
     
fixed_upper,
     
random_opt
)


Replaced
This routine uses the conditional covariance to sample the fixed effects. This required inverting the information_mat . It has been replaced by using the sample_fixed because it is faster.

Prototype

void cppad_mixed::sample_conditional(
     CppAD::vector<double>&                 sample               ,
     const CppAD::mixed::sparse_mat_info&   information_info     ,
     const CppAD::mixed::fixed_solution&    solution             ,
     const CppAD::vector<double>&           fixed_lower          ,
     const CppAD::vector<double>&           fixed_upper          ,
     const CppAD::vector<double>&           random_opt           )

Purpose
This routine draw samples from the asymptotic posterior distribution for the optimal fixed effects (given the model and the data).

manage_gsl_rng
It is assumed that get_gsl_rng will return a pointer to a GSL random number generator.

mixed_object
We use mixed_object to denote an object of a class that is derived from the cppad_mixed base class.

sample
The size sample.size() is a multiple of n_fixed . The input value of its elements does not matter. We define
     
n_sample = sample_size / n_fixed
Upon return, for i = 0 , ...n_sample-1 , j = 0 , ...n_fixed-1 ,
     
samplei * n_fixed + j ]
is the j-th component of the i-th sample of the optimal fixed effects @(@ \hat{\theta} @)@. These samples are independent for different @(@ i @)@, and for fixed @(@ i @)@, they have the conditional covariance @(@ D @)@.

information_info
This is a sparse matrix representation for the lower triangle of the observed information matrix corresponding to solution ; i.e., the matrix returned by
information_info = mixed_object.information_mat(
     
solutionrandom_optionsrandom_lowerrandom_upperrandom_in
)


solution
is the solution for a the call to optimize_fixed corresponding to information_info .

fixed_lower
is the same as fixed_lower in the call to optimize_fixed that corresponds to solution .

fixed_upper
is the same as fixed_upper in the call to optimize_fixed that corresponds to solution .

random_opt
is the optimal random effects corresponding to the solution; i.e.
     
random_opt = mixed_object.optimize_random(
          
random_options,
          
solution.fixed_opt,
          
random_lower,
          
random_upper,
          
random_in
     )
random_options , random_lower , random_upper , and random_in , are the same as in the call to optimize_fixed that corresponds to solution .

Theory

Notation
Given two random vectors @(@ u @)@ and @(@ v @)@, we use the notation @(@ \B{C}( u , v ) @)@ for the corresponding covariance matrix; i.e., @[@ \B{C}( u , v ) = \B{E} \left( [ u - \B{E} (u) ] [ v - \B{E} (v) ]^\R{T} \right) @]@

Fixed Effects Subset
We use @(@ \alpha @)@ for the vector of fixed effects that do not have their upper or lower bound active (or equal); i.e., if j is such that
solution.fixed_lag[j] == 0.0 && fixed_lower[j] < fixed_upper[j]
then @(@ \theta_j @)@ is one of the components in @(@ \alpha @)@. Note that each value of @(@ \alpha @)@ has a corresponding value for @(@ \theta @)@ where the active bounds are used for the components not in @(@ \alpha @)@.

Unconstrained Subset Covariance
Note that the bound constraints do not apply to the subset of fixed effects represented by @(@ \alpha @)@. We use @(@ \tilde{L} ( \alpha ) @)@ to denote the fixed effects objective as a function of @(@ \alpha @)@ and where the absolute values terms in fix_likelihood are excluded. We use @(@ \tilde{\alpha} @)@ for the unconstrained optimal estimate of the subset of fixed effects and approximate its auto-covariance by @[@ \B{C} ( \tilde{\alpha} , \tilde{\alpha} ) = H^{-1} @]@ Here @(@ H @)@ is the Hessian corresponding to information_info . Note that information_info is the observed information matrix corresponding to all the fixed effects @(@ \theta @)@.

Constraint Equations
Let @(@ n @)@ be the number of fixed effects in @(@ \alpha @)@, @(@ m @)@ the number of active constraints (not counting bounds), and the equations @(@ e( \alpha ) = b @)@ be those active constraints. Here @(@ e : \B{R}^n \rightarrow \B{R}^m @)@ and @(@ b \in \B{R}^m @)@ and the inequality constraints have been converted to equalities at the active bounds (excluding the bounds on the fixed effects). Define the random variable the approximation for @(@ e( \alpha ) @)@ by @[@ \tilde{e} ( \alpha ) = e \left( \hat{\alpha} \right) + e^{(1)} \left( \hat{\alpha} \right) \left( \alpha - \hat{\alpha} \right) @]@ where @(@ \hat{\alpha} @)@ is the subset of the optional estimate for the fixed effects solution.fixed_opt .

Conditional Covariance
We approximate the distribution for @(@ \tilde{\alpha} @)@ normal, and the distribution for @(@ \hat{\alpha} @)@ as the conditional distribution of @(@ \tilde{\alpha} @)@ given the value of @(@ \tilde{e} ( \tilde{\alpha} ) @)@; i.e., @[@ \B{C} \left( \hat{\alpha} \W{,} \hat{\alpha} \right) = \B{C} \left( \tilde{\alpha} \W{,} \tilde{\alpha} \right) - \B{C} \left( \tilde{\alpha} \W{,} \tilde{e} \right) \B{C} \left( \tilde{e} \W{,} \tilde{e} \right)^{-1} \B{C} \left( \tilde{e} \W{,} \tilde{\alpha} \right) @]@ Using the notation @(@ D = \B{C} \left( \hat{\alpha} \W{,} \hat{\alpha} \right) @)@, @(@ C = \B{C} \left( \tilde{\alpha} \W{,} \tilde{\alpha} \right) @)@, @(@ E = e^{(1)} \left( \hat{\alpha} \right) @)@, we have @[@ D = C - C E^\R{T} \left( E C E^\R{T} \right)^{-1} E C @]@

Example
The file sample_fixed.cpp is an example and test of sample_conditional was used before it was replaced .
Input File: src/eigen/sample_conditional.cpp