# Draw_a_simulated_data_set_and_Draw_posterior_samples: Draw a dataset and MCMC samples In BayesianFROC: FROC Analysis by Bayesian Approaches

## Description

Draw a dataset and MCMC samples.

1. draw a model parameter from prior distribution,

2. draw a dataset from the model with the parameter drawn in step 1,

3. draw a collection of posterior samples for the dataset drawn in step 2.

## Usage

  1 2 3 4 5 6 7 8 9 10 11 12 13 Draw_a_simulated_data_set_and_Draw_posterior_samples( sd = 5, C = 5, seed.for.drawing.a.prior.sample = 1111, fun = stats::var, NI = 259, NL = 259, initial.seed.for.drawing.a.data = 1234, ModifiedPoisson = FALSE, PreciseLogLikelihood = TRUE, ite = 1111, DrawCurve = FALSE ) 

## Arguments

 sd Standard Deviation of priors C No. of Confidence levels seed.for.drawing.a.prior.sample seed fun An one dimensional real valued function defined on the parameter space. This is used in the definition of the rank statistics. Generally speaking, the element of the parameter space is a vector, so the function should be defined on vectors. In my model parameter is mean, standard deviation, C thresholds of the latent Gaussian, so this function should be defined on the C+2 dimensional Euclidean space. NI No. of images NL No. of Lesions initial.seed.for.drawing.a.data seed 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 PreciseLogLikelihood Logical, that is TRUE or FALSE. If PreciseLogLikelihood = TRUE(default), then Stan calculates the precise log likelihood with target formulation. If PreciseLogLikelihood = FALSE, then Stan calculates the log likelihood by dropping the constant terms in the likelihood function. In past, I distinct the stan file, one is target formulation and the another is not. But non-target formulation cause some Jacobian warning, thus I made all stanfile with target formulation when I uploaded to CRAN. Thus this variable is now meaningless. ite A variable to be passed to the function rstan::sampling() of rstan in which it is named iter. A positive integer representing the number of samples synthesized by Hamiltonian Monte Carlo method, and, Default = 10000. DrawCurve Logical: TRUE of FALSE. Whether the curve is to be drawn. TRUE or FALSE. If you want to draw the FROC and AFROC curves, then you set DrawCurve =TRUE, if not then DrawCurve =FALSE. The reason why the author make this variable DrawCurve is that it takes long time in MRMC case to draw curves, and thus Default value is FALSE in the case of MRMC data.

## Value

Draw.a.prior.sample The Return value of Draw_a_prior_sample

A dataList and an object of the stanfit S4 class with respect to the dataList

  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 ## Not run: # Draw a curve for various seeds and various number of confidence levels. # Changing the seed, we can draw a parameter from priors and using this sample, # we can draw the datasets from our model whose parameters are # the priors samples. # 1. draw a model parameter from prior distribution, # 2. draw a dataset from the model with the parameter drawn in step 1, # 3. draw a collection of posterior samples for the dataset drawn in step 2. Draw_a_simulated_data_set_and_Draw_posterior_samples( seed.for.drawing.a.prior.sample = 1234, C=8) Draw_a_simulated_data_set_and_Draw_posterior_samples( seed.for.drawing.a.prior.sample = 12345, C=7) Draw_a_simulated_data_set_and_Draw_posterior_samples( seed.for.drawing.a.prior.sample = 123456, C=6) Draw_a_simulated_data_set_and_Draw_posterior_samples( seed.for.drawing.a.prior.sample = 1234567, C=5) ## End(Not run)# dottest