DProc: Semiparametric Bayesian ROC curve analysis using DPM of...

Description Usage Arguments Details Value Author(s) References See Also Examples

Description

This function performs a ROC curve analysis based on a posterior density sample for Dirichlet process mixture of normals models.

Usage

1
2
3
4
DProc(x,y,fitx=NULL,fity=NULL,ngrid=1000,priorx,priory,
      mcmcx,mcmcy,statex,statey,
      statusx,statusy,data=sys.frame(sys.parent()),
      na.action=na.fail) 

Arguments

x

a vector giving the diagnostic marker measurements for the healthy subjects.

y

a vector giving the diagnostic marker measurements for the diseased subjects.

fitx

a object containing the results returned by the DPdensity model fitting function for the diagnostic marker measurements in the healthy subjects (Optional).

fity

a object containing the results returned by the DPdensity model fitting function for the diagnostic marker measurements in the diseased subjects (Optional).

ngrid

number of grid points where the ROC curve is evaluated. The default value is 1000.

priorx

a list giving the prior information for the diagnostic marker measurements in the healthy subjects. See the DPdensity function for details. (it must be specified if fitx is missing).

priory

a list giving the prior information for the diagnostic marker measurements in the diseased subjects. See the DPdensity function for details. (it must be specified if fity is missing).

mcmcx

a list giving the MCMC parameters for the diagnostic marker measurements in the healthy subjects. See the DPdensity function for details. (it must be specified if fitx is missing).

mcmcy

a list giving the MCMC parameters for the diagnostic marker measurements in the diseased subjects. See the DPdensity function for details. (it must be specified if fity is missing).

statex

a list giving the current value of the parameters. See the DPdensity function for details. (it must be specified if fitx is missing).

statey

a list giving the current value of the parameters. See the DPdensity function for details. (it must be specified if fity is missing).

statusx

a logical variable indicating whether this run is new (TRUE) or the continuation of a previous analysis (FALSE). In the latter case the current value of the parameters must be specified in the object statex.

statusy

a logical variable indicating whether this run is new (TRUE) or the continuation of a previous analysis (FALSE). In the latter case the current value of the parameters must be specified in the object statex.

data

data frame.

na.action

a function that indicates what should happen when the data contain NAs. The default action (na.fail) causes DProc to print an error message and terminate if there are any incomplete observations.

Details

This generic function performs a ROC curve analysis based on Dirichlet process mixture of normals models for density estimation (Escobar and West, 1995):

xi | muxi, Sigmaxi ~ N(muxi,Sigmaxi), i=1,…,n

(muxi,Sigmaxi) | Gx ~ Gx

G_x | alphax, Gx0 ~ DP(alphax Gx0)

yj | muyj, Sigmayj ~ N(muyj,Sigmayj), j=1,…,m

(muyj,Sigmayj) | Gy ~ Gy

G_y | alphay, Gy0 ~ DP(alphay Gy0)

where, x and y is the vector containing the diagnostic marker measurements in the healthy and diseased subjects, respectively. We refer to the help of DPdensity functions for details regarding parametrization, prior specification, and implementation.

The survival and ROC curves are estimated by using a Monte Carlo approximation to the posterior means E(Gx | x) and E(Gy | y), which is based on MCMC samples from posterior predictive distribution for a future observation. The optimal cut-off point is based on the efficiency test, EFF = TP + TN, and is built on Cohen's kappa as defined in Kraemer (1992).

The ROC curve analysis can be performed from the data directly or from the outputs of the DPdensity function (see, example).

Value

An object of class DProc representing the ROC curve analysis based on DP mixture of normals models fit. Generic functions such as print, and plot have methods to show the results of the fit. The results include the estimated densities, cdf's, and ROC curve.

Author(s)

Alejandro Jara <atjara@uc.cl>

References

Escobar, M.D. and West, M. (1995) Bayesian Density Estimation and Inference Using Mixtures. Journal of the American Statistical Association, 90: 577-588.

Kraemer, H. C. (1992). Evaluating Medical Tests. Sage Publications.

See Also

DPdensity

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
## Not run: 
    ##############################################################
    # Fertility data example:
    # The following are Sperm Deformity Index (SDI) values from 
    # semen samples of men in an infertility study. They are 
    # divided into a "condition" present group defined as those 
    # whose partners achieved pregnancy and "condition" absent 
    # where there was no pregnancy.
    #
    # Aziz et al. (1996) Sperm deformity index: a reliable 
    # predictor of the outcome of fertilization in vitro. 
    # Fertility and Sterility, 66(6):1000-1008.
    #
    ##############################################################
    
     "pregnancy"<- c(165, 140, 154, 139, 134, 154, 120, 133, 
                     150, 146, 140, 114, 128, 131, 116, 128, 
                     122, 129, 145, 117, 140, 149, 116, 147, 
                     125, 149, 129, 157, 144, 123, 107, 129, 
                     152, 164, 134, 120, 148, 151, 149, 138, 
                     159, 169, 137, 151, 141, 145, 135, 135, 
                     153, 125, 159, 148, 142, 130, 111, 140, 
                     136, 142, 139, 137, 187, 154, 151, 149, 
                     148, 157, 159, 143, 124, 141, 114, 136, 
                     110, 129, 145, 132, 125, 149, 146, 138, 
                     151, 147, 154, 147, 158, 156, 156, 128, 
                     151, 138, 193, 131, 127, 129, 120, 159, 
                     147, 159, 156, 143, 149, 160, 126, 136, 
                     150, 136, 151, 140, 145, 140, 134, 140, 
                     138, 144, 140, 140)

     "nopregnancy"<-c(159, 136, 149, 156, 191, 169, 194, 182, 
                      163, 152, 145, 176, 122, 141, 172, 162, 
                      165, 184, 239, 178, 178, 164, 185, 154, 
                      164, 140, 207, 214, 165, 183, 218, 142, 
                      161, 168, 181, 162, 166, 150, 205, 163, 
                      166, 176)


    #########################################################
    # Estimating the ROC curve from the data
    #########################################################

    # Initial state

      statex <- NULL
      statey <- NULL

    # Prior information

      priorx <-list(alpha=10,m2=rep(0,1),
                    s2=diag(100000,1),
                    psiinv2=solve(diag(5,1)),
                    nu1=6,nu2=4,
                    tau1=1,tau2=100)

      priory <-list(alpha=20,m2=rep(0,1),
                    s2=diag(100000,1),
                    psiinv2=solve(diag(2,1)),
                    nu1=6,nu2=4,
                    tau1=1,tau2=100)

    # MCMC parameters

      nburn<-1000
      nsave<-2000
      nskip<-0
      ndisplay<-100

      mcmcx <- list(nburn=nburn,nsave=nsave,nskip=nskip,
                    ndisplay=ndisplay)
      mcmcy <- mcmcx

    # Estimating the ROC

      fit1<-DProc(x=pregnancy,y=nopregnancy,priorx=priorx,priory=priory,
                  mcmcx=mcmcx,mcmcy=mcmcy,statex=statex,statey=statey,
                  statusx=TRUE,statusy=TRUE)
      fit1
      plot(fit1)
      
      
    #########################################################
    # Estimating the ROC curve from DPdensity objects
    #########################################################
     
      fitx<-DPdensity(y=pregnancy,prior=priorx,mcmc=mcmcx,
                      state=statex,status=TRUE)
     
      fity<-DPdensity(y=nopregnancy,prior=priory,mcmc=mcmcy,
                      state=statey,status=TRUE)
 
    # Estimating the ROC

      fit2<-DProc(fitx=fitx,fity=fity)
      
      fit2
      plot(fit2)
      

## End(Not run)

DPpackage documentation built on May 1, 2019, 10:23 p.m.

Related to DProc in DPpackage...