TD1

Transcription

TD1
Statistique spatiale
TD1 : régression linéaire
L’objectif est d’analyser avec le logiciel R les données utilisées dans l’article de Guilmoto (publié dans
Population en 2008). On analysera l’autocorrélation spatiale du sex-ratio juvénile et du pourcentage
de Sikhs dans les différents districts de l’Inde. Puis, on utilisera des régressions linéaires multiples
pour expliquer le sex-ratio juvénile en Inde, à partir des variables numériques présentes dans la table
de données TD1.dbf. L’utilisation des auto-régressions spatiales sera vue plus tard en cours. Le but
principal du TP est d’utiliser certaines possibilités de R (cartographie, analyse de l’autocorrélation
spatiale, régression . . . ) et de voir les limites de la modélisation classique pour des données spatialement
corrélées.
1
1.1
Cadre mathématique
Modèle
Les valeurs du sex-ratio juvénile dans les 591 districts de l’Inde sont représentées par un vecteur x ∈ R591 .
On suppose que c’est la réalisation d’un vecteur aléatoire X = (X1 , . . . , X591 )0 dont la loi est donnée
par les relations suivantes, qui sont équivalentes:
Xi = µi + σεi o˘ εi sont i.i.d. de loi N (0, 1),
Xi sont indépendantes de loi N (µi , σ 2 ),

 
µ1

 
X est un vecteur Gaussien de loi N [ ...  , 
µ590
σ2 . . .
.. . .
.
.
0
...

0
.. ].
. 
σ2
Ci-dessus, les coefficients µ = (µ1 , . . . , µ590 )0 et σ 2 sont inconnus, et on suppose que les µi sont des
combinaisons linéaires de certaines variables spatiales ou sociologiques présentes dans la base de données,
avec des coefficients inconnus. Ainsi:
µ = Zβ,
où β ∈ Rp est inconnu (p étant le nombre de variables explicatives) et Z est la matrice connue des
variables explicatives.
1.2
Estimation
Ecrire la fonction de vraisemblance. Trouver l’estimateur du maximum de vraisemblance.
Donner le test statistique permettant de tester si une variable explicative est significative.
2
2.1
Etude préliminaire
Importation
Ouvrir le logiciel R. Télécharger le package foreign et utiliser la fonction read.dbf() pour importer
les données présentes dans le fichier TD1.dbf. Créer deux nouvelles variables, le sex ratio dans sa
définition internationale (nombre de garçons pour 100 filles) et le rapport des taux d’alphabétisation
homme/femme. Etudier la structure du fichier.
2.2
Cartographie
En utilisant la fonction cut(), découper en classes la variable de sex ratio des enfants précédemment
créée et le pourcentage de Sikhs (SIKH). On utilisera par exemple la méthode des percentiles (regroupement en 6 catégories : < 10%, [10%, 50%[, [50%, 90%[, [90%, 99%[, > 99%) et on utilisera la fonction
quantile() qui permet de calculer les quantiles d’une série.
Télécharger les packages spdep, maptools, coda et utiliser la fonction readShapeSpatial() pour
lire le fichier de formes TD1.shp. A l’aide de la fonction plot() appliquée à ce fichier, cartographier
la variable de sex ratio des enfants (SR0601) et le pourcentage de Sikhs (SIKH) (plot(fichierforme,
col=cols[decoupage])). Comparer les répartition et étudier notamment la polarisation Nord-Sud.
3
3.1
Etude de l’autocorrélation spatiale
Tests globaux
Effectuer un test de Moran sur le sex ratio. On téléchargera le fichier de poids "TD1.gal" (voisinage
de type queen) en utilisant la fonction read.gal(), que l’on transformera en matrice de poids avec la
fonction nb2listw() (avec l’option zero.policy pour autoriser les régions sans voisins) puis on utilisera
les fonction moran.test() et moran.mc() pour effectuer des tests de Moran, sous l’hypothèse de
randomisation et en simulant les quantiles par la méthode de Monte-Carlo.
Tracer et interpréter l’autocorrélogramme de Moran
3.2
Tests locaux
Effectuer un test de Moran local (fonction localmoran()) sur le sex ratio, tracer le diagramme de
Moran (fonction moran.plot())
Cartographier les "slots" (HH, LH, HL, LL) du diagramme de Moran.
4
Régression sur variables quantitatives
Retrouver les résultats de Guilmoto (modèles A, B, C, D) par des régressions linéaires (la variable
"indice de confort" est manquante).
Afin de prendre en compte la dimension spatiale des données, on rajoute dans le modèle une variable
spatiale mesurant la distance de chaque district à la ville de Amritsar (capitale religieuse du sikhisme
située dans un district occidental du Penddjab et proche de la frontière Pakistanaise). Que pensez-vous
de ce choix? Construire cette variable et la rajouter dans le modèle de régression linéaire multiple D
(modèle H de Guilmoto)
Etudier l’ajustement aux données du modèle H. En particulier, on analysera la variabilité des estimateurs. Il existe deux sources essentielle d’instabilité des estimations : la multicollinéarité et l’excès de
variables explicatives.
Repérer les problèmes éventuels de multicollinéarité dans le modèle précédent (on pourra calculer la
matrice de corrélation des variables explicatives, et les facteurs d’inflation de la variance (VIF) en
utilisant la fonction vif() du package car à télécharger). Puis rendre le modèle précédent le plus
parcimonieux possible, en utilisant :
• Une sélection de variables manuelle par élimination
• les algorithmes automatiques de sélection de variables ( fonction step())
• une régression sur composantes principales
• une régression PLS
Les deux derniers points sont optionnels.
Que pensez-vous de la qualité du modèle sélectionné? On étudiera les résidus et résidus réduits (fonction
rstudent()) : les résultats sont-ils conformes aux hypothèses de départ?
NB: le graphe des résidus et des résidus réduits versus valeurs prédites et le qqplot, sont accessibles
par la fonction plot(). On peut aussi tracer l’autocorrélogramme, accessible par la fonction acf()).