logistic_regression
This module implements logistic regression for scenario discovery.
The module draws its inspiration from Quinn et al (2018) 10.1029/2018WR022743 and Lamontagne et al (2019). The implementation here generalizes their work and embeds it in a more typical scenario discovery workflow with a posteriori selection of the appropriate number of dimensions to include. It is modeled as much as possible on the api used for PRIM and CART.
- class ema_workbench.analysis.logistic_regression.Logit(x, y, threshold=0.95)
Implements an interactive version of logistic regression using BIC based forward selection
- Parameters:
x (DataFrame)
y (numpy Array)
threshold (float)
- coverage
coverage of currently selected model
- Type:
float
- density
density of currently selected model
- Type:
float
- res_dim
number of restricted dimensions of currently selected model
- Type:
int
- peeling_trajectory
stats for each model in peeling trajectory
- Type:
DataFrame
- models
list of models associated with each model on the peeling trajectory
- Type:
list
- inspect(i, step=0.1)
Inspect one of the models by showing the threshold tradeoff and summary2
- Parameters:
i (int)
step (float between [0, 1])
- plot_pairwise_scatter(i, threshold=0.95)
plot pairwise scatter plot of data points, with contours as background
- Parameters:
i (int)
threshold (float)
- Return type:
Figure instance
The lower triangle background is a binary contour based on the specified threshold. All axis not shown are set to a default value in the middle of their range
The upper triangle shows a contour map with the conditional probability, again setting all non shown dimensions to a default value in the middle of their range.
- run(**kwargs)
run logistic regression using forward selection using a Bayesian Information Criterion for selecting whether and if so which dimension to add
- Parameters:
details (kwargs are passed on to model.fit. For)
https (see)
- show_threshold_tradeoff(i, cmap=<matplotlib.colors.ListedColormap object>, step=0.1)
Visualize the trade off between coverage and density for a given model i across the range of threshold values
- Parameters:
i (int)
cmap (valid matplotlib colormap)
step (float, optional)
- Return type:
a Figure instance
- show_tradeoff(cmap=<matplotlib.colors.ListedColormap object>, annotated=False)
Visualize the trade off between coverage and density. Color is used to denote the number of restricted dimensions.
- Parameters:
cmap (valid matplotlib colormap)
annotated (bool, optional. Shows point labels if True.)
- Return type:
a Figure instance
- update(model, selected)
helper function for adding a model to the collection of models and update the associated attributes
- Parameters:
model (statsmodel fitted logit model)
selected (list of str)