Los datos

Durante un ensayo clínico de una nueva prueba diagnística se ha aplicado dicho test a 1000 individuos, 500 sanos (S) y 500 enfermos (E), y se ha medido si cada uno de ellos dio positivo (+) o negativo (-).

##   test estado
## 1    -      S
## 2    -      S
## 3    -      E
## 4    +      E
## 5    -      S
## 6    -      S
## 7    +      E
## 8    +      E

Ejercicio 1

Descarga de los datos.

  • Selecciona la carpeta de trabajo adecuada para esta sesión con R.
  • Descarga en ella este fichero csv.
  • Descarga el fichero y guárdalo en la subcarpeta datos de tu carpeta de trabajo.
  • Explora el fichero con un editor de texto como el Bloc de Notas.
  • Lee ese fichero con R, usando el comando read.table y guárdalo en un data.frame con el nombre tabla.
  • Comprueba que la lectura ha sido correcta.

Ejercicio 2

Prepara los datos

  • Comprueba si hay filas incompletas
all(complete.cases(datos))
## [1] TRUE
  • Determina el tipo de datos de que dispones
summary(datos)
##  test    estado 
##  -:525   E:500  
##  +:475   S:500
  • Construye una tabla de contingencia que resuma los datos
(tabla = table(datos ))
##     estado
## test   E   S
##    -  50 475
##    + 450  25
  • Para reordenar las filas/columnas de la tabla hay que reordenar previamente los niveles del correspondiente factor
datos$test = factor(datos$test, levels = c("+", "-"))
(tabla = table(datos))
##     estado
## test   E   S
##    + 450  25
##    -  50 475
  • Renombra las filas/columnas de la tabla con las funciones col.names(), row.names(). Añade a la tabla los valores marginales con la función addmargins()
colnames(tabla) <- c("Enfermo", "Sano")
row.names(tabla) <- c("Positivo", "Negativo")
(tablaMrgs = addmargins(tabla))
##           estado
## test       Enfermo Sano  Sum
##   Positivo     450   25  475
##   Negativo      50  475  525
##   Sum          500  500 1000

Ejercicio 3

Cada probabilidad está calculada de dos formas diferentes, con la tabla original y con la tabla a la que se le han añadido los valores marginales.

  • Calcula \(P(+)\)
tablaMrgs[1,3]/tablaMrgs[3,3]
## [1] 0.475
sum(tabla[1, ])/sum(tabla)
## [1] 0.475
  • Calcula \(P(E\cap -)\)
tablaMrgs[2,1]/tablaMrgs[3, 3]
## [1] 0.05
tabla[2,1]/sum(tabla)
## [1] 0.05
  • Calcula \(P(E | -)\)
(tablaMrgs[2,1]/tablaMrgs[3,3])/(tablaMrgs[2,3]/tablaMrgs[3,3])
## [1] 0.0952381
(tabla[2,1]/sum(tabla))/(sum(tabla[2, ])/sum(tabla))
## [1] 0.0952381
  • Calcula la sensibilidad del test: \(P(+|E)\)
(tablaMrgs[1,1]/tablaMrgs[3,3])/(tablaMrgs[3,1]/tablaMrgs[3,3])
## [1] 0.9
(tabla[1,1]/sum(tabla))/(sum(tabla[,1])/sum(tabla))
## [1] 0.9
  • Calcula la especificidad del test: \(P(-|S)\)
(tablaMrgs[2,2]/tablaMrgs[3,3])/(tablaMrgs[3,2]/tablaMrgs[3,3])
## [1] 0.95
(tabla[2,2]/sum(tabla))/(sum(tabla[ ,2])/sum(tabla))
## [1] 0.95
  • Calcula el valor predictivo positivo del test: \(P(E|+)\)
(tablaMrgs[1,1]/tablaMrgs[3,3])/(tablaMrgs[1,3]/tablaMrgs[3,3])
## [1] 0.9473684
(tabla[1,1]/sum(tabla))/(sum(tabla[1, ])/sum(tabla))
## [1] 0.9473684
  • Calcula el valor predictivo negativo del test: \(P(S|-)\)
(tablaMrgs[2,2]/tablaMrgs[3,3])/(tablaMrgs[2,3]/tablaMrgs[3,3])
## [1] 0.9047619
(tabla[2,2]/sum(tabla))/(sum(tabla[2,])/sum(tabla))
## [1] 0.9047619

Ejercicio 4

Ahora calcularemos las probabilidades directamente con la regla de Laplace contando a partir de los datos originales del data.frame:

  • Calcula \(P(+)\)
sum(datos$test=="+")/nrow(datos)
## [1] 0.475
  • Calcula \(P(E \cap -)\)
sum((datos$estado == "E") & (datos$test == "-"))/nrow(datos)
## [1] 0.05
  • Calcula \(P(E |-)\)
sum((datos$estado == "E") & (datos$test == "-"))/sum(datos$test == "-")
## [1] 0.0952381