Soy más programador que estadístico, así que espero que esta pregunta no sea demasiado ingenua.
Ocurre en ejecuciones de programas de muestreo en momentos aleatorios. Si tomo N=10 muestras de tiempo aleatorias del estado del programa, podría ver que la función Foo se ejecuta, por ejemplo, en I=3 de esas muestras. Estoy interesado en lo que eso me dice acerca de la fracción real de tiempo F que Foo está en ejecución.
Entiendo que I tiene una distribución binomial con media F*N. También sé que, dados I y N, F sigue una distribución beta. De hecho he comprobado por programa la relación entre esas dos distribuciones, que es
cdfBeta(I, N-I+1, F) + cdfBinomial(N, F, I-1) = 1
El problema es que no intuyo la relación. No puedo "imaginarme" por qué funciona.
EDIT: Todas las respuestas han sido un reto, especialmente la de @whuber, que todavía tengo que entender, pero poner en orden las estadísticas ha sido muy útil. Sin embargo, me he dado cuenta de que debería haber hecho una pregunta más básica: Dados I y N, ¿cuál es la distribución de F? Todo el mundo ha señalado que es Beta, que yo sabía. Finalmente lo he deducido de Wikipedia ( Conjugado previo ) que parece ser Beta(I+1, N-I+1)
. Después de explorarlo con un programa, parece ser la respuesta correcta. Me gustaría saber si estoy equivocado. Y, todavía estoy confundido acerca de la relación entre los dos cdfs se muestra arriba, ¿por qué se suman a 1, y si incluso tienen algo que ver con lo que realmente quería saber.
0 votos
Si "lo que realmente querías saber" es "la fracción real de tiempo que Foo está en ejecución", entonces estás preguntando por un intervalo de confianza binomial o un intervalo de credibilidad binomial (bayesiano).
0 votos
@whuber: Bueno, he utilizado el método de pausa aleatoria para ajustar el rendimiento durante más de 3 décadas, y algunas otras personas lo han descubierto también. Le he dicho a la gente que si alguna condición es verdadera en 2 o más muestras de tiempo aleatorio, entonces eliminarla ahorraría una buena fracción de tiempo. Cómo una buena fracción es lo que he tratado de ser explícito acerca de, suponiendo que no sabemos un Bayesiano anterior. Aquí está la llama general: stackoverflow.com/questions/375913/ y stackoverflow.com/questions/1777556/alternatives-to-gprof/
2 votos
Buena idea. La hipótesis estadística es que la interrupción es independiente del estado de ejecución, lo cual es una hipótesis razonable. A intervalo de confianza binomial es una buena herramienta para representar la incertidumbre. (También puede abrirnos los ojos: en su situación de 3/10, un IC del 95% simétrico de dos caras para la probabilidad real es [6,7%, 65,2%]. En una situación de 2/10, el intervalo es [2,5%, 55,6%]. Se trata de intervalos amplios. Incluso con 2/3, el límite inferior sigue siendo inferior al 10%. La lección aquí es que algo bastante raro puede ocurrir dos veces).
0 votos
@whuber: Gracias. Tienes razón. Algo más útil es el valor esperado. En cuanto a los priors, señalo que si sólo ves algo una vez, no te dice mucho a menos que resulta que sabes que el programa está en un bucle infinito (o excesivamente largo).
0 votos
Creo que todas las respuestas y comentarios han sido ciertamente esclarecedores y correctos, pero nadie ha tocado realmente la interesante igualdad que @MikeDunlavey ponía en su post original. Esta igualdad se puede encontrar en la wikipedia Beta es.wikipedia.org/wiki/Función_beta#Función_beta_incompleta pero no se describe por qué, sólo se indica que es una propiedad.