Vendredi, nous devrions aborder un peu la problématique des tests asymptotiques. Avant, rappelons que l’estimateur du maximum de vraisemblance de vérifie la propriété asymptotique suivante.
Or on a une propriété intéressante sur les convergences de vecteurs Gaussiens (pour rester assez général). Soit une suite de vecteurs aléatoires telle que où . Alors
où (pour un paramètre univarié, ça sera alors ). Mais ce résultat n’est intéressant que si est connue. En fait, si on a la suite des variances vérifie , alors
Traduit sur notre estimateur du maximum de vraisemblance, cela signifie que
ou encore
Trois tests peut alors être mis en œuvre (et tant qu’à faire, on peut essayer de l’illustrer sur un exemple: encore et toujours du pile/face).
> set.seed(1)
> n=20
> X=sample(0:1,size=n,replace=TRUE)
> p=seq(0,1,by=.01)
> logL=function(p){sum(log(dbinom(X,size=1,prob=p)))}
> LL=sapply(p,logL)
> plot(p,LL,type="l",col="red",lwd=2)
> p0=.5
> points(p0,logL(p0),pch=3,cex=1.5,lwd=2)
> abline(v=p0,lty=2)
On a alors 20 tirages de pile ou face, on a obtenu 11 piles, et on se demande si la pièce est “juste“.Mais avant toute chose, commençons par calculer l’estimateur du maximum de vraisemblance, ainsi que le score et l’information de Fisher. Dans ce modèle de variables de Bernoulli, on connaît des formes explicites de ces quantités. Mais ici, on va utiliser la méthode la plus générale qui soit, i.e. on va maximiser la log-vraisemblance, puis on va calculer le score et l’information de Fisher à la valeur de que l’on souhaite tester.
> neglogL=function(p){-sum(log(dbinom(X,size=1,prob=p)))}
> pml=optim(fn=neglogL,par=p0,method="BFGS")$par
Warning messages:
1: In dbinom(x, size, prob, log) : NaNs produced
2: In dbinom(x, size, prob, log) : NaNs produced
> nx=sum(X==1)
> f = expression(nx*log(p)+(n-nx)*log(1-p))
> Df = D(f, "p")
> Df2 = D(Df, "p")
> p=p0
> score=eval(Df)
> (IF=-eval(Df2))
[1] 80
> 1/(p0*(1-p0)/n)
[1] 80
On note que l’information de Fisher calculée par double différenciation de la log-vraisemblance est identique à la formule analytique. Pour rappels, on a
Trois tests (équivalent asymptotiquement comme on le verra en cours) sont alors possibles.
Tout d’abord le test de Wald propose de travailler sur la différence entre l’estimateur du maximum de vraisemblance, et la valeur que l’on cherche à tester (comme le montre le dessin ci-dessous). Cette différence doit être “petite” si est la vraie valeur.On peut alors utiliser la statistique suivante
Asymptotiquement, en utilisant le résultat évoqué au début, cette statistique tend, sous l’hypothèse que est la vraie valeur, vers une loi du chi-deux.
> alpha=0.05
> (T=(pml-p0)^2*IF)
[1] 0.1999970
> T<qchisq(1-alpha,df=1)
[1] TRUE
Ici, on accepte l’hypothèse que la pièce n’est pas pipée.
Ensuite le test du rapport de vraisemblance propose de travailler sur les valeurs de la log-vraisemblance. Là encore, cette différence doit être “petite” si est la vraie valeur. Graphiquement, on mesure une distance normalisée
La statistique est celle d’un test bilatéral,
On pose alors
(le 2 sera détaillé un peu en cours, c’est mis là de manière à avoir trois tests équivalents). Asymptotiquement, on peut montrer que cette statistique tend, sous l’hypothèse que est la vraie valeur, vers une loi du chi-deux.
> (T=2*(logL(pml)-logL(p0)))
[1] 0.2003347
> T<qchisq(1-alpha,df=1)
[1] TRUE
Là encore, on accepte l’hypothèse que la pièce n’est pas pipée.
Enfin, le test du score propose de travailler sur la pente de la log-vraisemblance en . Cette pente doit être “petite” si est la vraie valeur.
La pente correspond au score,
La statistique de test est alors ici
Et là encore, asymptotiquement, on peut montrer que cette statistique tend, sous l’hypothèse que est la vraie valeur, vers une loi du chi-deux.
> (T=slope^2/IF)
[1] 0.2
> T<qchisq(1-alpha,df=1)
[1] TRUE
Et le test accepte ici encore l’hypothèse que la pièce n’est pas pipée.