This function calculate the performance, based on Bayes theorem, of a clinical test.
X is the following 2x2 matrix.
ALPHA - significance level for confidence intervals (default = 0.05).
- Sensibility and Specificity
- False positive and negative proportions
- False discovery and omission rates
- Youden's Index and Number Needed to Diagnose (NDD)
- Positive and Negative predictivity
- Positive and Negative Likelihood Ratio
- Predictive Summary Index (PSI) and Number Needed to Screen (NNS)
- Test Accuracy
- Mis-classification Rate
- Test bias
- Error odds ratio
- Diagnostic odds ratio
- Discriminant Power
Moreover, the function draws two plots (as you can see in the screenshot)
this file is an open code: you can modify it as you want providing my aknowledgment
Hi.. can we used this code for multi class problem?
Noam, the message you get is from a previous version of roc.m routine and not from partest.m. When you have a test, using roc curve analysis you can choose a cut-off point (the point above/below which the test is positive) to obtain the max sensitivity or the max specificity or the max cost effective or the max efficiency or the max positive predictive value...and this choosing depends on your specific problem. Actually, I erased partest invoking from roc to simplify the code.
Anyway, Partest asks whether you want to input the true prevalence of a disease or not. Partest uses the Bayes'es Theorem and the true prevalence is needed to correctly apply it
Thanks for the code.
I looked at the source and didn't find an explanation for the "Choose cut-off to compute performance" message. What does it mean? and what values are relevant?
And one more question: I run partest within a loop and now I need to press enter every time the cut-off message appears. How can set it to run for the same value everytime it runs?
This is not very clear... Precisely what did you mean? If you open an m.file you always have a text version. To have the plots (did you mean plot when you wrote diagram?) you must run partest on MatLab
When tying to open the m file, only the textversion comes up. Not the useful diagram. Solution?
You are right, but fp1 and fp2 were swapped also into the routine. I have just uploaded a new version of partest. Thank you
Isn't 1-spec equal to false positive rate? I think this is backward on the output partest and roseplot figures (red should be false positive, and yellow should be false negative). In the code it seems like these values (fp1 and fp2) are used correctly throughout and just mis-labelled on the output graphs. Would you mind confirming this? As always, thanks for the excellent code. The comments in this one are really great and I learned a ton going through it.
Exhaustively commented, so you get not only the resulting numbers, but also the exact description of what they mean, if you read the source.
in the roseplot subfunction I wrote axes instead of axis
minor improvement in roseplot
change in description
more parameters added
I synchronized both plots
in plots and results false discovery rates were inverted. The bug is fixed
There was a problem with the previous upload: the m-file was missing
I added the F-measure and the roseplot
Changes in description
Help section was updated; computations are more efficient and output is more rational. Statistics are fully detailed.
Added new 95% confidence intervals for positive and negative predictive values
confidence interval for sensibility and specificity added
Mistake correction in discrimination power formula (Thank you Prof. Hans Winkler!)
Added a plot of the main results
Changes in help section
minor bugs correction
Added new outputs
Youden's index and Discriminant Power added
Error handling improvements
Fix bug in the first line
fix in errors messages
Improvement in the first line
Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.