fits model with B_kj constrained to equal g(B_k) for constraint fn g
Source:R/fit_null.R
fit_null.Rd
fits model with B_kj constrained to equal g(B_k) for constraint fn g
Usage
fit_null(
B,
Y,
X,
X_cup = NULL,
k_constr,
j_constr,
j_ref,
constraint_fn,
constraint_grad_fn,
rho_init = 1,
tau = 1.2,
kappa = 0.8,
B_tol = 0.01,
inner_tol = 0.01,
constraint_tol = 1e-04,
max_step = 5,
c1 = 1e-04,
maxit = 1000,
inner_maxit = 25,
verbose = FALSE,
trackB = FALSE
)
Arguments
- B
description
- Y
Y (with augmentations)
- X
design matrix
- X_cup
design matrix for Y in long format. Defaults to NULL, in which case matrix is computed from X.
- k_constr
row index of B to constrain
- j_constr
col index of B to constrain
- j_ref
column index of convenience constraint
- constraint_fn
constraint function
- constraint_grad_fn
gradient of constraint fn
- rho_init
where to start quadratic penalty parameter
- tau
how much to increment rho by each iteration
- kappa
cutoff above which to increment rho. If distance to feasibility doesn't shrink by at least this factor in an iteration, increment rho by tau.
- B_tol
tolerance for convergence in max_k,j |B^t_kj - B^(t - 1)_kj|
- inner_tol
tolerance for inner loop
- constraint_tol
tolerance for |B_kj - g(B_k)|
- max_step
maximum step size
- c1
constant for armijo rule
- maxit
maximum iterations
- inner_maxit
max iterations per inner loop
- verbose
shout at you?
- trackB
track value of beta across iterations and return?
Value
A list containing elements 'B', 'k_constr', 'j_constr', 'niter' 'gap', 'u', 'rho', and 'Bs'. 'B' is a matrix containing parameter estimates under the null (obtained by maximum likelihood on augmented observations Y), 'k_constr', and 'j_constr' give row and column indexes of the parameter fixed to be equal to the constraint function g() under the null. 'niter' is a scalar giving total number of outer iterations used to fit the null model, 'gap' gives the final value of g(B_k_constr) - B_k_constr j_constr, 'u' and 'rho' are final values of augmented Lagrangian parameters, and 'Bs' is a data frame containing values of B by iteration if trackB was set equal to TRUE (otherwise it contains a NULL value).