Avant les applications demain en cours, un petit billet (presque d’actualité) sur une application évoquée vendredi dernier sur le test du chi-deux: l’ajustement de lois.
Le problème est le suivant: un pays se fait bombarder. Et les dirigeants doivent se demander si certaines cibles sont visées (auquel cas il peut être légitime de les déplacer) ou au contraire si les tirs sont aléatoires. Quand je dis que des cibles sont visées, j’entends aussi par là que les pilotes savent viser. Car les pilotes ont (je pense, ou j’espère) un carnet de route à suivre, avec des cibles à viser
Ce que l’on va se demander c’est plutôt si les pilotes savent – ou arrive à – viser. Bref, le problème peut se modéliser en supposant que le lancer de bombes se fait (globalement) selon un processus de Poisson. Localement, si les tirs sont aléatoires, on devrait observer des tirages de lois de Poisson. C’est tout du moins la théorie que R. D. Clarke (alors actuaire chez Prudential Assurance Company) a utilisé pendant la seconde guerre mondiale, sur les bombardements à Londres (en ligne ici). Cette histoire (vraie) est reprise par Thomas Pynchon dans Gravity’s Rainbow (en ligne ici)
(l’exemple est même repris dans Feller). Bref, le problème n’est pas de savoir quel serait le paramètre de la loi de Poisson, mais si la loi de Poisson est adaptée, ou pas. C’est ce qu’on appelle un problème d’ajustement de loi.
- Test du chi-deux et ajustement de lois
Jusqu’à présent, on avait supposé que les observations suivaient une certaine loi, e.g. une loi de Poisson , et on cherchait à tester une hypothèse de la forme
versus
Ici on va cherche à utiliser un test sur une loi multinomiale, de la forme
versus
L’hypothèse nulle est ici une égalité vectorielle,
ou encore
Dans le cas d’un test d’ajustement de lois de Poisson, si on suppose que les observations suivent une loi , on va utiliser un test sur une loi multinomiale, avec
Le soucis est que, puisque l’on se limite à un vecteur de taille finie, le vecteur ne sera pas dans le simplexe (cf ici). Donc classiquement, pour la dernière valeur, on retient une hypothèse de la forme
Le test est alors basé sur la statistique de Pearson
qui va suivre (si effectivement les observations suivent une loi de Poisson ) une loi .
Rappelons que cette statistique peut aussi s’écrire
- Application pour étudier la précision d’un lancer de bombes
Pendant la second guerre mondiale, R.D. Clarke étudia les impacts de bombes V1 et V2 tombées dans une zone de 144 km2 dans le sud de Londres (l’article original, publié après guerre en 1946, est en ligne ici). Il divisa cette zone en 576 zones de 0,25 km2 et compta le nombre d’impact dans chacune des zones. Il obtint plus précisément la distribution suivante
nbre impacts par zone |
0 |
1 |
2 |
3 |
4 |
5 et plus |
fréquence (nbre zones) |
229 |
211 |
93 |
35 |
7 |
1 |
(en fait, on sait que le “5
et plus” correspond à 7, car sait qu’il y a eu 537 bombes sur 576 zones). Avant de se lancer tête baissée, réfléchissons un peu au type de loi que l’on pourrait utiliser. Pour cela, notons le nombre de points tombés dans un ensemble (ou désigne la région globale). Si on suppose qu’un nombre aléatoire de points sont lancés aléatoirement dans , et que suit une loi de Poisson , alors suit une loi de Poisson de paramètre
Bref, si on regarde plusieurs plusieurs régions (de même taille, éventuellement – afin de garder toutes les observations – formant une partition de ) et si on observe une loi de Poisson, c’est que dans la région , les tirs sont faits au hasard.
> (n=c(229,211,93,35,7,0,0,1))
[1] 229 211 93 35 7 0 0 1
> y=0:7
> (lambda=sum(n*y)/sum(n))
[1] 0.9322917
> prob=dpois(y,lambda)
> freq.theo=sum(n)*prob
> freq.emp =n
> cbind(y,trunc(freq.theo),freq.emp)
y freq.emp
[1,] 0 226 229
[2,] 1 211 211
[3,] 2 98 93
[4,] 3 30 35
[5,] 4 7 7
[6,] 5 1 0
[7,] 6 0 0
[8,] 7 0 1
On peut commencer par regarder la log-vraisemblance
La statistique du chi-deux, elle, ressemble à ça
Bon, le soucis c’est qu’en tronquant le vecteur (on suppose que le nombre maximum d’impact est 7), la somme des probabilités ne fait pas exactement un. On peut regrouper dans une même classe les fréquences élevées (comme le fait Clarke dans le papier initial d’ailleurs).
> (n=c(229,211,93,35,7,1))
[1] 229 211 93 35 7 1
> y=0:4
> prob=c(dpois(y,lambda),1-ppois(4,lambda))
> freq.theo=sum(n)*prob
> freq.emp =n
> (Q=sum(
[1] 1.169155
> 1-pchisq(Q,length(y)-1)
[1] 0.8831505
On retrouve les quantités évoquées dans l’article de Clarke. La statistique de test vaut 1.16 et la p-value associée est de l’ordre de 88%. On va donc accepter l’hypothèse de loi de Poisson,
La valeur de la statistique du chi-deux en fonction du paramètre de la loi de Poisson est représentée ci-dessous,
et le trait horizontal est la valeur seuil de la région critique (en dessous, on accepte l’ajustement d’une loi de Poisson),
Il existe plusieurs fonctions sous R permettant de faire des choses semblables,
> library(vcd)
> (n=c(229,211,93,35,7,0,0,1))
[1] 229 211 93 35 7 0 0 1
> nsim=c(rep(y[0],n[0]),rep(y[1],n[1]),
rep(y[2],n[2]),rep(y[3],n[3]),
rep(y[4],n[4]),rep(y[5],n[5]),
rep(y[6],n[6]),rep(y[7],n[7]),
rep(y[8],n[8]))
> gf=goodfit(nsim,type="poisson",method="ML")
> summary(gf)
Goodness-of-fit test for poisson distribution
X^2 df P(> X^2)
Likelihood Ratio 4.007784 3 0.2606249
> gf=goodfit(nsim,type="poisson",method="MinChisq")
> summary(gf)
Goodness-of-fit test for poisson distribution
X^2 df P(> X^2)
Pearson 1.275499 3 0.7349592
Bref, quelle que soit la méthode utilisée, on notera que l’on accepte toujours l’hypothèse d’une loi de Poisson. Autrement dit les bombes étaient envoyés un peu au hasard dans Londres….
Et si on y réfléchit un peu, d’un point de vue de la théorie des jeux, c’est effectivement une stratégie optimale…