false_and_its_rate_creator: False Alarm Creator for both cases of MRMC and srsc

Description Usage Arguments Details Value Examples

View source: R/validation_MRMC_Create_dataList_MRMC_Hit_from_rate_etc.R

Description

From threshold, mean and S.D., data of False Alarm are created.

Usage

1
2
3
4
5
6
7
false_and_its_rate_creator(
  z.truth = BayesianFROC::z_truth,
  NI = 333,
  NL = 111,
  ModifiedPoisson = FALSE,
  seed = 12345
)

Arguments

z.truth

Vector of dimension = C represents the thresholds of bi-normal assumption.

NI

The number of images.

NL

The number of lesions.

ModifiedPoisson

Logical, that is TRUE or FALSE.

If ModifiedPoisson = TRUE, then Poisson rate of false alarm is calculated per lesion, and a 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 a 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

seed

The seed for creating a collection of the number of false alarms synthesized by the Poisson distributions using the specified seed.

Details

From threshold, mean and S.D. of the latent Gaussian noise distribution in the bi-normal assumption, data of False Alarm are created. For the process of this drawing false alarm samples, its rate are also created. So, in the return values of the function, the rates for each confidence level is also attached.

Value

A list of vectors, indicating a true parameter and a sample.

A vector indicating a true parameter: False rate from thresholds.

A vector indicating a sample, more precisely, The truth parameter of false alarm rate calculated by true thresholds z and also, one-time drawn samples of false alarms from the calculated false rates.

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
 ## Not run: 
false.rate <- false_and_its_rate_creator()



#========================================================================================
#  In SBC, Poisson rate = 0,..so,... i have to investigate.
#========================================================================================

  set.seed( 1234 )

  dz <-runif(3,    # sample size
             0.01, # lower bound
             1     # upper bound
             )


  w  <- rnorm(1,
              0,
              1
              )

  z <- z_from_dz(w,dz  )


 false_and_its_rate_creator(z )



#========================================================================================
#        Poisson rate  is OK
#========================================================================================

  set.seed( 1234 )

  dz <-runif(3,    # sample size
             0.01, # lower bound
             1     # upper bound
             )


  w  <- rnorm(1,
              0,
              10 # It cause the  poisson rate become small
              )

  z <- z_from_dz(w,dz  )


 false_and_its_rate_creator(z )



#========================================================================================
#  In SBC, Poisson rate is small
#========================================================================================

  set.seed( 1234 )

  dz <-runif(3,    # sample size
             0.01, # lower bound
             1     # upper bound
             )


  w  <- rnorm(1,
              0,
              10 # It cause the  poisson rate become small
              )

  z <- z_from_dz(w,dz  )


 false_and_its_rate_creator(z )

#========================================================================================
#               Poisson rate = 0
#========================================================================================

  set.seed( 1234 )

  dz <-runif(3,    # sample size
             0.01, # lower bound
             10 # It cause the  poisson rate become exactly 0   # upper bound
             )


  w  <- rnorm(1,
              0,
              1
              )

  z <- z_from_dz(w,dz  )


 false_and_its_rate_creator(z )
#'
## End(Not run)

BayesianFROC documentation built on Jan. 23, 2022, 9:06 a.m.