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
Descarga de los datos.
datos
de tu carpeta de trabajo.read.table
y guárdalo en un data.frame con el nombre tabla
.Prepara los datos
all(complete.cases(datos))
## [1] TRUE
summary(datos)
## test estado
## -:525 E:500
## +:475 S:500
(tabla = table(datos ))
## estado
## test E S
## - 50 475
## + 450 25
datos$test = factor(datos$test, levels = c("+", "-"))
(tabla = table(datos))
## estado
## test E S
## + 450 25
## - 50 475
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
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.
tablaMrgs[1,3]/tablaMrgs[3,3]
## [1] 0.475
sum(tabla[1, ])/sum(tabla)
## [1] 0.475
tablaMrgs[2,1]/tablaMrgs[3, 3]
## [1] 0.05
tabla[2,1]/sum(tabla)
## [1] 0.05
(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
(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
(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
(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
(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
Ahora calcularemos las probabilidades directamente con la regla de Laplace contando a partir de los datos originales del data.frame
:
sum(datos$test=="+")/nrow(datos)
## [1] 0.475
sum((datos$estado == "E") & (datos$test == "-"))/nrow(datos)
## [1] 0.05
sum((datos$estado == "E") & (datos$test == "-"))/sum(datos$test == "-")
## [1] 0.0952381