Al final del ultimo post, comenté mi preocupación por la lenta convergencia, y culpe apresuradamente al uso de los objetos de tipo float.
Haciendo cuentas noté que no había nada raro en la convergencia.
El estimador era:
˜π=4∗∑nt=1I(punto i esta dentro de circulo)n
Esto se puede reescribir de la siguiente forma:
˜π=4∗˜F, donde ˜F=∑nt=1I(1 si punto i esta dentro de circulo)n Sabemos que I(1 si punto i esta dentro de circulo) es una variable aleatoria Bernoulli, entonces
˜F=Yn donde Y es una variable Binomial con parámetros n y p=π/4.
E[˜π]=4∗E[Y]n=4∗π4∗n∗1n=π
Ahora, la varianza es lo que nos interesa.
Var[Y]=np(1−p)Var[˜F]=np(1−p)n2=p(1−p)n=˜F(1−˜F)nVar[˜π]=42Var[˜F]=8˜F(1−˜F)n
Ahora, quiero generar un intervalo de confianza del 95% (usando la normal, porque n es muy grande), y quiero que ese intervalo tenga un tamaño del orden de 10−4. Teniendo la formula de la varianza del estimador, podemos calcular el n para esa precisión: n=1035989708.4897318. Acá queda claro que floats no tenía nada que ver con la falta de precision. Fue solo una cuestión de ansiedad.
De hecho, si usamos n=109, luego de un tiempito, tenemos el siguiente resultado
˜π=3.141564804(3.67207693157∗10−5)
y con un α=5% podemos construir el intervalo: [3.141492831293.14163677671]
2 comments:
En resumen, el metodo es malisimo? :)
10^9 samples para 4 decimales! No hay algo mejor?
Si, es bastante malo.
Estaba mirando utilizar las Binomiales. Si tenemos n Binomials de parámetros p,n, podemos usar el estimador maximoverosimil: ˜p=∑nXin2$
Y
Var(˜p)=p(1−p)n2, así que el desvio estandar tiende a 0 en velocidad del orden O(n). El tema es que necesitamos un total de n2, como antes (lo que tiene sentido, porque es lo mismo de otra forma.
Igual, esto abre la posibilidad de usar la Poisson para aproximar la Binomial, y tener la convergencia O(n), pero el método dejo de ser simple
Post a Comment