Maximum likelihood estimation of multiple-instance logistic regression with LASSO penalty

Description

Please refer to milr-package.

Usage

1
2
milr(y, x, bag, lambda = 0, numLambda = 20L, lambdaCriterion = "BIC",
  nfold = 10L, maxit = 500L)

Arguments

y

a vector. Bag-level binary labels.

x

the design matrix. The number of rows of x must be equal to the length of y.

bag

a vector, bag id.

lambda

the tuning parameter for LASSO-penalty. If lambda is a real value number, then the milr fits the model based on this lambda value. Second, if lambda is vector, then the optimal lambda value would be be chosen based on the optimality criterion, lambdaCriterion. Finally, if lambda = -1, then the optimal lambda value would be chosen automatically. The default is 0.

numLambda

An integer, the maximum length of LASSO-penalty. in atuo-tunning mode (lambda = -1). The default is 20.

lambdaCriterion

a string, the used optimality criterion for tuning the lambda value. It can be specified with lambdaCriterion = "BIC" or lambdaCriterion = "deviance".

nfold

an integer, the number of fold for cross-validation to choose the optimal lambda when lambdaCriterion = "deviance".

maxit

an integer, the maximum iteration for the EM algorithm. The default is 500.

Value

An object with S3 class "milr".

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
set.seed(100)
beta <- runif(5, -5, 5)
trainData <- DGP(70, 3, beta)
testData <- DGP(30, 3, beta)
# default (not use LASSO)
milr_result <- milr(trainData$Z, trainData$X, trainData$ID)
summary(milr_result)   # summary milr
coef(milr_result)      # coefficients
fitted(milr_result)    # fitted bag labels
fitted(milr_result, type = "instance")    # fitted instance labels
predict(milr_result, testData$X, testData$ID) # predicted bag labels
predict(milr_result, testData$X, testData$ID, type = "instance") # predicted instance labels

# use BIC to choose penalty
milr_result <- milr(trainData$Z, trainData$X, trainData$ID,
  exp(seq(log(0.01), log(50),length = 30)))
summary(milr_result)   # summary milr
coef(milr_result)      # coefficients

# use auto-tuning
milr_result <- milr(trainData$Z, trainData$X, trainData$ID, lambda = -1)
coef(milr_result)      # coefficients

# use cv in auto-tuning
milr_result <- milr(trainData$Z, trainData$X, trainData$ID, 
                    lambda = -1, lambdaCriterion = "deviance")
coef(milr_result)      # coefficients

Questions? Problems? Suggestions? or email at ian@mutexlabs.com.

All documentation is copyright its authors; we didn't write any of that.