R/fit_two_part.R
hd2part.RdThis function fits penalized two part models with a logistic regression model for the zero part and a gamma regression model for the positive part. Each covariate's effect has either a group lasso or cooperative lasso penalty for its effects for the two consituent models
hd2part( x, z, x_s, s, weights = rep(1, NROW(x)), weights_s = rep(1, NROW(x_s)), offset = NULL, offset_s = NULL, penalty = c("grp.lasso", "coop.lasso"), penalty_factor = NULL, nlambda = 100L, lambda_min_ratio = ifelse(n_s < p, 0.05, 0.005), lambda = NULL, tau = 0, opposite_signs = FALSE, flip_beta_zero = FALSE, intercept_z = FALSE, intercept_s = FALSE, strongrule = TRUE, maxit_irls = 50, tol_irls = 1e-05, maxit_mm = 500, tol_mm = 1e-05, balance_likelihoods = TRUE )
| x | an n x p matrix of covariates for the zero part data, where each row is an observation and each column is a predictor |
|---|---|
| z | a length n vector of responses taking values 1 and 0, where 1 indicates the response is positive and zero indicates the response has value 0. |
| x_s | an n_s x p matrix of covariates (which is a submatrix of x) for the positive part data, where each row is an observation and each column is a predictor |
| s | a length n_s vector of responses taking strictly positive values |
| weights | a length n vector of observation weights for the zero part data |
| weights_s | a length n_s vector of observation weights for the positive part data |
| offset | a length n vector of offset terms for the zero part data |
| offset_s | a length n_s vector of offset terms for the positive part data |
| penalty | either |
| penalty_factor | a length p vector of penalty adjustment factors corresponding to each covariate. A value of 0 in the jth location indicates no penalization on the jth variable, and any positive value will indicate a multiplicative factor on top of the common penalization amount. The default value is 1 for all variables |
| nlambda | the number of lambda values. The default is 100. |
| lambda_min_ratio | Smallest value for |
| lambda | a user supplied sequence of penalization tuning parameters. By default, the program automatically
chooses a sequence of lambda values based on |
| tau | value between 0 and 1 for sparse group mixing penalty. 0 implies either group lasso or coop lasso and 1 implies lasso |
| opposite_signs | a boolean variable indicating whether the signs of coefficients across models should be encouraged to have
opposite signs instead of the same signs. Default is |
| flip_beta_zero | should we flip the signs of the parameters for the zero part model? Defaults to |
| intercept_z | whether or not to include an intercept in the zero part model. Default is |
| intercept_s | whether or not to include an intercept in the positive part model. Default is |
| strongrule | should a strong rule be used? Defaults to |
| maxit_irls | maximum number of IRLS iterations |
| tol_irls | convergence tolerance for IRLS iterations |
| maxit_mm | maximum number of MM iterations. Note that for |
| tol_mm | convergence tolerance for MM iterations. Note that for |
| balance_likelihoods | should the likelihoods be balanced so variables would enter both models at the same value of lambda
if the penalty were a lasso penalty? Recommended to keep at the default, |