Learn R Programming

PDtoolkit (version 1.2.0)

constrained.logit: Constrained logistic regression

Description

constrained.logit performs estimation of logistic regression with constrains on values of the estimated coefficient.

Usage

constrained.logit(db, x, y, lower, upper)

Value

The command constrained.logit returns list of two vectors. The first vector contains values of the estimated coefficients, while the second vector contains predictions of the constrained logistic regression.

Arguments

db

Data set of risk factors and target variable.

x

Character vector of risk factors (independent variables) used in logistic regression.

y

Character vector of target (dependent variable) used in logistic regression.

lower

Numeric vector of lower boundaries of the coefficients. This vector should contain value of the intercept, therefore number of elements should be equal to number of elements of the argument x plus one.

upper

Numeric vector of upper boundaries of the coefficients. This vector should contain value of the intercept, therefore number of elements should be equal to number of elements of the argument x plus one.

Examples

Run this code
suppressMessages(library(PDtoolkit))
data(loans)
#model 1
reg.1 <- glm(Creditability ~ `Account Balance`, family = "binomial", data = loans)
summary(reg.1)$coefficient
loans$pred.1 <-  unname(predict(reg.1, type = "response"))
#model 2
reg.2 <- glm(Creditability ~ `Age (years)`, family = "binomial", data = loans)
summary(reg.2)$coefficient
loans$pred.2 <-  unname(predict(reg.2, type = "response"))
#integration
fm <- glm(Creditability ~ pred.1 + pred.2, family = "binomial", data = loans)
summary(fm)$coefficient
fm.pred <- predict(fm, type = "response", newdata = loans)
auc.model(predictions = fm.pred, observed = loans$Creditability)
#constrained integration (regression)
cl.r <- constrained.logit(db = loans, 
		  x = c("pred.1", "pred.2"), 
		  y = "Creditability",
		  lower = c(-Inf, -Inf, -Inf), 
		  upper = c(Inf, 4.5, Inf))
names(cl.r)
cl.r[["beta"]]
auc.model(predictions = cl.r[["prediction"]], observed = loans$Creditability)

Run the code above in your browser using DataLab