¿Como pregunta, he encontrado algo similar aquí, pero cómo hacerlo en R?
Gracias.
¿Como pregunta, he encontrado algo similar aquí, pero cómo hacerlo en R?
Gracias.
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
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)
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 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.