R EVUE DE STATISTIQUE APPLIQUÉE
D OMINIQUE L ADIRAY B ENOÎT Q UENNEVILLE
La précision des logiciels statistiques
Revue de statistique appliquée, tome 52, n
o2 (2004), p. 5-25
<http://www.numdam.org/item?id=RSA_2004__52_2_5_0>
© Société française de statistique, 2004, tous droits réservés.
L’accès aux archives de la revue « Revue de statistique appliquée » (http://www.sfds.asso.fr/publicat/rsa.htm) implique l’accord avec les condi- tions générales d’utilisation (http://www.numdam.org/conditions). Toute uti- lisation commerciale ou impression systématique est constitutive d’une in- fraction pénale. Toute copie ou impression de ce fichier doit contenir la présente mention de copyright.
Article numérisé dans le cadre du programme Numérisation de documents anciens mathématiques
http://www.numdam.org/
LA PRÉCISION DES LOGICIELS STATISTIQUES
Dominique
LADIRAY(*),
Benoît.QUENNEVILLE (**) (**)
( *)
Statistique
Canada, Division desdonnées fiscales ( * *) Statistique
Canada, Division des méthodesd’enquêtes
entreprisesRÉSUMÉ
Cet article
présente
uneméthodologie complète,
basée sur un ensemble dejeux
d’essais certifiés, permettant d’évaluer laprécision
d’unlogiciel statistique.
Ces tests portent sur les outils de base du statisticien :statistiques descriptives simples, analyse
de la variance,régression
linéaire et non linéaire et
générateurs
de nombres aléatoires. Les résultats obtenus parplusieurs logiciels réputés
(SAS, SPSS,Splus,
Excel, Gauss, Mathematica,Jump,
Stata et TSP) sontprésentés
etcomparés.
Leslogiciels statistiques
se révèlent dequalité
très variable et certainsd’entre eux
présentent
des faiblesses surprenantes.Mots-clés : Précision, Jeux d’essais, Générateurs de nombres aléatoires, Test de
logiciel statistique.
ABSTRACT
This article presents a
complete methodology,
based on a set of certified benchmarks,to evaluate the accuracy of statistical softwares. These tests focus on basic statistical tools :
descriptive
statistics,analysis
of variance, linear and non linearregression,
and random number generators. These tests areapplied
to some famous statistical softwares (SAS, SPSS,Splus,
Excel, Gauss, Mathematica,Jump,
Stata and TSP) and the results arecompared. Quality
variesa lot from one statistical software to the other and some software present very
astonishing
weaknesses.
Keywords : Accuracy,
Benchmarks, Random number generators, Statisticalsoftware
testing.Introduction
Quel
statisticien oseraitaujourd’hui
se passer d’unlogiciel
pour faire sescalculs,
dusimple
tableau croisé à larégression
non linéaire sous contraintes laplus complexe ?
Aucun sans doute et chacun a son
logiciel,
sonoutil, préféré.
Les critères de choix d’unlogiciel statistique
sont variés : leprix,
la facilitéd’apprentissage,
lespossibilités, l’ergonomie,
ladocumentation,
les« jolis graphiques
», lamaintenance,
laportabilité,
les
bibliothèques
de « programmes utilisateurs »disponibles
et réutilisables etc.Parmi toutes les
qualités souhaitables,
il y en a unequi paradoxalement
semblepeu
présente
àl’esprit
de nombreuses personnes : la fiabilité desalgorithmes
etla
précision
des résultats.Depuis quelques années,
sousl’impulsion
de statisticienscomme
McCullough, Vinod,
Knüsel etc., laquestion
de laprécision
deslogiciels
arefait surface et des
protocoles
de tests ont été élaborés pour l’évaluer.Nous
présentons
dans cet article les résultats dequelques
testssimples
pour deslogiciels réputés
commeSAS, Gauss, Excel, TSP,
Mathematica etc. Ces résultats montrent que leslogiciels
sont dequalité
variable et que certains « monstres »présentent
des lacunes biensurprenantes
et bieninquiétantes.
La
première partie
de cet article concerne les tests et laméthodologie
mis aupoint
pourjuger
de laprécision
deslogiciels statistiques.
Dans la secondepartie,
leslogiciels
sontcomparés
en fonction de leurs résultats pour desopérations simples
comme le calcul de moyennes, de
variances,
de coefficients decorrélation, d’analyse
de la variance à un facteur et de
régression
linéaire par moindres carrés. Les résultats de tests sur laqualité
desgénérateurs
de nombres aléatoires sont aussiprésentés.
Dansune troisième
partie,
nous verrons comment lesperformances
d’unlogiciel
varientdans le
temps,
augré
des versionssuccessives,
mais aussi dans lelogiciel même,
enfonction des instructions utilisées.
1. Tester la
précision
d’unlogiciel statistique
Dire que la
question
de la fiabilité desalgorithmes statistiques
nepréoccupe
pas les statisticiens serait à l’évidence
faux 1 . Chaque année,
des dizaines d’articlessur ce thème sont
publiés
dans des revuesspécialisées
et descongrès
tel COMPSTAT rassemblent des centaines de personnes. Demême,
de nombreuxanalystes
de donnéesont vécu cette
étrange expérience qui
consiste à faire la mêmeanalyse
sur desmachines
différentes,
sur deslogiciels
différents ou sur des versions différentes du mêmelogiciel,
et à obtenir des résultatsdifférents 2 .
Un nombrerespectable
de cesmêmes personnes sait que le
problème
vient essentiellement de lareprésentation
desnombres en machines
qui
entraîne desarrondis,
des troncatures etc.Mais,
d’un autrecôté,
les statisticiens font une confianceaveugle
à leurlogiciel,
croyant que « les
entreprises
delogiciels statistiques font
subir des testsintensifs
àleurs
produits
pour s’assurer que lesalgorithmes
mis en0153uvre font
descalculs précis » (SAS Institute, [22]).
Comme nous le verrons, cetteprofession
de foi estquelque
peuexagérée.
Les articles
présentant
et évaluant leslogiciels
sont assez nombreux mais font rarement allusion à laprécision
de ceslogiciels. Ainsi, après
avoir examiné de 1990 à 1997 les numéros decinq journaux publiant régulièrement
de telsarticles, McCullough
et Vinod([17])
constatèrent que 3 articles seulement sur 120 s’enpréoccupaient.
1 Bien avant les ordinateurs, les statisticiens se sont appliqués à mettre au point des algorithmes simples
et efficaces. On peut par exemple citer les moyennes mobiles de Spencer (1904, [24]) ou les travaux précurseurs des soeurs Maballée (1925, [11]) sur les algorithmes permettant de calculer des estimateurs linéaires sans biais.
2 Il est des cas, très particuliers, où vous pouvez obtenir des résultats différents sans que ce soit inquiétant.
Ainsi, en analyse factorielle, le fait que le premier vecteur propre change de signe n’entraîne pas que le résultat soit différent.
Pourtant les
jeux
d’essais existentdepuis longtemps.
L’un desplus
fameux estsans doute celui de
Longley
en 1967([10]) jeu
de données réellesprésenté
au tableau1,
etqui,
à cause de la forte collinéarité existant entre lesvariables,
continue à mettre à mal bon nombre de programmes derégression
linéaire.TABLEAU 1 Les données de
Longley.
Modèle yt :Wilkinson
([30])
est aussi l’auteur d’une batterie de tests trèssimples qu’il
conseille de faire passer à tout
logiciel.
Seuls ceuxqui passent
cetteépreuve
avecsuccès méritent de faire
l’objet
de testsplus poussés.
Les six variables du tableau 2 sedéduisent toutes l’une de l’autre par une
simple
transformation linéaire et la matrice des coefficients de corrélation linéaire doit donc êtrecomposée
de 1. Tout programmeen
simple précision
aura leplus grand
mal à passer avec succès cetteépreuve
sommetoute relativement banale.
TABLEAU 2
Le «
vilain fichier »
de WilkinsonSPAD
5.0,
parexemple,
a des difficultés à lire la variable Little. En ramenant le nombre de chiffres 9 danschaque
valeur à six au lieu des septinitiaux,
SPAD accepte le fichier mais calcule une matrice des corrélations biensurprenante (tableau 3)
pourun
logiciel d’analyse factorielle 3 !
1TABLEAU 3
La matrice des corrélations calculée par SPAD sur le
jeu
d’essai deWilkinson, modifié
pour la variable LittleSi des
jeux
d’essaiexistent,
il n’est pastoujours simple
de les trouver et de lesmettre en oeuvre. En
1998, McCullough ([ 14], [15])
aproposé
uneméthodologie
pour tester laprécision
deslogiciels statistiques,
en insistant sur 3aspects
essentiels :e Les
estimations,
en utilisant lesjeux
d’essai du National Instituteof Standards
and
Technology (NIST, [21 ])
pour mesurer laprécision
desprocédures
destatistique descriptive univariée, d’analyse
de la variance à unfacteur,
derégression
linéaire etnon
linéaire ;
3 Essayez aussi de compléter la matrice en dupliquant simplement les variables Little (modifiée) et Big.
La diagonale de la matrice reste égale à 1 mais le coefficient de corrélation de Little (respectivement Big) avec elle-même est « égal » à 1.34 (respectivement 0.64) !
e La
génération
de nombresaléatoires,
en utilisant la batterie de tests DIEHARD mise aupoint
parMarsaglia ([12]) ;
e Les distributions
statistiques, qui permettent
le calcul des valeurscritiques
des tests et des
p-values,
en utilisant les programmes ELV(Knüsel, [8])
ou DCDFLIB(Brown, [2]).
Knüsel est l’auteur de nombreuses études(voir
parexemple [6], [7])
surles
performances
deslogiciels
en la matière. Sesconclusions,
que nous ne détaillerons pas dans cetteprésentation,
sont engénéral
asseznégatives
1.1.
Les jeux
d’essais du NISTLe NIST a mis à
disposition
dupublic
un ensemble dejeux
d’essai deréférence, regroupés
sousl’acronyme
StRD(Statistical Reference Datasets, [21 ] ),
et divisés enquatre
blocs :l’analyse descriptive univariée, l’analyse
de la variance à unfacteur,
larégression
linéaire par moindres carrés et larégression
non linéaire.Chaque problème
a été classé selon son niveau de difficulté -
facile,
moyen et difficile -puis
résoluavec un
grand degré
deprécision 4 .
. La suite de tests pour
l’analyse descriptive
univariée estcomposée
de9 jeux
dedonnées contenant de 3 à 5 000 observations : six
faciles,
deux de difficulté moyenne et un difficile.e La suite de tests pour
l’analyse
de la variance à un facteur estcomposée
de11
jeux
de données dont 2 sont issus de données réelles et 9 sont desproblèmes
misau
point
par Simon etLesage ([23]). Quatre problèmes
sontréputés faciles, quatre
de difficulté moyenne et trois difficiles.. La suite de tests pour la
régression
linéaire estcomposée
de 11jeux
dedonnées contenant de 3 à 82 observations : deux
faciles,
deux de difficulté moyenne etsept
difficiles. Outre les données deLongley,
cette suite contient aussi des données simuléesproposées
parWampler ([28], [29]).
e La suite de tests pour la
régression
non linéaire contient 27jeux
de donnéesde 6 à 250 observations et
impliquant
l’estimation de 2 à 9paramètres :
huitfaciles,
onze de difficulté moyenne et huit difficiles. Le NIST fournit aussi deux ensembles de valeurs pour initialiser les
algorithmes
itératifs : les valeurs « Start 1 » sont assezloin des solutions et les valeurs « Start II » au contraire très
proches.
Pour les
problèmes linéaires,
les calculs ont ainsi étéfaits,
en utilisant le FORTRANBailey (compilateur
et routinesdisponibles
surNETLIB),
et avec uneprécision
de 500 décimales. Les résultats ont ensuite été arrondis pour assurer uneprécision
de 15 chiffressignificatifs.
Pour lesproblèmes
derégression
nonlinéaire,
les calculs ont été faits en
quadruple précision
et en utilisant deux programmes du domainepublic,
différentsalgorithmes
et différentesplateformes.
Les résultats ontensuite été arrondis à 11 chiffres
significatifs.
4 Chaque problème n’admet qu’une et une seule solution. Dans certains cas, la solution exacte peut être calculée analytiquement ; dans d’autres cas, le recours à un algorithme est nécessaire.
La base de données StDR contient donc les
problèmes
et les solutions certifiées par le NIST. Le tableau 4 donne parexemple
les solutions certifiées pour les données deLongley.
TABLEAU 4
Valeurs
certifiées
duproblème
deLongley (voir
données au tableau1 )
Comme d’un
problème
à l’autre les valeurs desparamètres peuvent
être trèsdifférentes, McCullough ([14])
propose d’utiliser comme indicateur deprécision
lelogarithme
en base 10 de l’erreur relative(LRE)
ou absolue(LAR) :
LRE
= A = 2013 logio[!9 2013 ci/Ici]
si c est non nul etLAR = 2013 logio[!(?!]
sinon.Dans ces
expressions, q
est la valeur estimée et c la valeur certifiée. Parexemple,
le R2 duproblème
deLongley
calculé par laprocédure
REG de SAS 8.2 est0.995 479 004 577 370. Le LRE associé sera donc :
ce
qui correspond
bien à 13 chiffres corrects.Pour que le LRE soit un bon indicateur du nombre de chiffres
significatifs
exacts, il faut que les
valeurs q
et c soient «proches ».
Eneffet,
si parexemple q
= 20et c =
1,
alors LRE’ =1.28 bien que la valeur calculée soit très différente. Dans cecas 5,
l’indicateur LRE sera par conventionégal
à 0.5 Par exemple
si 1 q 1 _>- 2 1 e pour
c non nul ou si|q|
1 pour c nul.1.2. Une remarque
importante
Les sociétés
développant
ou commercialisant leslogiciels statistiques
ontsouvent
relevé,
etcritiqué,
le caractère «pathologique »
desjeux
d’essais utilisés pourapprécier
laprécision
deslogiciels.
Même si cette remarque est de bonne guerre, il est facile dejustifier
la nature de ces tests :. En
général,
on ne teste pas la fiabilité d’unevoiture,
la résistance d’un matériauou de tout autre
produit,
dans des conditionsagréables !
Les normes de sécurité sont souvent sévères etreposent
sur un «principe
deprécaution » légitime.
e Les
jeux
d’essai sont de difficultégraduée
et certains d’entre eux correspon- dent à des donnéesréelles,
à des cas rencontrés dans lapratique.
Les cas de multicollinéarité,
illustrés par lejeu
d’essai deLongley,
sont courants dans l’estimation de modèleséconométriques.
Il existe d’ailleurs de nombreuxdiagnostics permettant
de lesrepérer.
.
À l’évidence,
cesjeux
d’essai ne seraient d’aucun intérêt si tous leslogiciels
les résolvaient aisément ou si aucun d’entre eux ne le faisait. Les
résultats,
que nous allons commenter dans lapartie suivante,
montrent clairement que certainslogiciels pourraient
améliorer leursalgorithmes.
.
Enfin,
mêmeimprobables,
ces situations « extrêmes »peuvent
fort bien seproduire,
soit lors d’une étude parsimulation,
detype
MonteCarlo, Bootstrap
etc.,ou dans le cadre de la résolution itérative d’un
problème
non linéaire.1.3. Tester un
générateur
de nombres aléatoiresLes
générateurs
de nombres aléatoires(Random
NumberGenerators, RNG)
ontpris depuis plusieurs
années uneplace
trèsimportante
dans la recherche enstatistique
et en économétrie. Les méthodes de
ré-échantillonage
comme leBootstrap,
les étudespar
simulation,
les méthodes de validation croisée sont deplus
enplus
utilisées etreposent
par nature sur l’utilisation d’un bongénérateur
de nombres aléatoires. Laquasi-totalité
desgénérateurs
de nombres uniformes actuellementdisponibles
dans leslogiciels statistiques
sont desgénérateurs
à congruence linéaire(LCG)
pourlesquels
les valeurs
produites reposent
sur uneéquation
dutype :
Un
générateur
LCG est donc défini par 2 constantes, a et c, un module m et unevaleur initiale
Xo.
Le choix de c et m détermine lapériode
p dugénérateur,
c’est-à-dire le nombre
d’appels
maximal que vous pouvez faire avant que legénérateur
necommence à se
répéter.
Cettepériode
p doit évidemment être laplus grande possible
tant les nouvelles méthodes
statistiques
sontgourmandes
en nombres aléatoires.Ainsi l’étude de McKinnon
(citée
parMcCullough [14])
sur les tests de racine unité(McKinnon, [19])
a nécessitéplus
de 100 milliards de nombres aléatoires. Knuth([9])
estime que le nombre maximal
d’appels
augénérateur
ne devrait pas excéderp/ 1000,
ce
qui
dans ce cas, aurait nécessité ungénérateur
depériode supérieure
à2 46
Par nature, les LCG
produisent
desséquences
de nombresqui
s’avèrentcorrélées dans des espaces de dimension k
plus
ou moins élevée selon legénérateur (Marsaglia, [13]).
Cephénomène
est illustré par legraphique
1 où estreprésentée,
endimension
3,
uneséquence
de nombresgénérés
par le vieux(et déplorable) générateur
RANDU
qui équipait
tous les grossystèmes
IBM 360.FIGURE 1
Séquence
de nombresgénérés
parRANDU,
en dimension 3. Enprincipe,
le cube devrait être
uniformément
«rempli »
cequi
semble être le cassur le
graphique
degauche.
Mais, enchangeant d’angle
de vue, on découvreune structure
régulière inquiétante (graphique
dedroite).
Tester un
générateur
de nombres aléatoires n’est pas chose facile. Heureuse- ment, il suffit engénéral
de tester lesgénérateurs produisant
des nombres distribués uniformément entre 0 et 1 dans la mesure où laplupart
des autres lois s’en déduisent.L’une des difficultés tient au fait que les créateurs et distributeurs de
logiciels
sontcurieusement très discrets sur le
type
degénérateur
utilisé.Ainsi,
SAS([22])
donne lemodule de son
générateur
RANUNI(231 - 1)
et cite un article de Fishman et Moore([5]),
sans donnerplus
de détail. Demême, la
documentation enligne
deS-plus
faitréférence à un
générateur
«Super-Duper
modifié » sans en direplus.
En
1996, Marsaglia ([12])
a mis aupoint
le programme DIEHARDqui
vérifiele caractère aléatoire d’une
séquence
denombres,
àpartir
d’une batterie de 18 testsstatistiques.
Ces tests, et leurinterprétation,
sont décrits en détail dans la documentation du programme ; certains d’entre eux sont aussi décrits dans Knuth([9]).
2.
Comparaison
desperformances
deslogiciels
2.1. Sources et
méthodologie
Cette
partie présente
les résultats obtenus par degrands logiciels
aux tests duNIST et DIEHARD. Les sources sont nombreuses : articles
publiés
dans des revues,résultats trouvés sur les sites même des
logiciels,
résultats de tests menés par les élèves de l’ ENSAE dans le cadre du cours «Logiciels Statistiques »,
propres calculs des auteurs et de leurs amis etc.Cette diversité des sources est en soi une faiblesse. En
effet,
la machine surlaquelle
vous effectuez les tests, et enparticulier
son processeur, a une influence surles résultats
numériques
mêmes.Néanmoins,
laquasi
totalité de ces tests a été réaliséesur des PC à processeur Pentium et les vérifications que nous avons faites conduisent à des résultats
cohérents,
à lapremière
décimaleprès.
Certains tests sont encore en cours, notamment pourprendre
encompte
les versions lesplus
récentes deslogiciels.
Les
logiciels
testés et les sources sont les suivants :e Excel 2000 et XP : les tests ont été faits par
McCullough
et Wilson([18])
etvérifiés par nous mêmes.
2022 Stata 6 : les résultats sont
disponibles
sur le site de Stata([25]).
2022 SAS 6.12 et 8.2 : les tests ont été faits en
grande partie
parnous-mêmes,
àl’exception
de ceux relatifs auxrégressions
non-linéaires faits pour SAS 6.12 parMcCullough ([15]).
SAS donne aussiquelques résultats,
cohérents avec noscalculs,
sur son site
([22]).
e JMP 5.0 : les tests sont
disponibles
sur le site de JMP( [3] ).
L’article de Altman( [ 1 ] )
donnant des résultats pour une version antérieure est fortement contesté par JMP(avec
raison selon nos propresvérifications).
2022 TSP 4.4 : les tests sont
disponibles
sur le site de TSP([26]).
2022 Mathematica 4 : les tests ont été faits par
McCullough ([16]),
Nerlove([20])
et vérifiés par nous-mêmes.
2022 Gauss 3.2.37 : les tests ont été faits par Vinod
([27]).
2022
S-plus
4.0 : les tests ont été faits parMcCullough ([ 15]).
2022 SPSS 7.5 : les tests ont été faits par
McCullough ([15]).
Le nombre de résultats
générés
par lesproblèmes
duNIST,
à traiter et àcommenter est très
important.
Parexemple, chaque problème
derégression produit
un tableau
d’analyse
de la variance et les estimations etécart-types
desparamètres.
Nous nous sommes donc restreints à
quelques statistiques
de base pourlesquelles
lenombre de chiffres
significatifs
exacts a été calculé. Plusprécisément :
e Pour les
problèmes
destatistique univariée,
la moyenne,l’écart-type
et lecoefficient d’autocorrélation d’ordre 1 ont été conservés.
. Pour les
problèmes d’analyse
de lavariance, qui
sont des casparticuliers
derégression linéaire,
nous nous sommes concentrés sur lastatistique
de Fisher.e Pour les
problèmes
derégression linéaire,
nous nous sommes intéressés à l’estimation desparamètres
et à laprécision
de ces estimations. Dans ce cas, nous avonsreporté
dans les tableaux le LRE obtenu pour l’estimation la moinsprécise
desparamètres
du modèle.e Le tableau sur les
problèmes
non linéairesprésente
le LRE obtenu pour l’estimation la moinsprécise
desparamètres
du modèle.TABLEAU 5
Résultats des
différents logiciels
sur lesproblèmes
univariés(valeurs
deLRE) (valeur
maximale du LRE :15)
ns : SAS et SPSS demandent au moins 3 valeurs pour faire le calcul.
2.2.
Performances
deslogiciels
sur lesproblèmes
du NISTTout
d’abord,
une nouvelle rassurante : unlogiciel
réussit le scoreparfait
surles 58
problèmes
du NIST. Ils’agit
de Mathematica(nous
avons testé la version4.0),
à condition d’utiliser deuxoptions
dulogiciel qui permettent
d’améliorer assez nettement laprécision
des calculs :e La commande «
$MinPrecision
= n » où n est le nombre de chiffressignificatifs souhaité,
e La commande « Rationalize »
qui permet
dedistinguer
entre des nombres réels et des nombres rationnels.Dans les
tableaux,
Mathematicaapparaîtra
donc sous deux formes :(A)
avecles
options
par défaut et(B)
avec lesoptions
ci-dessus.2.2.1. Les
statistiques
univariéesLes résultats sont
présentés
dans le tableau 5. Tous leslogiciels
testés ontpassé
avec succès
l’épreuve
du calcul de la matrice des corrélations du « vilain fichier » de Wilkinson(tableau 2).
2022 Tous les
logiciels
testés calculent correctement les moyennes.2022 Excel XP a
quelques problèmes
sur le calcul desécart-types,
les autreslogiciels
réussissant desperformances
très voisines.e Pour le calcul des coefficients
d’autocorrélation,
les choses segâtent
unpeu. Les mauvais résultats affichés par Excel XP
pourraient
venir d’une définition différente du coefficient d’autocorrélation. Ce n’est pas le cas pour SPlus et SPSSqui
obtiennent des résultats vraiment « très moyens ». Laréponse
deSplus
à cesproblèmes
est assez amusante : « The article tested the S-PLUS autocorrelationprocedure "acf",
which usessingle precision and produces
about7 digits of accuracy.
The correlation
procedure
"cor" in S-PLUS 4.0 and later usesdouble-precision
andextremely
accuratealgorithms.
». En d’autres termes, si vous voulez calculer uneautocorrélation,
n’utilisez pas la commandequi
calcule ces autocorrélations !2.2.2.
Analyse
de la varianceLes
résultats, présentés
dans le tableau6,
montrent uneplus grande
diversitédans la
qualité
deslogiciels.
Excel et SPSS ne réussissent à traiter que lesproblèmes faciles,
les autreslogiciels ayant
des difficultés avec les 3problèmes
lesplus
difficilesde Simon et
Lesage.
SAS et Stata ont desperformances légèrement supérieures
àcelles des autres
logiciels.
Néanmoins,
si on compare cesperformances
aveccelles, parfaites,
de Mathe-matica,
on est amené à conclure que lesalgorithmes
mis en oeuvre par tous ceslogiciels
sont de
qualité
bien insuffisante.2.2.3.
Régression
linéaireDans ce domaine
(voir
tableau7),
lasurprise
vient dulogiciel
Gaussqui,
pourun
logiciel prisé
par leséconomètres,
réussit desperformances
assezmédiocres,
inférieures à celles de Excel !
Les
logiciels
ont tous, àl’exception
deSPlus,
de grosses difficultés à traiter lejeu
de données
Filippelli qui présente
un cas de très forte colinéarité. Il est étonnant de constater une telle variété dans lesrésultats,
variétéqui
traduit celle desalgorithmes
utilisés. De
façon générale,
si on compare encore les résultats obtenus à ceux deMathematica,
force est de constater que lesdéveloppeurs
ont encore bien desprogrès
à faire.
2.2.4.
Régression
non linéaireLes
problèmes
non linéaires du NIST sont lesplus
difficiles à résoudre et lesplus sujets
à controverse. Il existe en effet souventplusieurs procédures disponibles
dans les
logiciels
pour les traiter etchaque procédure possède
engénéral
une multituded’options.
Il est ainsipossible
de discuter les résultats obtenus eninvoquant,
dans telcas
particulier,
l’utilisation de telleoption
ou de telle valeur duparamètre.
Les résultatsdes tests sont
présentés
dans le tableau 8. LaFigure
2 en donne uneprésentation plus synthétique.
Ce
graphique
traduit lesperformances
médiocres de Gauss et, aucontraire,
lebon score de
JMP,
unlogiciel d’analyse exploratoire
apriori
peuspécialisé
dans cesproblèmes.
TABLEAU 6
Résultats des
différents logiciels (valeurs
deLRE)
sur lesproblèmes d’analyse
de la variance
(statistique
deFisher).
(valeur
maximale du LRE :15)
miss : résultat mis à valeur manquante par le logiciel
TABLEAU 8
Résultats des
différents logiciels (valeurs
deLRE)
sur lesproblèmes
derégression
non linéaire. Le LREreporté
est, pourchaque problème,
celui du
coefficient
estimé avec le moins deprécision
(valeur
maximale du LRE :11)
FIGURE 2
Représentation
des résultats desdifférents logiciels
aux tests derégression
non linéaire
(boxplots
des 27 LRE pourchaque logiciel)
2.3. Les
générateurs
de nombres aléatoiresLes résultats des différents
générateurs
de nombresaléatoires,
uniformémentrépartis
entre 0 et1,
sontprésentés
dans le tableau 9. Ces tests sontplutôt
destinés àdes
générateurs ayant
unepériode supérieure
ouégale
à232, mais
un bongénérateur
de
période 231 - 1,
et ceux habituellementdisponibles
dans leslogiciels
sont de cetype,
devrait les passer avec succès.Seul le
générateur
de JMP réussit le scoreparfait. Mathematica, SAS,
SPSS ont desgénérateurs
correctsqui pourraient
néanmoins être améliorés. Lesgénérateurs
deGauss et Excel sont
simplement
obsolètes.JMP
([4])
utilisedepuis
sa version 4.0.5 unalgorithme
deMersenne-Twister,
depériode 219 937 - 1,
manifestementsupérieur
aux autresgénérateurs.
Cequi
est
surprenant,
c’est que cesgénérateurs
sont engénéral
du domainepublic
et oncomprend
mal que leslogiciels
ne soient pas, en lamatière,
à lapointe
duprogrès.
TABLEAU 9
Résultats des
différents générateurs
aux tests deMarsaglia (DIEHARD)
3. Variations autour d’un même
logiciel
Même si vous choisissez un « bon »
logiciel,
vous n’êtes pas à l’abri de certainessurprises.
Eneffet,
il existe souventplusieurs
commandespermettant
de calculer unemoyenne, une
variance,
une droite derégression
etc. Et engénéral
lesalgorithmes,
etdonc la
précision
desestimations,
varient d’une commande à l’autre. Parailleurs,
lesalgorithmes
peuvent évoluer d’une version à l’autre d’unlogiciel ;
leplus
souvent, ils sont améliorés ... mais pastoujours !
3.1.
Différentes commandes, différentes qualités
Il est ainsi
surprenant
de constater que desalgorithmes simples,
calcul devariance ou de droite de
régression
parexemple, peuvent
varier assez fortement selon la commande que vous utilisez. C’est le cas, dans la version SAS8.2,
pour lesprocédures
MEANS et UNIVARIATE. Le tableau 10 illustre cette différence deprécision.
TABLEAU 10
Précision du calcul de
l’écart-type (valeurs
deLRE)
dans lesprocédures
MEANS et UNIVARIATE de SAS 8.2(valeur
maximale duLRE:15)
Le tableau 11 illustre le même
phénomène,
pour larégression
linéaire dans SAS8.2,
encomparant
lesprocédures REG,
ORTHOREG et IML. Laprocédure
ORTHOREG est sensée être
plus adaptée
dans les cas où les données sont « difficiles », parexemple
dans le cas de forte colinéarité. Defait,
laprécision
estglobalement
meilleure sur les
problèmes
du NIST.Dans le module
IML,
vous pouvez directement programmer les résultats d’unerégression
linéaire. Usuellement le statisticien ou économètre va directement traduire les formulesmathématiques,
enécrivant,
parexemple
pour les estimations desparamètres
du modèle :Comme le montrent les résultats du tableau
11,
les résultats obtenus seront deprécision
moindre. C’est unerègle générale : l’algorithmique
est un métier et il estpratiquement impossible
d’écrire sans formation un bonalgorithme.
Enparticulier,
l’utilisation directe d’une formule
mathématique
pour calculer uneexpression
est trèsrarement une manière efficace de
procéder.
De même Nerlove
([20])
constate que le modulestatistique développé
par NAG pourcompléter
Excel(les
fameux « add ins»),
ne donne pas des résultats bien meilleursqu’Excel
lui même. Vinod([27])
fait la même remarque pour Gauss.TABLEAU 11
Précision de la
régression
linéaire(valeurs
deLRE)
dans lesprocédures REG,
ORTHOREG et IML de SAS 8.2(valeur
maximale duLRE:15)
3.2. Versions
différentes, qualités différentes
Les articles sur la
précision
deslogiciels
commencent à avoir desrépercussions
assez
positives
sur laqualité
deslogiciels.
AinsiJMP, Stata,
TSPprésentent
sur leursite web les résultats de leur
logiciel
aux différents tests. La référence à ces tests et lapublication complète
des résultats est souvent un gage dequalité
dulogiciel
et, acontrario,
l’absence de référence à ces tests devrait inciter à une certaine méfiance.En
général,
lesalgorithmes
deslogiciels
tendent à s’améliorer d’une version àl’autre, parfois
très nettement. C’est le cas de laprocédure
ANOVA de SASqui,
entreles version 6.12 et
8.2,
a étécomplètement
revue, comme le montrent les résultats du tableau 12.TABLEAU 12
Précision de la
procédure
ANOVA(valeurs
deLRE)
dans SAS 6.12 et SAS 8.2(valeur
maximale duLRE :15)
Ce n’est malheureusement pas
toujours
le cas.Ainsi, McCullough
et Wilson([18]) regrettent
que Microsoft n’aitapporté
aucune amélioration auxalgorithmes statistiques
de Excel : les résultats obtenus par celogiciel
sont les mêmes dans les versions97,
2000 et XP. Ils sont par ailleursparticulièrement
sévères sur lescorrections
apportées
augénérateur
de nombres aléatoires distribués selon une loi normale.4. Conclusion
Les différents
jeux
d’essai duNIST,
les données deWilkinson,
les tests DIEHARD mis aupoint
parMarsaglia
pour lesgénérateurs
de nombres aléatoireset ceux de Knüsel pour les distributions
statistiques
ontpermis
de définir un cadreméthodologique
standard d’évaluation et decomparaison
de laprécision
deslogiciels statistiques.
Les diverses
expériences
faites montrent que leslogiciels statistiques
sont dequalité
assez variable : le critère «précision
des calculs » doit être sérieusementpris
en
compte
lors du choix d’unlogiciel.
Mathematica est le seullogiciel
réussissant un scoreparfait
surles jeux
d’essai du NIST. Excel et Gauss sont, acontrario,
leslogiciels
testés
présentant
les résultats lesplus
décevants. Ce n’est en soi pas trèsinquiétant
pour Excelqui
n’est pas unlogiciel statistique proprement
dit. Aucontraire,
Gauss est trèspopulaire auprès
des économètres et on nepeut
ques’inquiéter
de sesperformances
assez décevantes en
régression.
Ces
jeux
d’essai tendent à devenir des standardsauxquels
les meilleurslogiciels
n’ hésitent
plus
à faire référence sur leurs sites internet.Indubitablement,
ils entraînent aussi une amélioration de laqualité
desalgorithmes
et desgénérateurs
de nombresaléatoires.
Référence
[1]
ALTMAN M.(2003),
« A Review of JMP 4.03 withSpecial
Attention to itsNumerical
Accuracy
», AmericanStatistician,
vol.56,
pp. 72-75.[2]
BROWN B. W.( 1998),
« DCDFLIB v1.1» (Double precision
Cumulative Dis- tribution FunctionLIBrary), disponible sur ftp://odin.mdacc.tmc.edu/pub/source.
[3]
CREIGHTONL.,
DINGJ.,
«Assessing
the NumericalAccuracy
ofJMP », disponible
surhttp ://www.jmp.com/product/NIST.pdf
[4]
CREIGHTONL.,
«Assessing
Random Numbers inJMP », disponible
surhttp ://www.jmp.com/product/RNG.pdf
[5]
FISHMAN G.S.,
MOORE L. R.(1982),
« A Statistical Evaluation of Mul-tiplicative Congruential
Generators with Modulus(231 - 1)
», Journalof
theAmerican Statistical
Association, 77,
129-136.[6] KNÜSEL
L.(1998),
« On the accuracy of statistical distributions in Microsoft Excel 97 »,Computational
Statistics and DataAnalysis, 26,
pp. 375-377.[7] KNÜSEL
L.(1995),
« On the accuracy of statistical distributions in Gauss »,Computational
Statistics and DataAnalysis, 20,
pp. 699-702.[8] KNÜSEL
L.(1989),
«Computergestützte Berechnung
Statistischer Verteilun- gen »,Oldenburg,
München-Wien. Une versionanglaise
du programme estdisponible
sur www.stat.uni-muenchen.de/~knuesel/elv.[9]
KNUTH D.E.(1997),
The Art ofComputer Programming, Addison-Wesley.
[10]
LONGLEY J. W.(1967),
« AnAppraisal
ofComputer Programs
for theElectronic
Computer
from the Point of View of the User », Journalof
theAmerican Statistical
Association, 62,
pp. 819-841.[11] MABALLÉE
Colette et Berthe( 1925), « Algorithms
and Best Linear Unbiased EstimatorS », Journalof the
StatisticalSociety of Dublin,
vol.49,
pp. 469-475.[12]
MARSAGLIA G.(1996), «
DIEHARD : ABattery
of Tests of Randomness »,http ://stat.fsu.edu/pub/~diehard.
[13]
MARSAGLIA G.(1968),
« Random Numbers FallMainly
in the Planes », inProceedings of
the NationalAcademy of Sciences of
theUSA, 60,
pp. 25-28.[14]
McCULLOUGH B.D.(November 1998),
«Assessing
thereliability
of statis-tical software : Part I », The American
Statistician,
vol.52,
n°4,
pp. 358-366.[15]
McCULLOUGH B. D.(May 1999),
«Assessing
thereliability
of statistical software : Part II », The AmericanStatistician,
vol.53,
n°2,
pp. 149-159.[16]
McCULLOUGH B. D.(2000), «
TheAccuracy
of Mathematica 4 as a statisticalpackage
»,Computational Statistics,
vol.15.0,
pp. 279-299.[17]
McCULLOUGH B.D.,
VINOD H. D.(1999), «
The NumericalReliability
ofEconometric Software », Journal
of
EconomicLiterature,
vol.XXXVII,
pp.633-665.
[18]
McCULLOUGH B. D., WILSON B.(2002),
« On the accuracy of statisticalprocedures
in Microsoft Excel 2000 and XP »,Computational
Statistics & DataAnalysis,
vol.40, 3,
pp. 325-332.[19]
McKINNON J. G.(1996),
« Numerical Distribution Functions for Unit Root andCointegration
tests », Journalof Applied Econometrics, 11,
pp. 601-618.[20]
NERLOVE M.(2001),
« On the numerical accuracy of Mathematica 4.1 fordoing ordinary
least squaresregression
»,Manuscript, AREC, University
ofMaryland.
[21]
NIST(1998),
« StRD : Statistical Reference Datasets forAssessing
theNumerical
Accuracy
of Statistical Softwares »,disponible
surhttp ://www.nist.gov/itl/div898/strd.
[22]
SASInstitute,
«Assessing
the NumericalAccuracy
of SAS Software »,disponible
surhttp ://www.sas.com/rnd/app/papers/statisticalaccuracy.pdf [23]
SIMON S.D.,
LESAGE J. P.(1989), « Assessing
theAccuracy
of ANOVA Cal-culations in Statistical Software »,
Computational
Statistics & DataAnalysis,
8,
pp. 325-332.[24]
SPENCER J.(1904),
« On thegraduation
of rates of sickness andmortality
»,Journal
of
the Instituteof Actuaries,
vol. 38.[25] Stata,
StatisticalSoftware,
résultats des testsdisponibles
surhttp ://www.stata.com/support/cert/
[26]
TSPInternational, Benchmarks,
http ://www.tspintl.com/products/tsp/benchmarks/index.htm
[27]
VINOD H. D.(2000), «
Review of Gauss forWindows, Including
its NumericalAccuracy
», Journalof Applied Econometrics,
vol.15.0,
pp. 211-220.[28]
WAMPLER R. H.(1970),
« AReport
on theAccuracy
of SomeWidely-
Used Least
Squares Computer Programs
», Journalof
the American StatisticalAssociation, 65,
pp. 549-565.[29]
WAMPLER R. H.(1980),
« Test Procedures and Test Problems for LeastSquares Algorithms
», Journalof Econometrics, 12,
pp. 3-22.[30]
WILKINSON L.(1985),Statistics Quiz, Evanston,
IL : SYSTATInc., (dispo-
nible sur