Simulación de los datos de una o varias tablas de contingencia 2X2 con distribución multinomial



Una subpoblacion tabla de 2x2 multinomial especificando la sensibilidad y especificidad

datos <-function(ni, se, sp){  # ni=tamaño de muestra, se= sensitivity, sp= specificity
  rmultinom(n=1, size=ni, prob=c(se,1-se,1-sp,sp))
}
datos(100,0.7,0.8)
##      [,1]
## [1,]   35
## [2,]   15
## [3,]   13
## [4,]   37



 

Varias subpoblaciones tabla de 2x2 multinomial especificando la sensibilidad y especificidad

En este caso la función datos_subp recibe vectores con \(ni=\) tamaño total para cada subpoblación, \(se=\) sensibilidad para cada subpoblación y \(sp=\) especificidad para cada subpoblación. Como resultado se obtiene un vector donde cada 4 filas corresponde a los datos simulados de una tabla 2, que corresponde una subpoblacion diferente.

datos_subp <-function( ni, se, sp){  #  ni= num de obs totales por tabla, se= sensitivity, sp= specificity
  tablas <- data.frame()
  for (i in 1:length(ni)) {
    tabla <-rmultinom(n=1, size=ni[i], prob=c(se[i],1-se[i],1-sp[i],sp[i]))
    tabla <- data.frame(tabla)
    tablas <- rbind(tablas,tabla) #Pegarlo en filas
  }
  #tablas <- tablas[,1] # para que se muestre en forma de vector
  tablas
}
#datos_subp(c(rep(100,6)),c(rep(0.7,6)),c(rep(0.8,6)))
datos_subp(c(20,30),c(0.7,0.7), c(0.8,0.8))
##   tabla
## 1     4
## 2     4
## 3     3
## 4     9
## 5    10
## 6     2
## 7     2
## 8    16