# Generate a Separation Plot

### Description

This is the core function for the generation of a separation plot.

### Usage

1 2 3 4 5 | ```
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 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 |

### Note

This function is still being developed. Please contact Brian Greenhill with any questions or comments.

### Author(s)

Brian Greenhill <brian.d.greenhill@dartmouth.edu>

### References

Contact Brian Greenhill <brian.d.greenhill@dartmouth.edu> for a copy of the paper by Greenhill, Ward and Sacks that explains the concept of the separation plot.

### See Also

See `sp.categorical`

for plotting separation plots for models with polytomous dependent variables.

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | ```
# 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")
``` |