separationplot {separationplot} | R Documentation |
Generate a Separation Plot
Description
This is the core function for the generation of a separation plot.
Usage
separationplot(pred, actual, type = "line", line = T, lwd1 = 0.5, lwd2 = 0.5,
heading = "", xlab = "", shuffle = T, width = 9, height = 1.2, col0 = "#FEF0D9",
col1 = "#E34A33", flag = NULL, flagcol = 1, file = NULL, newplot = T, locate = NULL,
rectborder = NA, show.expected = F, zerosfirst = T, BW=F)
Arguments
pred |
Vector of predicted probabilities (on a continuous 0 to 1 scale). |
actual |
Vector of actual outcomes (each element must be either 0 or 1). |
type |
Should the individual lines on the separation plot be plotted as line segments ( |
line |
Should a trace line be added to the plot? |
lwd1 |
The width of the individual line segments (only when |
lwd2 |
The width of the trace line (only when |
heading |
An optional title for the plot. |
xlab |
An option x-axis label. |
shuffle |
If |
width |
Width of the plot space (in inches). |
height |
Height of the plot space (in inches). |
col0 |
Color of the predicted probabilities corresponding to 0s in the |
col1 |
Color of the predicted probabilities corresponding to 1s in the |
flag |
A vector of row number(s) in the |
flagcol |
A vector of colors for the flags. |
file |
The name and file path of where the pdf output should be written, if desired. If |
newplot |
Should a new plotting space be opened up for the separation plot? Select |
locate |
Number of lines (if any) on the separation plot that you want to identify with the mouse using the |
rectborder |
When |
show.expected |
If |
zerosfirst |
When |
BW |
Should the Black and White color scheme be implemented? |
Details
Please see the paper by Greenhill, Ward and Sacks (2011) for more information on the features of the separation plot.
Value
resultsmatrix |
The dataframe containing the data used to generate the separation plot. The first column is the vector of predicted probabilities, the second is the vector of actual outcomes, the third indicates which observations have been flagged using the |
Author(s)
Brian Greenhill <bgreenhill@albany.edu>
References
Greenhill, Brian, Michael D. Ward, and Audrey Sacks. "The separation plot: A new visual method for evaluating the fit of binary models." American Journal of Political Science 55.4 (2011): 991-1002.
See Also
See sp.categorical
for plotting separation plots for models with polytomous dependent variables.
Examples
# Create a separation plot for a simple logit model:
library(MASS)
set.seed(1)
Sigma <- matrix(c(1,0.78,0.78,1),2,2)
a<-(mvrnorm(n=500, rep(0, 2), Sigma))
a[,2][a[,2]>0.75]<-1
a[,2][a[,2]<=0.75]<-0
a[,1]<-a[,1]-min(a[,1])
a[,1]<-a[,1]/max(a[,1])
cor(a) # should be 0.55
model1<-glm(a[,2]~a[,1], family=binomial(link = "logit"))
library(Hmisc)
somers2(model1$fitted.values, model1$y)
separationplot(pred=model1$fitted.values, actual=model1$y, type="rect",
line=TRUE, show.expected=TRUE, heading="Example 1")