chisquaret

### 8.5.4 `chisquaret`

`chisquaret` a pour arguments :

- la liste des données d’un échantillon,
- une loi de distribution ou la liste des données d’un autre échantillon,
- les paramètres de cette loi de distribution ou les paramètres : `classes` suivi de `class_min` et de `class_dim`.

`chisquaret` est le test du Chi2 d’adéquation entre 2 (or n) échantillons ou entre un échantillon et une loi de distribution (multinomiale ou donnée par une fonction).
`chisquaret` renvoie la valeur d2 de la statistique D2 où :
D2=∑j=1k(nj−ej)2/ej avec
k est le nombre de classes de l’échantillon, n1...nk les effectifs de chaque classe de l’échantillon et e1,..,ek sont les effectifs théoriques (si chaque valeur xj est obtenue avec la probabilité théorique pj on a ej=npj) On tape :

`chisquaret([57,54])`

On obtient :

`0.0810810810811`

avec en vert le résumé du test :
On suppose que les données sont des effectifs de classes, adéquation à la distribution uniforme.
Adéquation d’un échantillon à une distribution discrète Résultat du test du Chi2 0.0810810810811.
On rejette l’adéquation si supérieur à `chisquare_icdf(1,0.95)` qui vaut `3.84145882069` or `chisquare_icdf(1,1-alpha)` si alpha!=5%.
On tape :

`chisquaret([1,1,1,1,1,0,0,1,0,0,1,1,1,0,1,1,0,1,1,0,0,0,0],[.4,.6])`

On obtient :

`0.115942028986`

avec en vert le résumé du test :
Adéquation d’un échantillon à une distribution discrète
Résultat du test du Chi2 0.115942028986,
On rejette l’adéquation si supérieur à `chisquare_icdf(1,0.95)` qui vaut `3.84145882069` or `chisquare_icdf(1,1-alpha)` si alpha!=5%.
On tape :

`chisquaret(ranv(1000,binomial,10,.5),binomial)`

On obtient :

`?`

On tape :

`chisquaret(ranv(1000,binomial,10,.5),binomial,11,.5)`

On obtient :

`?`

On régle dans la configuration graphique les valeurs de `class_min` et de `class_dim` à -2 et 0.25 et on tape :

`L:=ranv(1000,normald,0,.2)`
`chisquaret(L,normald)`

Ou on tape :

`chisquaret(L,normald,classes,-2,.25)`

On obtient par exemple :

`3.7961112714`

avec en vert le résumé du test :
Densité normale, estimation de la moyenne et de l’ecart-type par les données0.00109620704977 0.201224413347
Adéquation d’un échantillon à `normald_cdf(.00109620704977,0.201224413347)`, résultat du test du Chi2 3.7961112714,
On rejette l’adéquation si supérieur à `chisquare_icdf(4,0.95)` qui vaut `9.48772903678` ou `chisquare_icdf(4,1-alpha)` si alpha!=5%.
Vérifions :
On tape :

`size(classes(L))`

Ou on tape :

`size(classes(L,-2,.25))`

On obtient par exemple :

`6`

On tape :

`C:=classes(L)`

Ou on tape :

`C:=classes(L,-2,.25)`

On obtient par exemple :

`[[(-0.75) .. -0.5,3],[(-0.5) .. -0.25,113],[(-0.25) .. 0,382],[0 .. 0.25,393],[0.25 .. 0.5,102],[0.5 .. 0.75,7]]`

On a bien : n=3+113+382+393+102+7=1000
On compare cette distribution empirique L à une distribution théorique d’effectifs e1,..,ek (si chaque valeur xj est obtenue avec la probabilité théorique pj on a ej=npj).
Calculons la valeur d2 de la statistique :
D2=∑j=1k(nj−ej)2/ej
On estimer les paramètres µ et σ à partir de l’échantillon (µ par la moyenne m de l’échantillon et σ par s√n/n−1 où s est l’écart-type de l’échantillon et n vaut ici 1000) :
On tape :

`mu:=mean(L);s:=stddev(L)`

On obtient par exemple :

`0.00109620704977,0.201123775974`

On tape :

`sigma:=s*sqrt(1000/999)`

On obtient par exemple :

`0.201224413347`

On tape :

`p1:=normal_cdf(mu,sigma,-0.75,-0.50)`

On obtient :

`0.00628817561212`

On tape :

`p2:=normal_cdf(mu,sigma,-0.5,-0.25)`

On obtient :

`0.0996616023075`

On tape :

`p3:=normal_cdf(mu,sigma,-0.25,0)`

On obtient :

`0.391782175726`

On tape :

`p4:=normal_cdf(mu,sigma,0,0.25)`

On obtient :

`0.394119790487`

On tape :

`p5:=normal_cdf(mu,sigma,0.25,0.5)`

On obtient :

`0.101472226962`

On tape :

`p6:=normal_cdf(mu,sigma,0.5,0.75)`

On obtient :

`0.00648235374944`

On calcule la valeur d2 de la statistique D2, on tape :

`P:=[p1,p2,p3,p4,p5,p6]:;`
`sum((C[k,1]-P[k]*1000)```^```2/(P[k]*1000),k=0..5)`

On obtient bien :

`3.79611127141`