By the follwoing R script, we can get the GUI.
install.packages(“BayesianFROC”);
library(BayesianFROC);
fit_GUI_Shiny()
GUI.
By enter any data in the red frame in the figure, we can fit a model to the data.
Confidence |
number of Hits (TP) |
number of False alarms (FP) |
3 = definitely present |
H_{3} |
F_{3} |
2 = probably present |
H_{2} |
F_{2} |
1 = questionable |
H_{1} |
F_{1} |
where, H_{c},F_c \in \mathbb{N}. Number of images N_I . Number of lesions N_L.
For this data, I defined the following model.
H_3 \sim \text{Binomial}(p_3(\theta), N_L),
H_2 \sim \text{Binomial}( \frac{p_2(\theta)}{1-p_3(\theta)}, N_L-H_3),
H_1 \sim \text{Binomial}( \frac{p_1(\theta)}{1-p_3(\theta)-p_2(\theta)}, N_L-H_3-H_2),
F_3 \sim \text{Poisson}(q_3(\theta)N_I),
F_2 \sim \text{Poisson}(q_2(\theta)N_I),
F_1 \sim \text{Poisson}(q_1(\theta)N_I),
where,
p_c(\theta) := \int_{\theta_c}^{\theta_{c+1}}P(x|\theta')dx,
q_c(\theta) := \int_{\theta_c}^{\theta_{c+1}}Q(x|\theta'')dx,
and P(x|\theta') denotes a probability density function and Q(x|\theta'') is a positive function.
For example, we use
P (x|\theta') =\text{Gaussian}_{ }(x|\mu,\sigma) = \frac{1}{\sqrt{2\pi \sigma}} \exp -\frac{(x-\mu)^2}{2\sigma},
Q (x|\theta'') = Q (x) = \frac{d \log \Phi(x)}{dx},
where \Phi denotes the cumulative distribution function of the standard normal distribution and in this case \theta' = (\mu,\sigma) and \theta'' is nothing. Hence model parameter is (\theta_1, \theta_2, \theta_3;\mu, \sigma).
I implemented the following non-informative prior.
\theta_1, \mu \sim \text{Normal}(0,111),
\sigma, d\theta_c=\theta_{c+1}-\theta_{c} \sim \text{Uniform}(0,111), for c=1,2.
This prior has good perspective, because the model can fit to various datasets.
However, the prior dose not generate suitable model parameters. For example, I used the Poisson and Binomial distributions in my model, whose rate parameter is generated by the prior but it is sometimes zero. To generate suitable model parameter from a prior, I should find the prior, but now I have not succeeded, yet.
For example,
I want to get the prior such that the generated model paraeter \theta has the following properties
p_3 (\theta) > \frac{p_2(\theta)}{1-p_3(\theta)} > \frac{p_1(\theta)}{1-p_3(\theta)-p_2(\theta)},
which means that the reader find more lesions if the confidence level is larger.
Similarly,
q_1(\theta) > q_2(\theta) >q_3(\theta)
which means that the reader fails more if the confidence level is smaller.
My model is bad SBC rank statistics with respect to the above prior. I guess this reason is that the prior dose not generate suitable model parameters.
If someone has any idea, please let me know.