{"word_count": 897, "character_count": 6448}
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 à viserCe 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 loisJusqu'à 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 formeversusIci on va cherche à utiliser un test sur une loi multinomiale, de la formeversusL'hypothèse nulle est ici une égalité vectorielle,ou encoreDans 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, avecLe 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 formeLe test est alors basé sur la statistique de Pearsonqui va suivre (si effectivement les observations suivent une loi de Poisson ) une loi .Rappelons que cette statistique peut aussi s'écrire&#160;Application pour étudier la précision d'un lancer de bombesPendant 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 suivantenbre impacts par zone012345 et plusfréquence (nbre zones)229211933571(en fait, on sait que le "5et 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ètreBref, 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.&#62; (n=c(229,211,93,35,7,0,0,1))[1] 229 211  93  35   7   0   0   1&#62; y=0:7&#62; (lambda=sum(n*y)/sum(n))[1] 0.9322917&#62; prob=dpois(y,lambda)&#62; freq.theo=sum(n)*prob&#62; freq.emp =n&#62; 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        1On peut commencer par regarder la log-vraisemblance&#62; logvrais=function(L){sum(log(dpois(y,L))*n)}&#62; param=seq(.5,1.5,by=.025)&#62; LV=sapply(param,logvrais)&#62; plot(param,LV,type="b",col="blue")La statistique du chi-deux, elle, ressemble à ça&#62; chi2=function(L)sum(n)*sum(((n/sum(n)-dpois(y,L))^2)/dpois(y,L))&#62; C2=sapply(param,chi2)&#62; plot(param,C2,type="b",col="red")xxx.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).&#62; (n=c(229,211,93,35,7,1))[1] 229 211  93  35   7   1&#62; y=0:4&#62; prob=c(dpois(y,lambda),1-ppois(4,lambda))&#62; freq.theo=sum(n)*prob&#62; freq.emp =n&#62; (Q=sum( ((freq.theo-freq.emp)^2)/freq.theo ))[1] 1.169155&#62; 1-pchisq(Q,length(y)-1)[1] 0.8831505On 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,&#62; chi2=function(L){+ sum(n)*sum( ((n/sum(n)-c(dpois(y,L),1-ppois(4,L)))^2)/+ c(dpois(y,L),1-ppois(4,L)) )}&#62; C2=sapply(param,chi2)&#62; plot(param,C2,type="b",col="red")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),&#62; abline(h=qchisq(.95,length(y)-1),lty=2)Il existe plusieurs fonctions sous R permettant de faire des choses semblables,&#62; library(vcd)&#62; (n=c(229,211,93,35,7,0,0,1))[1] 229 211  93  35   7   0   0   1&#62; 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]))&#62; gf=goodfit(nsim,type="poisson",method="ML")&#62; summary(gf)  Goodness-of-fit test for poisson distribution  X^2 df P(&#62; X^2)Likelihood Ratio 4.007784 3 0.2606249 &#62; gf=goodfit(nsim,type="poisson",method="MinChisq")&#62; summary(gf)  Goodness-of-fit test for poisson distribution  X^2 df P(&#62; X^2)Pearson 1.275499 3 0.7349592Bref, 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...