¿Puedes mostrarme explícitamente la primera iteración de puntuación de newton-raphson y fisher?

8

Estoy tratando de entender la diferencia entre la Newton-Raphsontécnica y la Fisher scoringtécnica calculando la primera iteración para cada método para una Bernoullimuestra. (Sé que en este caso puedo calcular explícita e inmediatamenteπmetrolmi pero quiero hacerlo de forma iterativa solo para comprender y ver cómo converge cada método).

Supongamos que dibujo una moneda norte=10 veces, el parámetro real πt=0,3es desconocido para mí , y tengo 4 cabezas, así queX¯=0.4 0.4.

La función de puntuación es:

tu(π)=norteX¯π-norte(1-X¯)1-π

La información observada de los pescadores es:

J(π)=-norteX¯π2-norte(1-X¯)(1-π)2

y la información esperada del pescador es:

yo(π)=norteπtπ2+norte(1-πt)(1-π)2

Y tenga en cuenta que podemos simplificar la información esperada de los pescadores solo cuando la evaluamos enπ=πt, pero no sabemos dónde está eso ...

Ahora supongamos que mi suposición inicial es π0 0=0.6

No Newton-Raphsonsólo tiene que ir de esta manera:

π1=π0 0-tu(π0 0)/ /J(π0 0)

?

Y como Fisher-scoringva

π1=π0 0+tu(π0 0)/ /yo(π0 0)

Tenga en cuenta que contiene πtque no sabemos! y ni siquiera podemos reemplazarπt con πmetrolmi como tampoco lo sabemos, eso es exactamente lo que estamos buscando ...

¿Pueden ayudarme a mostrarme de la manera más concreta posible esos 2 métodos? ¡Gracias!

ihadanny
fuente

Respuestas:

4

Para Newton-Raphson , sí, tenemos

π1=π0 0-tu(π0 0)/ /J(π0 0).

Para la puntuación de Fisher , como mencionó, hay un parámetro desconocido (π) en la información esperada yo(π). Dadoyo(π)=-mi(J(π))=mi[tu(π)tu(π)], usamos la primera derivada de muestra para aproximar la segunda derivada esperada

yo^(π0 0)=yonortetuyo(π0 0)tuyo(π0 0),
dónde tuyo(π)=Xyoπ-1-Xyo1-πy Xyoes el indicador de cabeza para cada sorteo. Entonces
π1=π0 0+tu(π0 0)/ /yo^(π0 0).
Tenga en cuenta que necesitamos grandes norte ya que la aproximación se basa en la teoría asintótica.

Revisé I_hat(pi)en @ ihadanny de Pythoncódigo. Ahora la puntuación de Newton-Raphson y Fisher proporciona resultados idénticos.

import random
import numpy as np 

pi_t = random.random()
n = 1000
draws = [1 if x < pi_t else 0 for x in np.random.rand(n)]
x_bar = np.mean(draws)

def u(pi):
    return n*x_bar/pi - n*(1-x_bar)/(1-pi)
def J(pi):
    return -n*x_bar/pi**2 - n*(1-x_bar)/((1-pi)**2)
def I_hat(pi):
    x = 0
    for i in range(0, n): 
        x = x + (draws[i]/pi - (1-draws[i])/(1-pi))**2
    return x
def Newton(pi):
    return pi - u(pi)/J(pi)
def Fisher(pi):
    return pi + u(pi)/I_hat(pi)

def dance(method_name, method):
    print("starting iterations for: " + method_name)
    pi, prev_pi, i = 0.5, None, 0
    while i == 0 or (abs(pi-pi_t) > 0.001 and abs(pi-prev_pi) > 0.001 and i < 10):
        prev_pi, pi = pi, method(pi)
        i += 1
        print(method_name, i, "delta: ", abs(pi-pi_t))

dance("Newton", Newton)
dance("Fisher", Fisher)

Log Message
starting iterations for: Newton
Newton 1 delta:  0.00899203081545
Newton 2 delta:  0.00899203081545
starting iterations for: Fisher
Fisher 1 delta:  0.00899203081545
Fisher 2 delta:  0.00899203081545

Actualizar

Este es un caso especial en el que las puntuaciones de Newton-Raphson y Fisher son idénticas, porque

yo^(π)=yonorte(Xyoπ-1-Xyo1-π)2=yonorteXyoπ2+(norte-yonorteXyo)(1-π)2=-J(π),
que solo requiere álgebra estándar.
Randel
fuente
hmm .. muchas gracias por esto, tiene sentido. Sin embargo, he implementado sus declaraciones exactas: pastebin.com/m192UYs9 - Newton converge después de 1-2 iteraciones, Fisher ni siquiera se acerca después de 10 iteraciones. ¿No se supone que es al revés? Pensé que Fisher es una mejora sobre Newton ...
ihadanny
1
Culpa mía. Revisé la respuesta. Tenga en cuenta que la respuesta anterior resultó enπ1=π0 0+1/ /tu(π0 0).
Randel
¡Oh, genial! una última pregunta antes de aceptar: ¿no es extraño que ahora ambos métodos den exactamente los mismos resultados cada vez que ejecuto el código? de nuevo, se suponía que Fisher era una mejora. Parece que al usar su aproximación (correcta) ahora no hay ninguna ventaja al usar Fisher sobre Newton y ambos métodos son matemáticamente equivalentes :(
ihadanny
(y no te preocupes, aceptaré y otorgaré el premio antes de que expire, es solo que realmente esperaba que esta pregunta me ayudara a comprender la diferencia fundamental entre los métodos y actualmente no me ayudó a lograrlo) solo se parece a la gimnasia matemática de lo mismo para mí)
ihadanny
Actualicé la respuesta con la prueba de por qué los dos métodos son idénticos en este caso especial. En mi opinión, la puntuación de Fisher no requiere segundas derivadas, pero sí grandesnorte. Una buena referencia: Demidenko, modelos mixtos: Teoría y Aplicaciones con R .
Randel