conmtrx.ado
May 9, 2018 ยท View on GitHub
Produces confusion matrix and related statistics.
This code is an extension of: https://ideas.repec.org/c/boc/bocode/s458127.html
Also inspired by https://artax.karlin.mff.cuni.cz/r-help/library/caret/html/confusionMatrix.html
Another related resource https://www.statalist.org/forums/forum/general-stata-discussion/general/1371221-n-by-k-contingency-table-for-two-categorical-variable-sensitivity-specificity-ppv-npv-accuracy-calculations
See Also
The conmtrx package is a wrapper for classtabi. Another package, conrpt provides more flexibility and additional options.
Installation
Use the following to install from command line:
net install conmtrx, from(https://raw.githubusercontent.com/adamrossnelson/conmtrx/master)
Use the following to check for installation (which command works to check for any package). Use ado command to list all installed packages.
which classtabi3
which conmtrx
Usage
conmtrx rowvar(binary) colvar(binary)[, ROWlabel(string) COLlabel(string) VARlab(yes)]
Where rowvar is generally the predicted outcome while colvar is generally the actual outcome. Optionally conmtrx accepts a ROWlabel(string) and COLlabel(string).
Alternatively, conmtrx also accepts a VARlab(yes) option which will instruct conmtrx to use rowvar(binary) and colvar(binary) value lables.
If row or column title specified, and VARlab(yes) not specified, the defaults are Classification Test Result and Reference Classification.
Previously with `classtabi' the syntax was:
classtabi #a #b #c #d [, rowlabel(string) collabel(string)]
Where each of the four figures (#a #b #c #d) represente one of the four probabilities.
| Negatives | Positives |
|---|---|
| #a -- disease=0, test=0 (true negative) | #b -- disease=0, test=1 (false positive) |
| #c -- disease=1, test=0 (false negative) | #d -- disease=1, test=1 (true positive) |
Also requires
Erlier versions required distinct which can be installed with ssc install distinct and classtabi also available using ssc install classtabi.
Revised versions check for binary status using capture confirm capture confirm numeric variable varname and capture assert varname == 1 | varname == 0.
Demonstration output
. conmtrx prUnd isUnd
Specified variables binary. Producing confusion matrix.
+----------------+
| Key |
|----------------|
| frequency |
| row percentage |
+----------------+
Predicted |
Under | Actual Under
| 0 1 | Total
-----------+----------------------+----------
0 | 36 60 | 96
| 37.50 62.50 | 100.00
-----------+----------------------+----------
1 | 2 2 | 4
| 50.00 50.00 | 100.00
-----------+----------------------+----------
Total | 38 62 | 100
| 38.00 62.00 | 100.00
| Actual
Predicted | 0 1 | Total
-----------+----------------------+----------
0 | 36 60 | 96
1 | 2 2 | 4
-----------+----------------------+----------
Total | 38 62 | 100
-------------------------------------------------
Sensitivity D/(C+D) 50.00%
Specificity A/(A+B) 37.50%
Positive predictive value D/(B+D) 3.23%
Negative predictive value A/(A+C) 94.74%
-------------------------------------------------
False positive rate B/(A+B) 62.50%
False negative rate C/(C+D) 50.00%
-------------------------------------------------
Correctly classified A+C/(A+B+C+D) 38.00%
-------------------------------------------------
Effect strength for sensitivity -12.50%
-------------------------------------------------
ROC area 0.4375
-------------------------------------------------
- conmtrx - Command was a succss.
Known limitation
Does not support if and in options/statements.