7 votos

¿Cómo calcular el intervalo de confianza para los datos de la cuenta en R?

¿Como pregunta, he encontrado algo similar aquí, pero cómo hacerlo en R?

Gracias.

10voto

Alan Puntos 7273

Usted está buscando un intervalo de confianza alrededor del recuento de un proceso de Poisson. Si pones por ejemplo 42 en su vinculados ejemplo que usted consigue

Se observó 42 objetos en un cierto volumen 42 eventos en un tiempo determinado período.

Exacto Poisson intervalo de confianza:

  • El 90% de intervalo de confianza se extiende desde el 31,94 a 54.32
  • El 95% de intervalo de confianza se extiende desde 30.27 a 56.77
  • El 99% intervalo de confianza se extiende desde 27.18 a 61.76

Usted puede conseguir esto en R usando poisson.test. Por ejemplo

> poisson.test(42, conf.level = 0.9 )

        Exact Poisson test

data:  42 time base: 1 
number of events = 42, time base = 1, p-value < 2.2e-16
alternative hypothesis: true event rate is not equal to 1 
90 percent confidence interval:
 31.93813 54.32395 
sample estimates:
event rate 
        42  

y del mismo modo el resto de los valores, cambiando conf.level. Si usted no desea que toda la información de fondo, intente algo como

> poisson.test(42, conf.level = 0.95 )$conf.int
[1] 30.26991 56.77180
attr(,"conf.level")
[1] 0.95

6voto

bd808 Puntos 576

Si el número de evento es muy pequeño, sería mejor utilizar el método exacto.

exactPoiCI <- function (X, conf.level=0.95) {
  alpha = 1 - conf.level
  upper <- 0.5 * qchisq((1-(alpha/2)), (2*X))
  lower <- 0.5 * qchisq(alpha/2, (2*X +2))
  return(c(lower, upper))
}
exactPoiCI(42, 0.9)
exactPoiCI(42)
exactPoiCI(42, 0.99)

Referencia: Liddell FD. Simple análisis exacto de la tasa de mortalidad estandarizada. J Epidemiol Community Health. 1984; 38:85-8 (enlace)

2voto

Jianmei Wang Puntos 23

La primera respuesta con poisson.test dar el intervalo de confianza exacto. Sin embargo, este cálculo es tan simple que prefiero calcular directamente en lugar de utilizar una función de biblioteca. En la segunda respuesta hay un error leve. La + 2 debe estar en el grado de libertad para el cálculo de CI superior, no para el menor. Así que el código correcto debe ser:

exactPoiCI <- function (X, conf.level=0.95) {
  alpha = 1 - conf.level
  upper <- 0.5 * qchisq(1-alpha/2, 2*X+2)
  lower <- 0.5 * qchisq(alpha/2, 2*X)
  return(c(lower, upper))
}

exactPoiCI(42, 0.9)
exactPoiCI(42)
exactPoiCI(42, 0.99)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X