\documentclass{beamer}

\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\usefonttheme{default} % serif
\title[CORvas]{CORvas}
\subtitle{Curvas R.O.C.}
\author[Carleos, Corral]{Carlos Carleos\and Norberto Corral}
\institute[U. Oviedo]{Departamento de Estadística\\
  e Investigación Operativa\\
  y de Didáctica de la Matemática\\
  Universidad de Oviedo}
\date[MANADINE]{Máster de Análisis de Datos\\
  para Inteligencia de Negocios}
\subject{Curvas C.O.R.}
\definecolor{verde}{RGB}{0,125,0}

\begin{document}

\begin{frame}
  \titlepage
\end{frame}

\begin{frame}{Partes}
  \tableofcontents
\end{frame}

\section{Teoría}
\subsection{Motivación, conceptos previos y definición}
\begin{frame}
  \frametitle{Origen}
  Receiver Operating Characteristic (ROC)
  \begin{itemize}
  \item Proviene de la teoría de detección de señales\\
    (discernir entre señal y ruido)
  \item Gráfico estadístico
  \item Ayuda a definir un umbral de separación entre dos grupos
    \begin{itemize}
    \item Positivos (los que verifican cierta condición)
    \item Negativos (los que no la cumplen)
    \end{itemize}

  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Ejemplo}
 Señal en radar: ¿ruido o \alert{aviones}?
  \begin{center}
    \includegraphics[width=0.7\textwidth]{bildoj/misiles.png}
    % generada con: a=rchisq(50,2);barplot(a,axes=FALSE,col=1+(sapply(a,function(x)rbinom(1,1,(x/max(a))^5))));abline(h=5,col=3,lwd=3);abline(h=4,col=4,lwd=3);
  \end{center}
Umbral de detección (decidir entre ``ruido'' o ``\alert{avión}'')
    \begin{itemize}
    \item \textcolor{verde}{umbral alto}\\ no se detectan objetos reales
      (Falsos Negativos)
    \item \textcolor{blue}{umbral bajo}\\ muchos avisos falsos
      (Falsos Positivos)
    \end{itemize}
\end{frame}

% \begin{frame}
%   \frametitle{Objetivo}
%   \begin{itemize}
%   \item umbral de detección
%     \begin{itemize}
%     \item \textcolor{verde}{umbral alto}\\ no se detectan objetos reales
%       (Falsos Negativos)
%     \item \textcolor{blue}{umbral bajo}\\ muchos avisos falsos
%       (Falsos Positivos)
%     \end{itemize}
%   \item Es conveniente buscar un valor que equilibre ambas opciones.
%   \item La curva ROC ayuda a buscar un umbral que haga poco frecuentes
%     ambos tipos de clasificaciones erróneas.
%   \end{itemize}
% \end{frame}

\begin{frame}
  \frametitle{Estado}
   El estado indica el grupo al que realmente pertenece cada individuo.
  \begin{itemize}
  \item Variable aleatoria $D$ que toma los valores
    \[ D = \left\{
        \begin{array}{rl}
          0 & \mbox{No verifica la condición (Negativo)}\\
          1 & \mbox{Sí verifica la condición (Positivo)}
        \end{array}
      \right. \]
  \item \(D \leadsto \mbox{Bernoulli}(p)\)
    \begin{eqnarray*}
    p &=& \Pr\,(D=1) = \Pr\,(\mbox{Positivo}) = \mbox{prevalencia}\\
    1-p &=& \Pr\,(D=0) = \Pr\,(\mbox{Negativo})
    \end{eqnarray*}
  \end{itemize}
\end{frame}
\begin{frame}
  \frametitle{Variable medida}
  \begin{itemize}
  \item Variable $X$: se usa para establecer el criterio de clasificación
    \begin{itemize}
    \item En los Positivos \(X = X_P = (X\mid D=1)\)
    \item En los Negativos \(X = X_N = (X\mid D=0)\)
    \end{itemize}
  \item Sus correspondientes funciones de distribución son
    \begin{itemize}
    \item \(F_P(x) = \Pr\,(X_P\leq x)\)
    \item \(F_N(x) = \Pr\,(X_N\leq x)\)
    \end{itemize}
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Variable criterio de clasificación} Cuando $X$ tiende a
  tomar valores mayores para los individuos positivos la clasificación
  queda determinada dado cierto umbral $c$:
    \[  Y = \left\{
        \begin{array}{ll}
          1 \mbox{ (Positivo)} & \mbox{si } X\geq c \\
          0 \mbox{ (Negativo)} & \mbox{si } X < c \\
        \end{array}
      \right. \]
\end{frame}

\begin{frame}
  \frametitle{Estimador de la prevalencia}
  \begin{itemize}
  \item Proporción muestral
    \[ p = \frac{\mbox{número de individuos Positivos de la muestra}}
      {\mbox{número de individuos de la muestra}} \]
  \item En algunos tipos de muestreo, como el caso-control,
    puede dar lugar a estimaciones muy sesgadas.
  \end{itemize}
\end{frame}
\begin{frame}
  \frametitle{Términos habituales}
  \begin{center}
  \begin{tabular}{cccc}
    VP & verdadero positivo &$\iff$& \(D=1,Y=1\)\\
    FP & falso positivo     &$\iff$& \(D=0,Y=1\)\\
    FN & falso negativo     &$\iff$& \(D=1,Y=0\)\\
    VN & verdadero negativo &$\iff$& \(D=0,Y=0\)\\
  \end{tabular}
\end{center}
\end{frame}
\begin{frame}
  \frametitle{Sensibilidad}
  \begin{itemize}
  \item Probabilidad de acertar al clasificar un individuo positivo
    \[ S = \Pr\,(X_P \ge c) = \Pr\,(Y=1\mid D=1)  \]
     \[  = \frac {\Pr\,(Y=1\cap D=1)}{\Pr\,(D=1)} \]
    \[ \hat{S} = \frac{\mbox{VP}}{\mbox{VP}+\mbox{FN}}
    = \mbox{fracción de verdaderos positivos} = \mbox{FVP} \]
    \[ 1-\hat{S} = \frac{\mbox{FN}}{\mbox{VP}+\mbox{FN}}
 = \mbox{fracción de falsos negativos} = \mbox{FFN} \]
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Especificidad}
  \begin{itemize}
  \item Probabilidad de acertar al clasificar un individuo negativo
    \[ E = \Pr\,(X_N < c) = \Pr\,(Y=0\mid D=0) \]
         \[ = \frac {\Pr\,(Y=0\cap D=0)}{\Pr\,(D=0)} \]
    \[ \hat{E} = \frac{\mbox{VN}}{\mbox{VN}+\mbox{FP}} = 
    \mbox{fracción de verdaderos negativos} = \mbox{FVN} \]
    \[ 1- \hat{E} = \frac{\mbox{FP}}{\mbox{VN}+\mbox{FP}} = 
    \mbox{fracción de falsos positivos} = \mbox{FFP} \]
  \end{itemize}
\end{frame}
\begin{frame}
  \frametitle{Fracciones (tabla resumen)}
  \begin{center}
    \begin{tabular}{c|cc}
      & $Y=1$ & $Y=0$\\\hline
      $D=1$&FVP&FFN\\
      $D=0$&FFP&FVN
    \end{tabular}
  \end{center}
\end{frame}

\begin{frame}
  \frametitle{Valores predictivos}
  \begin{itemize}
  \item Valor predictivo positivo (Probabilidad a posteriori)
    \begin{itemize}
    \item \(\Pr\,(D=1\mid Y=1)\)
    \item Se estima mediante \(\widehat{\mbox{VPP}}=
      \dfrac{\mbox{VP}}{\mbox{VP}+\mbox{FP}}\)
    \end{itemize}
    \vspace{0.3cm}
  \item Valor predictivo negativo (Probabilidad a posteriori)
    \begin{itemize}
    \item \(\Pr\,(D=0\mid Y=0)\)
    \item Se estima mediante \(\widehat{\mbox{VPN}}=
      \dfrac{\mbox{VN}}{\mbox{VN}+\mbox{FN}}\)
    \end{itemize}
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Definición de curva ROC}
  Objetivo: Seleccionar el umbral de temperatura
 \textit{c} que optimice la decisión.
    \begin{center}
    \includegraphics[width=0.7\textwidth]{bildoj/grafica3.png}
  \end{center} 
      \[  Y = \left\{
        \begin{array}{ll}
          1 \mbox{ (Positivo)} & \mbox{   temperatura} \geq c \\
          0 \mbox{ (Negativo)} & \mbox{  temperatura} < c \\
        \end{array}
      \right. \]
  \end{frame}
  
  \begin{frame}
  \frametitle{Definición de curva ROC}
  Objetivo: Elegir \textit{c} que tenga la \textcolor{red}{Sensibilidad}
  y la \textcolor{blue}{Especificidad} altas.
      \begin{center}
    \includegraphics[width=0.6\textwidth]{bildoj/grafica5.png}
  \end{center} 
      \[  Y = \left\{
        \begin{array}{ll}
          1 \mbox{ (Positivo)} & \mbox{   temperatura} \geq c \\
          0 \mbox{ (Negativo)} & \mbox{  temperatura} < c \\
        \end{array}
      \right. \]
  \end{frame}
  
  \begin{frame}
  \frametitle{Definición de curva ROC}
  \begin{itemize}
  \item Curva ROC \textbf{poblacional}
  \item Gráfica que representa, para cada valor del umbral $c$,
    la Sensibilidad frente a $1$ $-$ Especificidad, es decir,
    \begin{itemize}
    \item Abscisas =  $1$ $-$ Especificidad = $\Pr\,(\text{Error}\mid D=0)$
    \item Ordenadas = Sensibilidad= $\Pr\,(\text{Acierto}\mid D=1)$
     \end{itemize}
           $$t=1-E(x)=\Pr\,(Y(x)=1 \mid D=0)=1-F_N(x)$$
                $$x=F_N^{-1}(1-t) $$
      \item Suponiendo que $X$ toma, en general, valores mayores para
        los positivos,% y dado un umbral $x$, se tiene:
   $$\mbox{ROC}(t)=\Pr\,(\mbox{Acierto}\mid \mbox{Positivo})=S(x)=1-F_P(x)$$
    \[ \mbox{ROC}\,(t)=1-F_P\left(F_N^{-1}(1-t)\right)\qquad 0\leq t \leq 1\]
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Definición de curva ROC}

      \begin{center}
         CURVA ROC
       \end{center} 
   
   \begin{center}
    \includegraphics[width=0.7\textwidth]{bildoj/grafica6.png}
  \end{center} 

  \end{frame}


\subsection{Inferencia}
\begin{frame}
  \frametitle{Método no paramétrico
    para estimar la curva ROC}
  \begin{itemize}
  \item Usa la función de distribución empírica asociada a la muestra:
    \begin{eqnarray*}
      \hat F_P(x) 
      &=& \frac {\mbox{n}^{\,\underline{\mathsf o}}\,
          (x_i\leq x\mid \mbox{Positivos})}{n_P}\\
      \hat F_N(x) 
      &=& \frac {\mbox{n}^{\,\underline{\mathsf o}}\,
          (x_i\leq x\mid \mbox{Negativos})}{n_N}
    \end{eqnarray*}
  \item Se define la curva ROC empírica como
    \[ \widehat{\mbox{ROC}} (t) = 1-\hat F_P \left(\hat F_N^{-1}(1-t)\right) \]
  \item Este procedimiento da lugar a una curva ROC escalonada.
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Método no paramétrico
    para estimar la curva ROC}
  \begin{center}
    \includegraphics[height=.9\textheight]{bildoj/corva1.png}
  \end{center}
\end{frame}

\begin{frame}
  \frametitle{Método paramétrico para estimar la curva ROC}
  \begin{itemize}
  \item Modelo binormal
    \begin{itemize}
    \item $X_P \leadsto N(\mu_P,\sigma_P)$  Positivos
    \item $X_N \leadsto N(\mu_N,\sigma_N)$  Negativos
    \end{itemize}
  \item La curva ROC en el modelo binormal es
    $$
    \mbox{ROC}(t)=
    1-\Phi\left(\frac{\mu_N-\mu_P+\sigma_N\cdot\Phi^{-1}(1-t)}
      {\sigma_P}\right) \qquad   0\leq t\leq1
    $$
    $$
    =\Phi\left(\frac{\mu_P-\mu_N+\sigma_N\cdot\Phi^{-1}(t)}{\sigma_P}\right)=
    \Phi\left(\alpha+\beta\cdot\Phi^{-1}(t)\right)
    $$
      
    donde \(\alpha=\dfrac{\mu_P-\mu_N}{\sigma_P}\),
    \(\beta=\frac{\sigma_N}{\sigma_P}\),\\
    \(\Phi\) = función de distribución de la gausiana típica
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Método paramétrico para estimar la curva ROC}
  \begin{itemize}
  \item La curva ROC estimada es
    \[ \widehat{\mbox{ROC}}(t) =
      1-\Phi\left( \hat\alpha+\hat\beta \cdot\Phi^{-1}(t)\right)
      \qquad 0\leq t\leq1 \]
    donde
    \[\hat\alpha=\frac{\hat\mu_P-\hat\mu_N}{\hat\sigma_P}
      \qquad\hat\beta=\frac{\hat\sigma_N}{\hat\sigma_P} \]
  \item Es una curva suave y derivable en todos los puntos.
  \end{itemize}
\end{frame}
\begin{frame}
  \frametitle{Método paramétrico
    para estimar la curva ROC}
  \begin{center}
    \includegraphics[height=.8\textheight]{bildoj/corva2.png}
  \end{center}
\end{frame}

\begin{frame}
  \frametitle{Contrastes de hipótesis}
  \begin{itemize}
  \item En el caso concreto del modelo binormal
    \[ H_0:\quad \alpha_1=\alpha_2 \quad\cap\quad \beta_1=\beta_2 \]
    \[ H_1:\quad \alpha_1\not=\alpha_2 \quad\cup\quad \beta_1\not=\beta_2 \]
  \item El estadístico del contraste:
    \[\chi^2 = \frac{\hat \alpha_{12}^2\cdot\hat V(\hat \beta_{12}) +
        \hat \beta_{12}^2\cdot\hat V(\hat \alpha_{12})-2\cdot\hat \alpha_{12}
        \cdot\hat \beta_{12}
        \cdot\widehat{\mbox{cov}}(\hat \alpha_{12},\hat \beta_{12})}
      {\hat V(\hat \alpha_{12})\cdot\hat V(\hat \beta_{12})-\widehat{\mbox{cov}}
        (\hat \alpha_{12},\hat \beta_{12})} \]
    donde \(\hat \alpha_{12}=\hat \alpha_1-\hat \alpha_2\)
    y  \(\hat \beta_{12}=\hat \beta_1-\hat \beta_2\)
  \item Asintóticamente bajo $H_0$,
    \( \chi^2 \leadsto \chi^2_2 \)
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Precisión o exactitud de un clasificador}
  \begin{eqnarray*}
    \Pr\,(\mbox{acertar}) &=& \Pr\,(Y=1\mid D=1)\cdot\Pr\,(D=1)\\
                          &+& \Pr\,(Y=0\mid D=0)\cdot\Pr\,(D=0)\\
                          &=& S\cdot\Pr\,(D=1)+E\cdot\Pr\,(D=0)
  \end{eqnarray*}
  \begin{itemize}
  \item Estimador \( \widehat {\Pr}\,(\mbox{acertar}) = 
    \dfrac{\mbox{VP}+\mbox{VN}}n =
    \dfrac{\mbox{resultados acertados}}{\mbox{total de la muestra}}\)
    \vspace{0.2cm}
  \item Proporción de aciertos en la clasificación sin distinguir
    positivos de negativos
  \item Es necesario conocer o estimar la prevalencia $\Pr\,(D=1)$
  \end{itemize}
\end{frame}
\begin{frame}
  \frametitle{Índice de Youden}
  \begin{itemize}
  \item Es la diferencia entre las probabilidades de la respuesta positiva
    correcta y de la respuesta positiva incorrecta
    \begin{eqnarray*}
      J &=& \Pr\,(Y=1\mid D=1)-\Pr\,(Y=1\mid D=0)\\
      &=& \mbox{Especificidad}+\mbox{Sensibilidad}-1
    \end{eqnarray*}
  \item \(0\leq J\leq1\)
  \item \(J\approx 0 \Longleftrightarrow\) discrimina poco entre positivos y
    negativos
  \item \(J\approx 1 \Longleftrightarrow\) discrimina mucho entre positivos y
    negativos
  \item Su estimador se define como \(\hat J = \mbox{FVP} - \mbox{FFP} \)
  \end{itemize}
\end{frame}
\begin{frame}
  \frametitle{Índice de Youden}
  \begin{center}
    \includegraphics[height=0.9\textheight]{bildoj/youden.png}
  \end{center}
\end{frame}

\begin{frame}
  \frametitle{Área bajo la curva}
 El Área Bajo la Curva AUC (\textit{area under curve}) se define así:
    \[\mbox{AUC} = \int_0^1\,\mbox{ROC}(t)\,\text{d}t\]
   \begin{itemize}
    \item $ \mbox{AUC}= \Pr\,(X_P > X_N)$
    \item \(0.5\leq \mbox{AUC} \leq 1\)
    \item \(\mbox{AUC} \approx0.5 \Longleftrightarrow\) poca capacidad de
      discriminación
    \item \(\mbox{AUC} \approx1 \Longleftrightarrow\) separación casi total
    \item Se usa con mucha frecuencia para medir la capacidad de una
      variable para separar dos poblaciones
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Área bajo la curva}

  \[\mbox{AUC} = \Pr\,(X_P > X_N)\] 

    {\color{blue}Demostración}:
    
    $$\mbox{AUC} = \int_0^1\,\mbox{ROC}(t)\,\text{d}t = 
    \int_0^1\, \left[ 1-F_P\left(F_N^{-1}(1-t)\right) \right]\,\text{d}t $$
    
    Haciendo el cambio de variable $u=F_N^{-1}(1-t)$ se tiene 
    $$F_N(u)= 1-t \Longleftrightarrow t= 1-F_N(u)$$
    
    Por tanto $\text{d}t= - f_N(u)\, \text{d}u$ y la integral anterior es 
    
    $$\mbox{AUC}= \int_{-\infty}^{\infty}\, (1-F_P(u))\, f_N(u) \,\text{d}u =
    1 - \int_{-\infty}^{\infty}\, F_P(u)\, f_N(u) \,\text{d}u=$$
    $$= 1- \int_{-\infty}^{\infty} \left( 
    \int_{-\infty}^v \, f_P(v)\,\text{d}v \right) f_N(u) \, \text{d}u
    = 1- \Pr\,(X_P \le X_N)$$
    \end{frame}
    
\begin{frame}
  \frametitle{Métodos para calcular el AUC}
  \begin{itemize}
  \item Método no paramétrico (regla trapezoidal)
    \[ \widehat{\mbox{AUC}}=
    \sum_{t=1}^T\,\frac12\,(\mbox{FFP}_t-\mbox{FFP}_{t-1})\cdot
      (\mbox{FVP}_t+\mbox{FVP}_{t-1}) \]
  \item Método paramétrico (caso binormal)
    \begin{eqnarray*}
      \widehat{\mbox{AUC}}&=&\int_0^1\widehat{\mbox{ROC}}(t)\,\text{d}t=
                       \int_0^1\biggl(1-\Phi\bigl[\hat\alpha+\hat\beta
                       \cdot\Phi^{-1}(1-t)\bigr]\biggr)\text{d}t\\
                   &=&\Phi\left(\frac{\hat\alpha}{\sqrt{1+\hat\beta^2}}\right) =
                       \Phi \left(\frac{\hat\mu_N-\hat\mu_P}
                       {\sqrt{\hat\sigma_N^2+\hat\sigma_P^2}}\right)
    \end{eqnarray*}
  \end{itemize}
\end{frame}
\begin{frame}
  \frametitle{Comparación de pruebas}
  \begin{itemize}
  \item Contraste
    \[ H_0:\quad \mbox{AUC}_1=\mbox{AUC}_2 \]
    \[ H_1:\quad \mbox{AUC}_1\not=\mbox{AUC}_2\]
  \item Estadístico
    \[z=\frac{\widehat{\mbox{AUC}}_1-\widehat{\mbox{AUC}}_2}
      {\mbox{ET}\,(\widehat{\mbox{AUC}}_1-\widehat{\mbox{AUC}}_2)}\]
  \end{itemize}
\end{frame}
\begin{frame}
  \frametitle{Aleatoriedad de la prueba}
  \begin{itemize}
  \item Contraste
    \[ H_0:\quad \mbox{AUC}=0.5 \]
    \[ H_1:\quad \mbox{AUC}\not=0.5\]
  \item Estadístico
    \[z=\frac{\widehat{\mbox{AUC}}-0.5}
      {\mbox{ET}\,(\widehat{\mbox{AUC}})}\]
  \end{itemize}
\end{frame}

\subsection{Elección del umbral}
\begin{frame}
  \frametitle{Punto de corte: método 1}
  \begin{itemize}
  \item Usar el umbral correspondiente al índice de Youden
  \begin{center}
    \includegraphics[height=0.7\textheight]{bildoj/youden.png}
  \end{center}
  \end{itemize}
\end{frame}
\begin{frame}
  \frametitle{Punto de corte: método 2}
  \begin{itemize}
  \item Buscar el punto $(1{-}E;S)$ sobre la curva ROC más
    cercano al punto $(0;1)$
  \item La pendiente sobre ese punto vale
    \[m=\frac{p\cdot\Pr\,(\mbox{falsos positivos})}{(1-p)\cdot
        \Pr\,(\mbox{falsos negativos})}\]
    siendo $p$ la prevalencia del evento en la población
  \end{itemize}
\end{frame}
\begin{frame}
  \frametitle{Punto de corte: método 3}
  \begin{itemize}
  \item En este caso se tienen en cuenta los costes de los dos tipos de error
  \item Buscar el punto $(1{-}E;S)$ sobre la curva ROC más
    cercano al que minimiza dichos costes
  \item La pendiente sobre ese punto vale
    \[m=\frac{\mbox{costes falsos positivos}\cdot(1-p)}
      {\mbox{costes falsos negativos}\cdot p}\]
    siendo $p$ la prevalencia del evento en la población
  \end{itemize}
\end{frame}
\section{Práctica en R}
\begin{frame}[fragile]
  \frametitle{Implementación ingenua}
\begin{verbatim}
nN <- nP <- 50                           #tamaños
N <- rnorm (nN, 0, 1)                    #negativos
P <- rnorm (nP, 1, 1)                    #positivos
x <- union (N, P)                        #todos
umbral <- c (-Inf, x[-1]-diff(x)/2, Inf) #cortes posibles
s <- sapply (umbral,                     #sensibilidad
              function (c) {
                  vp <- sum (P >= c)
                  vp / nP })
\end{verbatim}
\end{frame}
\begin{frame}[fragile]
  \frametitle{Implementación ingenua}
\begin{verbatim}
## 1 - especificidad

e <- 1 - sapply (umbral,            
                 function (c) {
                   vn <- sum (N < c)
                   vn / nN })

o <- order (e, s)

plot (e[o], s[o], type="s")
\end{verbatim}
\end{frame}
\begin{frame}[fragile]
  \frametitle{Implementación mediante «ecdf»}
\begin{verbatim}
nN <- nP <- 50                                #tamaños
N <- rnorm (nN, 0, 1)                         #negativos
P <- rnorm (nP, 1, 1)                         #positivos
C <- 1 - ecdf (P) (sort (N, decreasing=TRUE)) #CORva
plot (C, type="s")
\end{verbatim}
\end{frame}
\begin{frame}[fragile]
  \frametitle{Biblioteca «pROC»}
\begin{verbatim}
nN <- nP <- 50                               #tamaños
N <- rnorm (nN, 0, 1)                        #negativos
P <- rnorm (nP, 1, 1)                        #positivos
install.packages ("pROC")
library ("pROC")
C <- roc (controls=N, cases=P)               #CORva
plot (C)
coords(C,"best")    #mejor umbral según Youden (método 1)
coords(C,"best",best.method="closest.topleft") #método 2
## para método 3, opción «best.weights»
auc (C)
ci (C)              #intervalo de confianza
C1 <- roc (rbinom(80,1,0.7), rnorm(80))
roc.test (C, C1)    #para comparar dos CORvas
\end{verbatim}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Biblioteca «nsROC»}
\begin{verbatim}
nN <- nP <- 50                   #tamaños
N <- rnorm (nN, 0, 1)            #negativos
P <- rnorm (nP, 1, 1)            #positivos
install.packages ("nsROC")        
library (nsROC)
X <- c (N, P)                    #muestra completa
D <- c (rep(0,nN), rep(1,nP))    #0 = control, 1 = caso
G <- gROC (X, D, plot.roc=TRUE, plot.density=TRUE)
G$auc
G$roc
G$side                           #unilateral por omisión
\end{verbatim}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Biblioteca «nsROC»: dos umbrales}
\begin{verbatim}
nN <- nP <- 50                   #tamaños
N <- rnorm (nN, 0, 1)            #negativos
P <- rnorm (nP, 0, 5)            #positivos
X <- c (N, P)                    #muestra completa
D <- c (rep(0,nN), rep(1,nP))    #0 = control, 1 = caso

G <- gROC (X, D, plot.roc=TRUE, plot.density=TRUE, 
           side="both")
G                                #explicación y AUC


\end{verbatim}
\end{frame}

\end{document}
