La respuesta depende de la pregunta.
Esto es lo que yo he interpretado:
Estás tienes 5 cromosomas, usted está interesado en el caso de que cualquiera de ellos es cero, independiente del resto de ellos, y que está llamando a esto, el total de "probabilidad". Te gustaría saber qué combinación de las tasas individuales asegura que este total, la probabilidad es cero o insignificante.
La clave es lo que quieres decir por insignificante.
Si usted está dispuesto a aceptar un 1% de probabilidad de que ninguno de ellos es cero, entonces su respuesta es lambda=6.3
, con todos los cromosomas que tienen una tasa uniforme.
> sum(dpois(x=0,lambda=rep(6.3,5))) # uniform rate for all 5 chromosomes
[1] 0.009182 # less than 1% total probability
Para un 5% de probabilidad, la respuesta es lambda=4.7
.
Las tasas individuales, sin embargo, podría ser mayor o menor, siempre que contribuyen a mantener la total dentro de la tolerancia. Por ejemplo:
> sum(dpois(x=0,lambda=c(6,6,7,8,8))) # non-uniform rates
[1] 0.00654 # also less than 1% total probability
Solución (uniforme de los tipos):
Definir una función que realiza el cálculo. Aquí he asumido todas las tarifas son iguales, aunque puede establecer lambda directamente a rate
y pasar en cualquier vector de precios.
all_chrom_zero <- function(rate) {
sum(dpois(x=0,lambda=rep(rate,5)))
}
A continuación, utilice sapply
a ejecutar sobre una lista de juicio tarifas, y elija el más pequeño de la tasa que viene en virtud de su confianza umbral, en este caso el 1%
tol <- 0.01
wt<-seq(0,10,0.1) # candidate rates
min(wt[which(sapply(wt,all_chrom_zero)<0.01)])
[1] 6.3
El código anterior se ha estructurado para tomar una matriz sin demasiada dificultad (usando sapply
). Por lo que podría acabar con el uniforme de la asunción por completo y que en realidad ejecute el código para simular a través de varias 5-tuplas de las tasas de interés.
Este sería un plus si su modelo biológico tiene información acerca de la distribución de los tipos de interés de los cromosomas individuales. Si no, usted podría extraer muestras aleatorias de una distribución de Gauss para cada uno de los cromosomas de la tasa, cada uno centrado en el uniforme de solución, y ejecutar los cálculos sobre estos, o si te gusta la fuerza bruta de los cálculos, podría (sólo por diversión!) también se ejecuta el cálculo sobre una 5D de la cuadrícula y buscar la "equiprobables" curvas en varios niveles de tolerancia.
Fondo para sapply
El uso de sapply
permite evitar explícito de bucle en R y es muy potente para la creación de simulaciones. Si quieres un poco de fondo, he referencia a algunos útiles de cebadores en una respuesta aquí.