# plot_FPF_TPF_via_dataframe_with_split_factor: Scatter Plot of FPFs and TPFs via Splitting Factor In BayesianFROC: FROC Analysis by Bayesian Approaches

## Description

Make a factor vector by which we plot FPF and TPF.

## Usage

 1 2 3 4 5 6 7 plot_FPF_TPF_via_dataframe_with_split_factor( dataList.MRMC, ModifiedPoisson = FALSE, colored_by_modality = TRUE, numbered_by_modality = TRUE, cex = 1.3 ) 

## Arguments

 dataList.MRMC A list, indicating FROC data of MRMC. See also dataList which is a variable of the function fit_Bayesian_FROC(). ModifiedPoisson Logical, that is TRUE or FALSE. If ModifiedPoisson = TRUE, then Poisson rate of false alarm is calculated per lesion, and model is fitted so that the FROC curve is an expected curve of points consisting of the pairs of TPF per lesion and FPF per lesion. Similarly, If ModifiedPoisson = TRUE, then Poisson rate of false alarm is calculated per image, and model is fitted so that the FROC curve is an expected curve of points consisting of the pair of TPF per lesion and FPF per image. For more details, see the author's paper in which I explained per image and per lesion. (for details of models, see vignettes , now, it is omiited from this package, because the size of vignettes are large.) If ModifiedPoisson = TRUE, then the False Positive Fraction (FPF) is defined as follows (F_c denotes the number of false alarms with confidence level c ) \frac{F_1+F_2+F_3+F_4+F_5}{N_L}, \frac{F_2+F_3+F_4+F_5}{N_L}, \frac{F_3+F_4+F_5}{N_L}, \frac{F_4+F_5}{N_L}, \frac{F_5}{N_L}, where N_L is a number of lesions (signal). To emphasize its denominator N_L, we also call it the False Positive Fraction (FPF) per lesion. On the other hand, if ModifiedPoisson = FALSE (Default), then False Positive Fraction (FPF) is given by \frac{F_1+F_2+F_3+F_4+F_5}{N_I}, \frac{F_2+F_3+F_4+F_5}{N_I}, \frac{F_3+F_4+F_5}{N_I}, \frac{F_4+F_5}{N_I}, \frac{F_5}{N_I}, where N_I is the number of images (trial). To emphasize its denominator N_I, we also call it the False Positive Fraction (FPF) per image. The model is fitted so that the estimated FROC curve can be ragraded as the expected pairs of FPF per image and TPF per lesion (ModifiedPoisson = FALSE ) or as the expected pairs of FPF per image and TPF per lesion (ModifiedPoisson = TRUE) If ModifiedPoisson = TRUE, then FROC curve means the expected pair of FPF per lesion and TPF. On the other hand, if ModifiedPoisson = FALSE, then FROC curve means the expected pair of FPF per image and TPF. So,data of FPF and TPF are changed thus, a fitted model is also changed whether ModifiedPoisson = TRUE or FALSE. In traditional FROC analysis, it uses only per images (trial). Since we can divide one image into two images or more images, number of trial is not important. And more important is per signal. So, the author also developed FROC theory to consider FROC analysis under per signal. One can see that the FROC curve is rigid with respect to change of a number of images, so, it does not matter whether ModifiedPoisson = TRUE or FALSE. This rigidity of curves means that the number of images is redundant parameter for the FROC trial and thus the author try to exclude it. Revised 2019 Dec 8 Revised 2019 Nov 25 Revised 2019 August 28 colored_by_modality A logical, if TRUE, then the color in the scatter plot means modality ID. If not, then the each color in the scatter plot indicates reader ID. numbered_by_modality A logical, if TRUE, then the number in the scatter plot means modality ID. If not, then the each number in the scatter plot indicates reader ID. cex A positive real number, specifying the size of dots in the resulting plot.

## Value

A dataframe, which is added TPF and FPF, etc into dataList.MRMC.

Added Vectors as Contents of the Data-frame

CFP

A vector of Cumulative False Positive

CTP

A vector of Cumulative True Positive

TPF

A vector of True Positive Fraction

FPF

A vector of False Positive Fraction per image or per lesion according to the logical variable ModifiedPoisson

factor

What this means is trivial.

Vectors as Contents of the Data-frame dataList.MRMC

c

A vector of positive integers, representing the confidence level. This vector must be made by rep(rep(C:1), M*Q)

m

A vector of positive integers, representing the modality ID vector.

q

A vector of positive integers, representing the reader ID vector.

h

A vector of non-negative integers, representing the number of hits.

f

A vector of non-negative integers, representing the number of false alarm.

## Examples

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 #======================================================================================== # The 1st example #======================================================================================== v <- v_truth_creator_for_many_readers_MRMC_data(M=1,Q=37) m <- mu_truth_creator_for_many_readers_MRMC_data(M=1,Q=37) d <- create_dataList_MRMC(mu.truth = m,v.truth = v) plot_FPF_TPF_via_dataframe_with_split_factor(d, colored_by_modality = TRUE, numbered_by_modality = TRUE) plot_FPF_TPF_via_dataframe_with_split_factor(d, colored_by_modality = FALSE, numbered_by_modality = TRUE) plot_FPF_TPF_via_dataframe_with_split_factor(d, colored_by_modality = TRUE, numbered_by_modality = FALSE) plot_FPF_TPF_via_dataframe_with_split_factor(d, colored_by_modality = FALSE, numbered_by_modality = FALSE) #======================================================================================== # The 2-nd example #======================================================================================== # v <- v_truth_creator_for_many_readers_MRMC_data(M=2,Q=37) m <- mu_truth_creator_for_many_readers_MRMC_data(M=2,Q=37) d <- create_dataList_MRMC(mu.truth = m,v.truth = v) plot_FPF_TPF_via_dataframe_with_split_factor(d, colored_by_modality = TRUE, numbered_by_modality = TRUE) plot_FPF_TPF_via_dataframe_with_split_factor(d, colored_by_modality = FALSE, numbered_by_modality = TRUE) plot_FPF_TPF_via_dataframe_with_split_factor(d, colored_by_modality = TRUE, numbered_by_modality = FALSE) plot_FPF_TPF_via_dataframe_with_split_factor(d, colored_by_modality = FALSE, numbered_by_modality = FALSE) #======================================================================================== # The 3rd example #======================================================================================== v <- v_truth_creator_for_many_readers_MRMC_data(M=3,Q=7) m <- mu_truth_creator_for_many_readers_MRMC_data(M=3,Q=7) d <- create_dataList_MRMC(mu.truth = m,v.truth = v) plot_FPF_TPF_via_dataframe_with_split_factor(d, colored_by_modality = TRUE, numbered_by_modality = TRUE) plot_FPF_TPF_via_dataframe_with_split_factor(d, colored_by_modality = FALSE, numbered_by_modality = TRUE) plot_FPF_TPF_via_dataframe_with_split_factor(d, colored_by_modality = TRUE, numbered_by_modality = FALSE) plot_FPF_TPF_via_dataframe_with_split_factor(d, colored_by_modality = FALSE, numbered_by_modality = FALSE) #======================================================================================== # The 4th example #======================================================================================== plot_FPF_TPF_via_dataframe_with_split_factor( dataList.MRMC = dd, colored_by_modality = TRUE, numbered_by_modality = TRUE) #======================================================================================== # The 5th example #======================================================================================== ## Not run: a <- plot_FPF_TPF_via_dataframe_with_split_factor(dd) p <- ggplot2::ggplot(a, ggplot2::aes(FPF, TPF, group = factor(factor), colour = factor(m)) ) + ggplot2::geom_line(size = 1.4) print(p) #======================================================================================== # The 6th example #======================================================================================== a <- plot_FPF_TPF_via_dataframe_with_split_factor(dd,cex = 1.8) #======================================================================================== # The 7th example #======================================================================================== # Plot empirical FROC curve whose modality is specified as following manner a <- plot_FPF_TPF_via_dataframe_with_split_factor(dd) aa <- a[a$m == c(2,3), ] p <- ggplot2::ggplot(aa, ggplot2::aes(FPF, TPF, group = factor(factor), colour = factor(m)) ) + ggplot2::geom_line(size = 1.4) print(p) # Plot empirical FROC curve whose modality is specified as following manner a <- plot_FPF_TPF_via_dataframe_with_split_factor(dd) aa <- a[a$m %in% c(4,3), ] p <- ggplot2::ggplot(aa, ggplot2::aes(FPF, TPF, group = factor(factor), colour = factor(m)) ) + ggplot2::geom_line(size = 1.4) print(p) # Plot empirical FROC curve whose modality is specified as following manner a <- plot_FPF_TPF_via_dataframe_with_split_factor(dd) aa <- a[a\$m %in% c(3,4), ] p <- ggplot2::ggplot(aa, ggplot2::aes(FPF, TPF, group = factor(factor), colour = factor(m)) ) + ggplot2::geom_line(size = 1.4) print(p) # Close_all_graphic_devices() ## End(Not run)#dontrun 

BayesianFROC documentation built on Jan. 13, 2021, 5:22 a.m.