Cálculos de potencia / tamaño de muestra para estudio de biomarcadores

13

Tenemos un biomarcador potencial para predecir si un paciente tiene cáncer o no. El resultado de la prueba de biomarcadores es binario positivo o negativo. Queremos tener una idea de la cantidad de pacientes que necesitan ser evaluados para determinar si este biomarcador es un buen predictor o no.

Al leer en Internet, parece que el camino a seguir es observar la sensibilidad (para el número de casos) y la especificidad (para el número de controles). Se sugiere que trate esta situación como una prueba de proporción de una muestra, pero no está claro cómo debe estimar cuál es la sensibilidad y el rango para el que está preparado, excepto. Si digo que considero que cualquier biomarcador con una sensibilidad superior a 0,8 es "bueno", ¿cómo establecería las dos variables? Me gustaría que mi hipótesis nula sea que el biomarcador no es mejor que una asignación aleatoria, es decir, una sensibilidad de 0.5. ¿Alguien podría dar un ejemplo de la mejor manera de hacer esto (especialmente si está en R).

danielsbrewer
fuente
¿Está diciendo que comenzará con un conjunto de casos conocidos, luego realizará su prueba de biomarcadores (recolecte datos) y calcule la sensibilidad? ¿Y comenzará con un conjunto de controles conocidos, recopilará datos y estimará la especificidad?
Para este cálculo en efecto sí. En realidad, no lo sabremos antes del reclutamiento de pacientes, pero seguiremos reclutando hasta que tengamos suficientes casos y controles. También tenemos una tasa estimada de que un paciente va a ser un caso para que podamos usar eso para estimar el número total tendremos que reclutar,
danielsbrewer
Si el biomarcador solo da una respuesta de sí / no, entonces puede ir con sensibilidad / especificidad y hacer la planificación en un contexto para pruebas de proporciones. Si un valor para uno de ellos es "bueno" o "malo" depende de las consecuencias reales de una decisión falsa. Si el biomarcador originalmente proporciona una medición continua, las curvas ROC y las estadísticas AUC y los métodos de planificación del tamaño de muestra correspondientes pueden ser más apropiados. Pero todo esto sólo roza la superficie de los métodos relacionados con las pruebas de diagnóstico ...
PSJ

Respuestas:

11

Hablemos de sensibilidad (que denotaremos por ), la especificidad es similar. El siguiente es un enfoque frecuentista; Sería genial si uno de los bayesianos aquí pudiera agregar otra respuesta para discutir una forma alternativa de hacerlo.pag

Supongamos que ha reclutado personas con cáncer. Aplica su prueba de biomarcadores a cada uno, por lo que obtendrá una secuencia de 0 y 1 que llamaremos . Las entradas de tendrán una distribución de Bernoulli con probabilidad de éxito . La estimación de es . Con suerte, es "grande", y puede juzgar la precisión de su estimación a través de un intervalo de confianza para . nortexxpagpagpag^=X/ /nortepag^pag

Su pregunta dice que le gustaría saber qué tan grande debería ser . Para responderla, deberá consultar la literatura de biomarcadores para decidir qué tan grande es "grande" y qué tan baja sensibilidad puede tolerar debido a un error de muestreo. Suponga que decide que un biomarcador es "bueno" si su sensibilidad es mayor que (eso en realidad no es tan bueno), y desea que sea ​​lo suficientemente grande para que haya un 90% de posibilidades de detectar una sensibilidad de . Supongamos que desea controlar su nivel de significancia en . nortepag=0.5 0.5nortepag=0,57α=0.05

Existen al menos dos enfoques: analítico y de simulación. El pwrpaquete Rya existe para ayudar con este diseño; primero debe instalarlo. A continuación, necesitará un tamaño de efecto, luego la función que desea es pwr.p.test.

library(pwr)
h1 <- ES.h(0.57, 0.5)
pwr.p.test(h = h1, n = NULL, sig.level = 0.05, power = 0.9, alt = "greater")

     proportion power calculation for binomial distribution (arc... 

              h = 0.1404614
              n = 434.0651
      sig.level = 0.05
          power = 0.9
    alternative = greater

4350,570,900,050,57

Una vez que tenga sus datos, la forma de ejecutar la prueba es (simularé los datos en aras de la discusión).

n <- 435
sens <- 0.57
x <- rbinom(n, size = 1, prob = sens)
binom.test(sum(x), n, p = 0.5, alt = "greater")

    Exact binomial test

data:  sum(x) and n 
number of successes = 247, number of trials = 435,
p-value = 0.002681
alternative hypothesis: true probability of success is greater than 0.5 
95 percent confidence interval:
 0.527342 1.000000 
sample estimates:
probability of success 
             0.5678161 

0,568pag[0,527,1]

EDITAR: Si te gusta más el enfoque de simulación, entonces puedes hacerlo de esta manera: establecer

n <- 435
sens <- 0.57
nSim <- 1000

y dejar runTestser

runTest <- function(){
  x <- rbinom(1, size = n, prob = sens)
  tmp <- binom.test(x, n, p = 0.5, alt = "greater")
  tmp$p.value < 0.05
}

entonces la estimación del poder es

mean(replicate(nSim, runTest()))
[1] 0.887

fuente