• Aucun résultat trouvé

Conclusion

Dans le document pour les sociologues (et assimilés) (Page 87-92)

sexe clso Oui Non Ne sait pas Homme 2658744.04 2418187.64 72450.75 Femme 2602031.76 3242389.36 77422.79 R> lprop(tab)

sexe clsoOui Non Ne sait pas Total

Homme 51.6 47.0 1.4 100.0

Femme 43.9 54.8 1.3 100.0

Ensemble 47.5 51.1 1.4 100.0 R> chisq.test(tab)

Pearson's Chi-squared test data: tab

X-squared = 67214.28, df = 2, p-value < 2.2e-16

Les fonctions lprop, cprop et residus de rgrs sont donc tout à fait compatibles avec l’utilisation rgrs de survey. La fonction freq peut également être utilisée si on lui passe en argument non pas la variable elle-même, mais son tri à plat obtenu avecsvytable:

R> tab <- svytable(~peche.chasse, dw) R> freq(tab, total = TRUE)

n %

Non 9716683 87.8 Oui 1354544 12.2 Total 11071226 100.0

Enfin,survey est également capable de produire des graphiques à partir des données pondérées. Des exemples sont donnés figure7.1page suivante.

7.4 Conclusion

En attendant mieux, la gestion de la pondération sousRn’est sans doute pas ce qui se fait de plus pratique et de plus simple. On pourra quand même donner les conseils suivants :

– utiliser les options de pondération des fonctions usuelles ou les fonctions de l’extensionrgrspour les cas les plus simples ;

– si on utilise survey, effectuer tous les recodages et manipulations sur les données non pondérées autant que possible ;

– une fois les recodages effectués, on déclare ledesign et on fait les analyses en tenant compte de la pondération ;

– surtout ne jamais modifier les variables dudesign. Toujours effectuer recodages et manipulations sur les données pondérées, puis redéclarer le design pour que les mises à jour effectuées soient disponibles pour l’analyse ;

R> par(mfrow = c(2, 2))

R> svyplot(~age + heures.tv, dw, col = "red", main = "Bubble plot") R> svyhist(~heures.tv, dw, col = "peachpuff", main = "Histogramme") R> svyboxplot(age ~ 1, dw, main = "Boxplot simple", ylab = "Âge") R> svyboxplot(age ~ sexe, dw, main = "Boxplot double", ylab = "Âge", + xlab = "Sexe")

20 40 60 80 100

Figure 7.1 – Fonctions graphiques de l’extensionsurvey

Partie 8

Cartographie

Cette partie aborde l’utilisation deRpour la création de cartes simples permettant la représentation d’effectifs, de proportions ou de variables qualitatives pour des zonages géographiques (régions, communes, Iris. . . ). Ceci ne constitue qu’une infime partie des possibilités de l’analyse spatiale de données.

Par ailleurs, le parti pris est ici de tout effectuer à l’intérieur deR, sans faire appel à des applications externes spécialisées commeQuantum GIS, gvSigouGRASS.

Les fonctions présentées ici font partie pour la plupart de l’extension rgrs , mais elles ne sont que rgrs des interfaces visant à faciliter l’utilisation de fonctions disponibles dans des extensions spécialisées, en particulier l’extensionsp.

8.1 Données spatiales

SousR, une carte est un objet comme un autre, seulement un peu plus compliqué. Le stockage des données utilisé dans cette partie repose sur la classe d’objets nomméeSpatialPolygonsDataFrame, définie par l’extensionsp. Ce type d’objet, particulièrement complexe, peut contenir à la fois des données de type spatial (sous la forme d’une liste de polygones) et des données classiques sous la forme d’un tableau de données.

8.1.1 Exemple d’objet spatial

L’extensionrgrs fournit un exemple d’objet de ce type, nommélyon, et qui contient le contour des 9 rgrs arrondissements de cette commune. On peut le charger dansRde la manière suivante :

R> library(rgrs) R> data(lyon)

Nous avons désormais à notre disposition un objet nommé lyon que nous pouvons tout de suite représenter graphiquement à l’aide de la fonctionplot. Le résultat est indiqué figure8.1page suivante.

Si l’on veut étudier la structure de l’objet lyon, par exemple en effectuant un str(lyon), on se rend vite compte de la complexité de ce type d’objets. En fait lyon est lui-même composé de plusieurs

« sous-objets » (slots) accessibles avec l’opérateur@. Nous décrirons les trois principaux :

lyon@data est un tableau de données dont chaque ligne correspond à un des polygones (c’est à dire ici à un arrondissement de Lyon) et qui lui associe un certain nombre de données (identifiant, nom de l’arrondissement, etc.) ;

lyon@polygons est une liste de polygones définissant les contours de chaque arrondissement ;

89

R> sp::plot(lyon)

Figure8.1 –plotd’un objet de type spatial

8.1. Données spatiales 91

proj4string est un objet décrivant la projection géographique utilisée pour les données spatiales.

On n’accèdera en général jamais directement à ces sous-objets, à part éventuellementdata, que l’on peut manipuler comme n’importe quel tableau de données :

R> str(lyon@data)

'data.frame': 9 obs. of 2 variables:

$ DepCom : Factor w/ 301 levels "69001","69002",..: 293 294 295 296 297 298 299 300 301

$ Nom_Com: chr "LYON 1ER" "LYON 2E" "LYON 3E" "LYON 4E" ...

R> lyon@data$Nom_Com

[1] "LYON 1ER" "LYON 2E" "LYON 3E" "LYON 4E" "LYON 5E" "LYON 6E"

[7] "LYON 7E" "LYON 8E" "LYON 9E"

8.1.2 Importer des données spatiales

Cette section est relativement technique et peut-être sautée si l’on souhaite juste avoir un aperçu des fonctionnalités présentées en utilisant les données incluses dansrgrs.

La conversion et l’import de données de type spatial sont des opérations relativement complexes, notamment du fait qu’elles mettent en jeu des notions de projection pas toujours faciles à comprendre et à maîtriser pour des non-spécialistes1.

Rpropose cependant de nombreux outils pour importer des données de différents formats, notamment via les extensionsmaptoolsetrgdal.

On n’entrera pas ici dans le détail de ces opérations (que nous ne maîtrisons guère). Mais voici cependant, à titre indicatif, la marche à suivre pour importer dans Rdes données de l’IGN telles que fournies par le Centre Maurice Halbwachs (contours Iris de différents départements par exemple).

Les données étant fournies au formatMapInfo, la première opération consiste à les convertir en format ESRI Shapefile. SousLinuxcela se fait très facilement grâce à ogr2ogravec une commande du type :

ogr2ogr -f "ESRI Shapefile" 69_iris.shp 69_iris.mid

Ceci devrait vous générer trois fichiers portant le même nom mais avec les extensionsshp,shxetdbf. L’import dansRpeut alors s’effectuer de la manière suivante :

library(maptools) library(rgdal) library(foreign)

## Projection d'origine

proj.string <- "+init=epsg:27572 +proj=lcc +lat_1=45.90287723937 +lat_2=47.69712276063 +lat_0=46.8 +lon_0=2.337229104484 +x_0=600000 +y_0=2200000 +units=m +pm=greenwich"

## Projection d'arrivée

proj.string.geo <- "+proj=longlat +datum=WGS84"

1. Et en premier lieu par l’auteur de ces lignes.

## Import du fichier

rhone.iris <- readShapePoly("69_iris.shp", proj4string=CRS(proj.string))

## Transformation de la projection

rhone.iris <- spTransform(rhone.iris, CRS(proj.string.geo))

## Conversion des données en Unicode

rhone.iris$Nom_Com <- iconv(rhone.iris$Nom_Com, from="latin1", to="utf8") rhone.iris$Nom_Iris <- iconv(rhone.iris$Nom_Iris, from="latin1", to="utf8")

## Sauvegarde

save(rhone.iris, file="rhone_iris.rda")

On peut ensuite charger le contenu du fichier rhone_iris.rdaà l’aide de la fonction loaddans un autre script.

Dans le document pour les sociologues (et assimilés) (Page 87-92)