FitBinormalRoc.Rd
Fit the binormal model-predicted ROC curve for a dataset. This is the R equivalent of ROCFIT or RSCORE
FitBinormalRoc(dataset, trt = 1, rdr = 1)
The returned value is a list with the following elements:
The mean of the diseased distribution; the non-diseased distribution is assumed to have zero mean
The standard deviation of the non-diseased distribution. The diseased distribution is assumed to have unit standard deviation
The binormal model cutoffs, zetas or thresholds
The binormal model fitted ROC-AUC
The standard deviation of AUC
The initial value of negative LL
The final value of negative LL
The chisquare goodness of fit results
The covariance matrix of the parameters
A ggplot2 object containing the
fitted operating characteristic along with the empirical operating
points. Use print()
to display the object
In the binormal model ratings (more accurately the latent decision variables) from diseased cases are sampled from \(N(a,1)\) while ratings for non-diseased cases are sampled from \(N(0,b^2)\). To avoid clutter error bars are only shown for the lowest and uppermost operating points. An FROC dataset is internally converted to a highest rating inferred ROC dataset. To many bins containing zero counts will cause the algorithm to fail; so be sure to bin the data appropriately to fewer bins, where each bin has at least one count.
Dorfman DD, Alf E (1969) Maximum-Likelihood Estimation of Parameters of Signal-Detection Theory and Determination of Confidence Intervals - Rating-Method Data, Journal of Mathematical Psychology 6, 487-496.
Grey D, Morgan B (1972) Some aspects of ROC curve-fitting: normal and logistic models. Journal of Mathematical Psychology 9, 128-139.
# \donttest{
## Test with an included ROC dataset
retFit <- FitBinormalRoc(dataset02);## print(retFit$fittedPlot)
## Test with an included FROC dataset; it needs to be binned
## as there are more than 5 discrete ratings levels
binned <- DfBinDataset(dataset05, desiredNumBins = 5, opChType = "ROC")
retFit <- FitBinormalRoc(binned);## print(retFit$fittedPlot)
## Test with single interior point data
fp <- c(rep(1,7), rep(2, 3))
tp <- c(rep(1,5), rep(2, 5))
dataset <- Df2RJafrocDataset(fp, tp)
retFit <- FitBinormalRoc(dataset);## print(retFit$fittedPlot)
## Test with two interior data points
fp <- c(rep(1,7), rep(2, 5), rep(3, 3))
tp <- c(rep(1,3), rep(2, 5), rep(3, 7))
dataset <- Df2RJafrocDataset(fp, tp)
retFit <- FitBinormalRoc(dataset);## print(retFit$fittedPlot)
## Test with TONY data for which chisqr can be calculated
ds <- DfFroc2Roc(dataset01)
retFit <- FitBinormalRoc(ds, 2, 3);## print(retFit$fittedPlot)
## retFit$ChisqrFitStats
## Test with included degenerate ROC data
retFit <- FitBinormalRoc(datasetDegenerate);## print(retFit$fittedPlot)
#> Warning: Data is degenerate; binormal model cannot fit it unambiguously: use CBM or RSM method
# }