pouvez-vous me montrer explicitement la première itération du score de newton-raphson et des pêcheurs?

8

J'essaie de comprendre la différence entre la Newton-Raphsontechnique et la Fisher scoringtechnique en calculant la première itération pour chaque méthode pour un Bernoulliéchantillon. (Je sais que dans ce cas, je peux calculer explicitement et immédiatement mais je veux le faire de manière itérative juste pour comprendre et voir comment chaque méthode converge).πmle

Supposons que je dessine une pièce de monnaie fois, le paramètre réel est inconnu pour moi , et je me suis 4 têtes, donc .n=10πt=0.3X¯=0.4

La fonction de score est:

u(π)=nX¯πn(1X¯)1π

Les informations sur les pêcheurs observées sont:

J(π)=nX¯π2n(1X¯)(1π)2

et les informations attendues sur les pêcheurs sont:

I(π)=nπtπ2+n(1πt)(1π)2

Et notez que nous ne pouvons simplifier les informations de pêcheur attendues que lorsque nous les évaluons àπ=πt , mais nous ne savons pas où elles se trouvent ...

Supposons maintenant que ma supposition initiale soitπ0=0.6

Va Newton-Raphsonsimplement comme ceci:

π1=π0u(π0)/J(π0)

?

Et comment ça se Fisher-scoringpasse?

π1=π0+u(π0)/I(π0)

Notez qu'il contient que nous ne connaissons pas! et nous ne pouvons même pas remplacer par car nous ne le savons pas non plus - c'est exactement ce que nous recherchons ...πtπtπmle

Pouvez-vous nous aider à me montrer de la manière la plus concrète possible ces 2 méthodes? Merci!

ihadanny
la source

Réponses:

4

Pour Newton-Raphson , oui, nous avons

π1=π0u(π0)/J(π0).

Pour la notation de Fisher , comme vous l'avez mentionné, il existe un paramètre inconnu ( ) dans les informations attendues . Étant donné que , nous utilisons l'exemple de dérivée première pour approximer la dérivée seconde attendue où , et est l'indicateur de tête pour chaque tirage. Alors Notez que nous avons besoin d'un grand car l'approximation est basée sur la théorie asymptotique.πI(π)I(π)=E(J(π))=E[u(π)u(π)]

I^(π0)=inui(π0)ui(π0),
ui(π)=xiπ1xi1πxi
π1=π0+u(π0)/I^(π0).
n

J'ai révisé I_hat(pi)le Pythoncode de @ ihadanny . Désormais, les scores de Newton-Raphson et Fisher donnent des résultats identiques.

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

Mise à jour

C'est un cas particulier où les scores de Newton-Raphson et Fisher sont identiques, car qui nécessite juste une algèbre standard.

I^(π)=in(xiπ1xi1π)2=inxiπ2+(ninxi)(1π)2=J(π),
Randel
la source
hmm .. merci beaucoup pour cela - est logique. Cependant, j'ai implémenté vos déclarations exactes: pastebin.com/m192UYs9 - Newton converge après 1-2 itérations, Fisher ne se rapproche même pas après 10 itérations. N'est-ce pas censé être l'inverse ?? Je pensais que Fisher était une amélioration par rapport à Newton ...
ihadanny
1
Ma faute. J'ai révisé la réponse. Notez que la réponse précédente a généré . π1=π0+1/u(π0)
Randel
Oh génial! une dernière question avant d'accepter - n'est-il pas étrange que maintenant les deux méthodes donnent exactement les mêmes résultats chaque fois que j'exécute le code? encore une fois - Fisher était censé être une amélioration - il semble qu'en utilisant votre approximation (correcte), il n'y a maintenant aucun avantage à utiliser Fisher par rapport à Newton et les deux méthodes sont mathématiquement équivalentes :(
ihadanny
(et ne vous inquiétez pas - j'accepterai et donnerai le prix de la prime avant son expiration, c'est juste que j'espérais vraiment que cette question m'aidera à comprendre la différence fondamentale entre les méthodes et actuellement elle ne m'a pas amené là - elle ressemble à la gymnastique mathématique de la même chose pour moi)
ihadanny
J'ai mis à jour la réponse avec la preuve pourquoi les deux méthodes sont identiques dans ce cas particulier. À ma connaissance, le score de Fisher ne nécessite pas de dérivées secondes mais il a besoin d'un grand . Une bonne référence: Demidenko, modèles mixtes: théorie et applications avec R . n
Randel