Méthodes basiques en statistiques sous R

publicité
Méthodes basiques en statistiques
sous R
Master II Modélisation Aléatoire - Paris VII
Enseignant : Mme Picard
Sébastien Le Berre
12 mai 2011
R est un logiciel de calcul largement utilisé par la communauté scientifique mais
également par certaines entreprises car il est à la fois très puissant et gratuit. L’un de ses
principaux atouts est la plateforme de téléchargement de packages (ensemble de fonctions)
qui lui est associée et qui est disponible sur le site cran.r-project.org. Ces packages sont, tout
comme le logiciel lui-même, mis à la disposition de tous si bien que l’utilisateur pourra mettre
à jour l’ensemble des fonctions dont il a besoin au gré des dernières découvertes. En effet,
beaucoup de papiers de recherche ou de thèses sont implémentés en R et les codes sont
souvent rendus publics. En revanche, il conviendra de vérifier le contenu de ces-derniers car il
peut s’agir de codes fonctionnant pour un type de données en particulier où les cas généraux
n’auront pas été pris en compte. Finalement pour le situer dans le paysage des autres éditeurs,
on pourra dire qu’il est plus rapide et beaucoup moins lourd que VBA, moins puissant que
C++ mais il a l’avantage de ne pas demander une gestion de la mémoire aussi laborieuse, et
tout à fait similaire à Matlab mais gratuit d’où l’éventuelle présence d’erreurs dans les
packages contrairement aux librairies commerciales de Matlab.
Le but de cette introduction est de présenter les objets qui sont généralement utilisés dans les
codes de tests statistiques ou de méthodes financières, la façon dont on peut construire un
code fonctionnel, mais aussi l’utilisation de l’interface d’aide et le téléchargement de
nouveaux packages qui permettent d’améliorer les codes et de gagner beaucoup de temps.
Première partie : présentation du codage en R
1. Présentation des objets
Les objets que l’on manipule sous R que ce soit dans les calculs ou dans les fonctions sont
décrits par leur structure et le type de données qu’ils contiennent. On aura par exemple des
vecteurs de chaîne des caractères, des tableaux de valeurs numériques... nous présenterons ici
les objets les plus fonctionnels que sont les vecteurs, les tableaux et les listes.
-
Les vecteurs :
Ils peuvent contenir des données de type valeurs numériques, chaîne de caractères ou
indicateur logique (ou encore des nombres complexes mais ils sont surtout utilisés en
physique). Ce ou est exclusif : un vecteur ne peut pas contenir plusieurs type de
données à la fois : s’il y a une valeur numérique, alors il n’y a que ça, les mélanges
chaîne de caractères valeurs numériques sont impossibles.
Les vecteurs contenant des valeurs numériques sont les plus simples à manipuler et
peuvent se construire de la façon suivante :
Les vecteurs de type caractère se construisent également directement ou par
boucle mais ne peuvent évidemment pas faire d’opérations numériques.
Enfin, les vecteurs de type logique, permettent de récupérer les données d’un objet qui
vérifient certaines conditions :
-
Les tableaux :
Les tableaux de données généralisent le cas des vecteurs dans la mesure où si le
tableau n’à qu’une dimension il s’agira d’un vecteur avec les mêmes propriétés. Les
tableaux sont donc de dimension n>0 et ne contiennent qu’un unique type de données :
numérique, caractère ou logique.
On les crée de la même manière que les vecteurs puisque s’intéresser à une seule de
ses dimensions (les autres étant fixées) revient à s’intéresser à un vecteur :
Les tableaux de chaines de caractères ou d’indicateur logique sont de la même manière
à considérer comme un assemblage de vecteurs de ce type sur plusieurs dimensions.
-
Les listes :
Leur avantage est de pouvoir recenser des valeurs de types différents, utiles pour les
outputs de fonctions ou pour décrire des objets comme des Etats : population (type
numérique), nom des régions (type caractère), membre de l’OTAN (type logical).
2. Syntaxe des boucles et des fonctions
-
Les fonctions :
Elles permettent de retourner un résultat que ce soit un simple réel, un tableau ou une
liste en opérant des calculs et des modifications sur les inputs spécifiés. En voici un
exemple :
-
Les boucles :
Les boucles itératives ou les conditions logiques de type « if » par exemple sont utiles
pour créer des vecteurs de données ou répéter des estimations (cas des processus
d’estimation à fenêtre glissante en finance par exemple). Le script ci-dessous présente
leur syntaxe.
3. Gestion des séries temporelles
Séries de données :
Les séries temporelles sont des séries de données caractérisées par le fait que chacune
des données est associée à une date en particulier ; l’ordre de telles séries est donc
capital. Nous montrons comment travailler avec les fonctions adaptées aux séries de
données en général avant de proposer une représentation possible des séries
temporelles.
-4
-2
0
2
4
T racé de x
x
-
0
200
400
600
800
1000
Index
Une fois que la série de donnée est créée, il est possible de lui faire subir de multiples
tests statistiques (stationnarité, normalité…) comme nous verrons par la suite, ou
encore de faire des régressions simples ou multiples. Ces fonctions étant déjà
implémentées (dans les fonctions par défaut de R ou dans des packages que l’on
pourra télécharger) il est en général facile de les utiliser, par contre il peut être délicat
de récupérer leurs outputs : R², T-stat, p-value, coefficients… Voila donc une manière
de procéder pour pouvoir récupérer les outputs des fonctions :
-
Séries temporelles :
Comme on l’a vu plus haut lors du tracé de la variable x, les valeurs en abscisse sont
les indices du vecteur (de 1 à 1000) ce qui n’est pas très explicite quand on cherche à
observer le comportement de la série sur une période donnée. On désirerait alors avoir
en abscisse non plus les indices de x, mais les dates et une manière de faire cela est
d’utiliser le package xts.
Il s’agit en premier lieu d’installer ce package dans R. La méthode pour installer
n’importe quel package consiste à le télécharger sur le site cran.r-project.org en format
zip, on click ensuite dans la barre de menu de R sur « Packages » puis sur « Installer le
package depuis le fichier zip ».
Un vecteur de type xts est un vecteur donc chaque valeur est attachée à une date en
index. Voici un script détaillant ce type de vecteurs :
-2
-1
0
1
2
3
x tracé en mode xts
janv. 01 2000
juil. 01 2000
janv. 01 2001
juil. 01 2001
janv. 01 2002
juil. 01 2002
4. Structure générale d’un script
Pour conclure cette rapide introduction à la programmation sous R, voila un exemple de la
structure qu’aura généralement un script faisant appel à des packages, important des données
et appelant la plupart des objets décrits avant.
Seconde partie : calculs statistiques
R met à disposition un certain nombre de fonctions permettant de simuler des
distributions suivant des lois aléatoires ou de calculer la fonction de répartition, la densité et la
fonction quantile associée à une variable aléatoire pour un réel donné. Si ces fonctions sont à
la base de tests statistiques elles sont en pratique rarement utilisées pour les réaliser car cesderniers sont souvent déjà implémentés dans des packages.
A. Présentation des fonctions associées à la simulation de lois aléatoires
-
Génération d’une distribution aléatoire suivant :
Une loi normale :
rnorm(taille_echantillon, mean=…, sd=…)
Une loi exponentielle :
rexp(taille_echantillon,rate=…)
Une loi gamma :
rgamma(taille_echantillon,shape,scale)
Une loi du Chi-2 :
rchisq(taille_echantillon,df)
-
Calcul de la densité de :
Une loi normale :
dnorm(x, mean=…, sd=…)
Une loi exponentielle :
dexp(x, rate=…)
Une loi gamma :
dgamma(x, shape, scale)
Une loi du Chi-2 :
dchisq(x, df)
-
Calcul de la fonction de répartition de :
Une loi normale :
pnorm(x, mean=…, sd=…)
Une loi exponentielle :
pexp(x, rate=…)
Une loi gamma :
pgamma(x, shape, scale)
Une loi du Chi-2 :
-
pchisq(x, df)
Calcul du quantile de : (0<p<1)
Une loi normale :
qnorm(p, mean=…, sd=…)
Une loi exponentielle :
qexp(p, rate=…)
Une loi gamma :
qgamma(p, shape, scale)
Une loi du Chi-2 :
qchisq(p, df)
B. Variables aléatoires gaussiennes
Les théorèmes présentés ci-dessous permettent de caractériser les distributions
résultant de transformations que l’on peut appliquer à des variables aléatoires gaussiennes.
Le théorème de Student permet de connaître les lois suivies par certaines transformations
classiques de variables gaussiennes que l’on pourra retrouver dans le cadre de calcul
d’estimateurs. A titre d’exemple, le premier élément du théorème de Student donne la loi
suivie par un estimateur ( X n ) de la moyenne des variables X i , et R n est, à une constante
multiplicative près, un estimateur de la variance de ces variables.
Le théorème de Cochran s’inscrit également dans la démarche de caractériser les distributions
issues de transformation sur des lois gaussiennes mais il s’applique à des vecteurs aléatoires.
Aussi les conclusions du théorème portent-elles sur les distributions de projections du vecteur
gaussien par des matrices vérifiant certaines conditions.
1. Théorème de Student
Soit X 1 ,..., X n , des variables indépendantes identiquement distribuées de loi commune
( m,
2
) . Alors,
n
X i / n suit une loi
Xn
a)
(m,
2
/ n)
i 1
Histogram of X_bar
150
0
50
100
Frequency
100
50
0
Frequency
150
200
200
Histogram of tab[, 1]
0
2
4
tab[, 1]
6
3.8
4.0
X_bar
4.2
4.4
On observe un écrasement de la variance lorsque n est grand comme en témoignent les deux
histogrammes avec des valeurs plus proches de la moyenne pour X n . X n est aussi un
estimateur de l’espérance des X i . Finalement, X n converge vers m lorsque n
n
b)
Rn
X n )² suit une loi
(Xi
² ²(n 1)
i 1
Allure de la distribution de R n :
150
100
50
0
Frequency
200
250
Histogram of R
60
80
100
120
R
140
160
.
c)
X n et R n sont indépendants
d) Si S n
Rn /(n 1) , alors Tn
n(X n
Sn
m)
suit une loi de Student T (n 1)
Allure de la distribution de Tn :
100
50
0
Frequency
150
200
Histogram of T
-4
-2
0
T
2
4
2. Théorème de Cochran
Soit X de loi
( , In ) .
a) Soit P1 ,..., Pk k matrices n n auto-adjointes, vérifiant
k
k
In
et
Pi
i 1
rang ( Pi )
n
i 1
Alors les matrices Pi sont des projecteurs ( Pi
Pi ²) et les variables Pi X sont des variables
mutuellement indépendantes de loi N ( Pi , Pi ) .
b) Soit Q1 ,..., Qn k formes quadratiques sur
x
n
,
x
2
n
vérifiant :
k
k
Qi ( x) et
i 1
rang (Qi )
n
i 1
Alors les variables Qi ( X ) sont mutuellement indépendantes de loi
'2
(Qi ( ), rang (Qi )) .
C. Méthode de substitution et de contrastes
Les deux méthodes présentées dans ce paragraphe sont des méthodes classiques
d’estimation.
L’avantage de la méthode de substitution est d’être assez simple à comprendre et à mettre en
œuvre, tandis que si la méthode de contrastes est plus compliquée, elle est également plus
précise.
1. La méthode de substitution
La définition d’un estimateur de substitution est la suivante :
Soit f 1 ,..., f r , r fonctions mesurables de
E f j (X )
Soit g fonction continue de
r
,
dans
, ( ) telles que pour tout
f j ( X )( ) dP ( )
, j
dans E , telle que pour tout
q( )
dans
:
1,..., r
dans
:
g ( E f1 ( X ),..., E f r ( X ))
Soit enfin la variable aléatoire :
f
1,..., r
fˆ j
1
n
n
f j (Xi )
i 1
On appelle estimateur de substitution de la quantité q( ) :
Tn
Dans le cas où r
g ( fˆ1 ,..., fˆr )
1 , en prenant pour fonction g l’identité, on voit que fˆ1 est lui-même un
estimateur de substitution de la quantité E f1 ( X ) .
De plus, si les X i sont des variables aléatoires réelles et si t un point fixé de
hypothèses sont vérifiées quel que soit l’ensemble
f 1 est bornée. Ainsi,
En voici un exemple :
1
n
en prenant f1 (u )
n
I Xi
i 1
t est un estimateur de P ( X
t) .
I
, les
, t (u ) , puisque
p 0.5782 tandis que P(X 0.2) 0.5792597 où X suit une loi N (0,1) . Cet estimateur de
substitution est donc assez proche de la valeur théorique pour un échantillon de taille
n 10000 .
2. La méthode de contrastes
Le principe utilisé dans la construction d’estimateurs par la méthode des contrastes est
la minimisation d’une fonction de contraste dont la définition est la suivante :
On appelle fonction de contraste sur
la fonction
toute fonction
telle que pour tout
:
( , ) admet un unique minimum en
.
Cette fonction peut être trouvée par l’intermédiaire d’une différence de processus de contraste
en étudiant sa convergence en probabilité. En effet : pour n ( X n , n , n , P n ,
) une
suite générale d’expériences, on appelle processus de contraste associé à la fonction de
 Un ( , X n )
contraste une suite de fonctions aléatoires adaptée à n
telle que
,
on a :
P n prob
n
n
Un ( , X ) Un ( , X )
( , )
L’idée est alors de remarquer que sous P n , U n ( , X n ) U n ( , X n ) est proche d’une fonction
de contraste, et qu’il s’agit de minimiser cette expression (et donc de minimiser U n ( , X n ) ).
Dans ce contexte, on appelle estimateur de contraste associé l’estimateur Tn
existe, est unique, et qu’il vérifie :
,
U n (Tn , X n ) U n ( , X n )
, quand il
L’un des cas particulier de cette méthode est l’estimateur des moindres carrés, il est
très fréquemment utilisé comme technique d’estimation par défaut dans les logiciels de calcul
statistique.
Les moindres carrés ordinaires s’inscrivent dans le modèle linéaire général suivant :
Y
où les
i
Y1
M 11 ...M 1 p
. ,M
Yn
.
,Y
M n1 ...M np
1
M
,
.
n
sont des variables indépendantes de même loi g connue, centrées, et qui possèdent
un moment d’ordre 2. On appelle estimateur des moindres carrées l’estimateur ˆ n
n ( ,Y )
(Yi
i 1
qui
p
n
vérifie pour
p
M ij
j
)² :
j 1
p
,
n
(Tn , Y )
n
( ,Y )
n
Finalement, remarquons que la fonction
n ( ,Y )
(Yi
( M ) i )² mesure la distance
i 1
dans
n
entre Y et sa prévision par M . On choisit donc comme estimateur de
ˆ
arg min
n
( , Y );
:
p
La méthode d’estimation par moindres carrés est celle qui est utilisée par défaut dans R pour
calculer les coefficients dans le cadre de modèles linéaire ; on fait pour cela appel à la
fonction lm :
D. Tests statistiques
La mise en œuvre des tests statistiques est souvent facilitée par le fait que les fonctions sont
disponibles soit directement dans R soit en téléchargeant un package.
1. Tests de vraisemblance
Soit
test de la moyenne d’une population gaussienne
la moyenne du n-échantillon étudié, il s’agit de tester l’hypothèse nulle :
contre l’hypothèse alternative
0
0
.
On peut procéder en réalisant un test de Student dont le principe est le suivant.
Il s’agit d’abord de calculer un estimateur ˆ de
, par la méthode des moindres carrés par
ˆ
exemple, afin de construire la statistique de test suivante t ˆ
qui suit une loi de
sd ( ˆ )
Student à n 1 degrés de liberté.
On rejette l’hypothèse nulle au niveau de confiance
P( t
c)
/ 2 ( t suivant la même loi que t ˆ ).
si t ˆ
c où c est tel que :
Le test de Student implémenté ci-dessous permet de comparer ces deux hypothèses.
La p-value est assez élevée, on peut donc accepter l’hypothèse nulle au niveau de confiance
5% selon laquelle la moyenne de l’échantillon est 0, ce qui est cohérent avec les
caractéristiques de notre distribution. On remarquera également que le paramètre de la loi de
Student est bien 99 100 1 n 1 .
-
test d’une sous-hypothèse linéaire
On considère un modèle de la forme suivante :
Yt
0
1
X t1
2
X t2
...
k
X tk
Et l’on désire savoir s’il est possible de réduire le nombre de paramètres de ce modèle en
0 par exemple contre l’hypothèse alternative H 0 est fausse. On
testant H 0 : 1
3
appellera alors modèle non restreint le modèle initial et modèle non-restreint le modèle réécrit
en tenant compte de H 0 :
Yt
0
2
X t2
4
X t4 ...
k
X tk
On procède de la même manière que pour le test de Student en construisant une statistique
de test :
F
( SSRrestricted SSRunrestricted ) / q
SSRunrestricted /( n k 1)
où SSRrestricted est la somme des carrés des résidus du modèle restreint, SSRunrestricted la
somme des carrés du modèle non restreint et q est le nombre de paramètres présents dans
H 0 , soit 2 dans notre cas.
F suit une loi de Fisher : F
Fisher(q, n k 1)
On rejettera l’hypothèse nulle au niveau de confiance
P( F c)
si F
c où c est tel que
Les outputs de la fonction lm contiennent par défaut les résultats du test de significativité
0 ) et, au vu de la faible p-value, cette
de tous les paramètres ( H 0 : 1
2
3
4
hypothèse nulle peut être rejetée.
Test de H 0 :
1
3
0 :
Finalement F
c , on peut donc rejeter H 0 ce qui est cohérent avec la manière dont la
série x a été construite :
1
et
3
n’étaient pas nuls.
2. Test d’adéquation non-paramétrique : test du Chi-2
Le test du Chi-2 permet de tester l’hypothèse d’adéquation de la distribution du néchantillon étudié à une loi de distribution choisie : H 0 : P P0 contre P P0 .
On opère d’abord un processus de mise en classe en considérant une partition mesurable de
: A1 ,..., Ak telle que P0 ( A j ) 0, j .
On note ensuite la statistique de comptage de l’ensemble A j : N j
n
1 A j ( X i ) et on fabrique
i 1
n
la statistique de test Rn
n
(
i 1
²(k 1) .
Nj
n
P0 ( Aj ))²
1
qui converge en loi vers une variable Z
P0 ( Aj )
On définit alors
n
( x1 ,..., x n ) 1 Rn
(k 1) tel que P( Z
( k 1)
(k 1))
et on peut utiliser la suite de tests
qui est asymptotiquement de niveau
pour tester H 0 : P
P0
Il est possible de trouver ce test sous R, mais il est nécessaire de calculer soi-même la
proportion de l’effectif associée à chacune des classes de l’intervalle des valeurs de la
distribution. En voici un exemple.
Test d’adéquation à une loi uniforme :
On accepte donc l’hypothèse nulle d’adéquation de l’échantillon à une loi uniforme en raison
de la p-value assez élevée du test.
Test d’adéquation à une loi normale :
On accepte donc l’hypothèse nulle d’adéquation de l’échantillon à une loi normale au vu de la
p-value élevée du test.
E. Test de sphéricité et ACP
1. Test de sphéricité
Les tests de sphéricité permettent de déterminer si les composantes d’une matrice qui
ne sont pas sur la diagonale sont nulles, c'est-à-dire s’il y a des interactions entre les variables.
On teste alors l’hypothèse nulle : H 0 : la matrice est proche de la matrice identité à une
constante multiplicative près.
Cependant il serait pratique de pouvoir tester la présence de telles interactions entre plusieurs
échantillons, c'est-à-dire sur une matrice 1000x3 par exemple et donc pas sur une matrice
carrée. La fonction présentée après permet de faire ceci en standardisant la matrice des
échantillons à une taille adéquate avant le test.
2. Analyse en composantes principales
Si le test de sphéricité a permis de rejeter l’hypothèse nulle, il est possible de mener
une analyse en composante principales sur les échantillons considérés. Celle-ci-permettra
d’identifier les composantes principales et la participation de chacun des échantillons dans la
construction de ces-dernières.
0
5000
10000
15000
Variances
20000
25000
model
Comp.1
Comp.2
Comp.3
Comp.4
Téléchargement