Type: | Package |
Title: | Implementation of Logistic Box-Cox Regression |
Version: | 1.2 |
Date: | 2023-12-12 |
Maintainer: | Li Xing <sfulxing@gmail.com> |
Description: | Implements a logistic box-cox model. This model is fully described in Xing, L. et al. (2021) <doi:10.1002/cjs.11587>. |
License: | GPL-3 |
Encoding: | UTF-8 |
LazyData: | true |
RoxygenNote: | 7.2.3 |
Suggests: | knitr, rmarkdown, testthat (≥ 3.0.0) |
VignetteBuilder: | knitr |
Config/testthat/edition: | 3 |
Depends: | R (≥ 3.50) |
Imports: | survey, maxLik, doParallel, foreach, MASS, dplyr, R.utils |
NeedsCompilation: | no |
Packaged: | 2023-12-15 22:20:10 UTC; xushiyu |
Author: | Li Xing [cre, aut], Shiyu Xu [aut], Jing Wang [aut], Kohlton Booth [aut], Xuekui Zhang [aut], Igor Burstyn [aut], Paul Gustafson [aut] |
Repository: | CRAN |
Date/Publication: | 2023-12-15 23:10:02 UTC |
Log Likelihood of Logistic Box-Cox
Description
This function gives the log likelihood of the Box-Cox model. Main purpose is to be an input to the maxLik function.
Usage
LogLikeFun(bb, ixx, iyy, iw, iZZ)
Arguments
bb |
current values for the intercept and slope coefficients |
ixx |
continuous predictor |
iyy |
binary outcome |
iw |
sample weight |
iZZ |
covariates to be incorporated in the model |
Value
the log likelihood estimate for the coefficients in 'bb'
New Log Likelihood of Logistic Box-Cox
Description
This function gives the log likelihood of the Box-Cox model. Main purpose is to be an input to the maxLik function.
Usage
LogLikeFun_new(bb, ixx, iyy, iw, iZZ)
Arguments
bb |
current values for the intercept and slope coefficients |
ixx |
continuous predictor |
iyy |
binary outcome |
iw |
sample weight |
iZZ |
covariates to be incorporated in the model |
Value
the log likelihood estimate for the coefficients in 'bb'
Log Likelihood Gradient of Logistic Box-Cox
Description
This function gives the gradient of the log likelihood of the Box-Cox model. Main purpose is to be an input to the maxLik function.
Usage
ScoreFun(bb, ixx, iyy, iw, iZZ)
Arguments
bb |
initial values for the intercept and slope coefficients |
ixx |
continuous predictor |
iyy |
binary outcome |
iw |
sample weight |
iZZ |
covariates to be incorporated in the model |
Value
the gradient of the log likelihood estimate for the coefficients in 'bb'
New Log Likelihood Gradient of Logistic Box-Cox
Description
This function gives the gradient of the log likelihood of the Box-Cox model. Main purpose is to be an input to the maxLik function.
Usage
ScoreFun_new(init, ixx, iyy, iw, iZZ)
Arguments
init |
initial values for the intercept and slope coefficients |
ixx |
continuous predictor |
iyy |
binary outcome |
iw |
sample weight |
iZZ |
covariates to be incorporated in the model |
Value
the gradient of the log likelihood estimate for the coefficients in 'bb'
Box-Cox transform
Description
This function processes the box cox transform on varibles
Usage
box_cox_new(formula, mydata, ixx, lambda)
Arguments
formula |
a formula of the form y ~ x + z1 + z2 where y is a binary response variable, x is a continuous predictor variable, and z1, z2, ... are covariates |
mydata |
dataset used in box cox transform |
ixx |
continuous predictor |
lambda |
lambda used in box cox transform |
Value
data set after transform, contains transformed ixx
Depression dataset
Description
The depress data frame has 8,893 rows and 5 columns from the National Health and Nutrition Examination Survey (NHANES) 2009–2010.
Usage
depress
Format
Sample survey data
- depression
binary response variable indicating whether the participant has depression (=1) or not (=0)
- mercury
a numeric vector giving the log-transformed total blood mercury in micro-grams per litre
- age
0 of particiapant is female and 1 if they are male
- gender
age of the participant
- weight
a numeric vector giving the sampling-weight.
Source
Xing, L., Zhang, X., Burstyn, I., & Gustafson, P. (2021). On logistic Box–Cox regression for flexibly estimating the shape and strength of exposure‐disease relationships. Canadian Journal of Statistics, 49(3), 808-825.
Train a Logistic Box-Cox model using MaxLik
Description
Train the given formula using a Logistic Box-Cox model.
Usage
lbc_maxlik(
formula,
weight_column_name,
data,
init = NULL,
svy_lambda_vector = seq(0, 2, length = 4),
init_lambda_vector = seq(0, 2, length = 100),
num_cores = 1,
seed,
iterlim,
timelim
)
Arguments
formula |
a formula of the form y ~ x + z1 + z2 where y is a binary response variable, x is a continuous predictor variable, and z1, z2, ... are covariates |
weight_column_name |
the name of the column in 'data' containing the survey weights. |
data |
dataframe containing the dataset to train on |
init |
initial estimates for the coefficients. If NULL the svyglm model will be used |
svy_lambda_vector |
values of lambda used in training svyglm model. Best model is used for initial coefficient estimates. If init is not NULL this parameter is ignored. |
init_lambda_vector |
values of lambda used in finding the optimal lambda with the best loglikelihood |
num_cores |
the number of cores used when finding the best svyglm model. If init is not NULL this parameter is ignored. |
seed |
set seed for MaxLik function |
iterlim |
Maximum number of iterations of MaxLik |
timelim |
Maximum iteration time of MaxLik |
Value
object of class 'maxLik' from the 'maxLik' package. Contains the coefficient estimates that maximizes likelhood among other statistics.
Note
This is reliant on the following work:
Henningsen, A., Toomet, O. (2011). maxLik: A package for maximum likelihood estimation in R. Computational Statistics, 26(3), 443-458.
Microsoft Corporation, Weston, S. (2020). foreach: Provides Foreach Looping Construct. R package version 1.5.1.
Microsoft Corporation, Weston, S. (2020). doParallel: Foreach Parallel Adaptor for the 'parallel' Package. R package version 1.0.16.
Train a Logistic Box-Cox model
Description
Train the given formula using a Logistic Box-Cox model.
Usage
lbc_train(
formula,
weight_column_name,
data,
init = NULL,
svy_lambda_vector = seq(0, 2, length = 100),
num_cores = 1
)
Arguments
formula |
a formula of the form y ~ x + z1 + z2 where y is a binary response variable, x is a continuous predictor variable, and z1, z2, ... are covariates |
weight_column_name |
the name of the column in 'data' containing the survey weights. |
data |
dataframe containing the dataset to train on |
init |
initial estimates for the coefficients. If NULL the svyglm model will be used |
svy_lambda_vector |
values of lambda used in training svyglm model. Best model is used for initial coefficient estimates. If init is not NULL this parameter is ignored. |
num_cores |
the number of cores used when finding the best svyglm model. If init is not NULL this parameter is ignored. |
Value
object of class 'maxLik' from the 'maxLik' package. Contains the coefficient estimates that maximizes likelhood among other statistics.
Note
This is reliant on the following work:
Henningsen, A., Toomet, O. (2011). maxLik: A package for maximum likelihood estimation in R. Computational Statistics, 26(3), 443-458.
Microsoft Corporation, Weston, S. (2020). foreach: Provides Foreach Looping Construct. R package version 1.5.1.
Microsoft Corporation, Weston, S. (2020). doParallel: Foreach Parallel Adaptor for the 'parallel' Package. R package version 1.0.16.
Lboxcox MaxLik Prediction Function
Description
Give the predicted p value of given LBC MaxLik model
Usage
lboxcox_maxLik.predict(myMaxLikfit, newdata, formula)
Arguments
myMaxLikfit |
Fitted model using lboxcox_maxLik model |
newdata |
Given data for prediction |
formula |
a formula of the form y ~ x + z1 + z2 where y is a binary response variable, x is a continuous predictor variable, and z1, z2, ... are covariates |
Value
p value
Note
This is reliant on the following work:
Calculates the "slope" of the Logistic Box-Cox model
Description
Calculates a number that represents the overall gradient measurement between the predictor and log-odds of the risk
Calculates a number that represents the overall gradient measurement between the predictor and log-odds of the risk
Usage
median_effect(formula, weight_column_name, data, trained_model)
median_effect(formula, weight_column_name, data, trained_model)
Arguments
formula |
the formula used to train the logistic box-cox model |
weight_column_name |
the name of the column in 'data' containing the survey weights |
data |
dataframe containing the dataset to train on |
trained_model |
the already trained model. The output of 'lbc_train' |
Svyglm of MaxLik_ms
Description
This function gives the initial value list used in MaxLik_ms function
Usage
svyglm_ms(
formula,
data,
lambda_vector = seq(0, 2, length = 100),
weight_column_name = NULL,
num_cores = 1
)
Arguments
formula |
formula used in model |
data |
dataframe containing the dataset to train on |
lambda_vector |
values of lambda used in training svyglm model. |
weight_column_name |
the name of the column in 'data' containing the survey weights. |
num_cores |
the number of cores used when finding the best svyglm model. |
Value
initial value list used in MaxLik_ms function