• Aucun résultat trouvé

Analyse des données de département avec R

N/A
N/A
Protected

Academic year: 2022

Partager "Analyse des données de département avec R"

Copied!
11
0
0

Texte intégral

(1)

Analyse des données de département avec R

Importation des données

Les données considérées dans cet exemple proviennent du Groupe d’Etude et de Réflexion Inter-régional (GERI). Elles décrivent quatre grands thèmes : la démographie, l’emploi, la fiscalité directe locale et la criminalité. Les indicateurs sont mesurés sur l’ensemble des départements français métropolitains et la Corse (regroupée) pendant l’année 1990. Ils sont, pour la plupart, des taux calculés relativement à la population

totale du département concerné. Voici la liste des variables:

• TXCR: taux de croissance de la population sur la période intercensitaire 1982-1990

• ETRA : part des étrangers dans la population totale

• URBR : taux d’urbanisation

• JEUN : part des 0-19 ans dans la population totale

• AGE: part des plus de 65 ans dans la population totale

• CHOM : taux de chômage

• Parts de chaque profession et catégorie socio-professionnelle (PCS) dans la population active occupée du département :

AGRI : agriculteurs ARTI : artisans

CADR : cadres supérieurs EMPL : employés

OUVR : ouvriers

PROF : professions intermédiaire

• FISC : produit, en francs constants 1990 et par habitant, des quatre taxes directes locales (professionnelle, habitation, foncier bâti, foncier non bâti)

• CRIM : taux de criminalité : nombre de délits par habitant

• FE90 : taux de fécondité (pour 1000), égal au nombre de naissances rapporté au nombre de femmes fécondes (15 à 49 ans) en moyenne triennale

La fonction read.csv permet d’importer les données dans R. Sous R Studio, on peut aussi utiliser l’outil

“Import Dataset” disponible dans le menu.

depart2 <- read.csv("http://pagesperso.univ-brest.fr/~ailliot/doc_cours/M1EURIA/regression/depart2.dat", sep="") Avant de réaliser des analyses statistiques avec R, il faut vérifier que les données ont été importées au bon

format.

• Le résultat de l’importation doit être un objet de type data.frame.

• Chaque ligne doit correspondre à un individu et chaque colonne à une variable.

• Il faut aussi que chaque variable ait le bon type (qualitatif/quantitatif).

Les différentes commandes ci-dessous peuvent être utilisées pour visualiser le contenu du jeu de données.

summary(depart2)

## DEP REG TXCR ETRA

## Ad : 2 IdF : 8 Min. :-5.730 Min. :0.00600

## SH : 2 MiP : 8 1st Qu.: 0.330 1st Qu.:0.02750

## 2S : 1 RhA : 8 Median : 2.740 Median :0.04600

## Ab : 1 Cen : 6 Mean : 3.758 Mean :0.05121

## Ag : 1 PAC : 6 3rd Qu.: 6.510 3rd Qu.:0.06550

## AH : 1 Aqu : 5 Max. :21.870 Max. :0.18900

## (Other):87 (Other):54

(2)

## URBR JEUN AGE CHOM

## Min. :0.0000 Min. :0.1860 Min. :0.0880 Min. :0.0630

## 1st Qu.:0.2660 1st Qu.:0.2380 1st Qu.:0.1345 1st Qu.:0.0935

## Median :0.3950 Median :0.2610 Median :0.1590 Median :0.1090

## Mean :0.4368 Mean :0.2588 Mean :0.1626 Mean :0.1108

## 3rd Qu.:0.5585 3rd Qu.:0.2785 3rd Qu.:0.1880 3rd Qu.:0.1205

## Max. :1.0010 Max. :0.3120 Max. :0.2540 Max. :0.1730

#### AGRI ARTI CADR EMPL

## Min. :0.00000 Min. :0.05100 Min. :0.05200 Min. :0.2120

## 1st Qu.:0.03300 1st Qu.:0.07000 1st Qu.:0.07050 1st Qu.:0.2390

## Median :0.06500 Median :0.08400 Median :0.08300 Median :0.2530

## Mean :0.06981 Mean :0.08594 Mean :0.09212 Mean :0.2560

## 3rd Qu.:0.09000 3rd Qu.:0.10000 3rd Qu.:0.09700 3rd Qu.:0.2665

## Max. :0.22200 Max. :0.13700 Max. :0.32100 Max. :0.3330

#### OUVR PROF FISC CRIM

## Min. :0.1340 Min. :0.1440 Min. :2217 Min. : 24.60

## 1st Qu.:0.2725 1st Qu.:0.1705 1st Qu.:2769 1st Qu.: 36.75

## Median :0.3110 Median :0.1840 Median :2978 Median : 46.20

## Mean :0.3092 Mean :0.1870 Mean :3110 Mean : 52.06

## 3rd Qu.:0.3560 3rd Qu.:0.2015 3rd Qu.:3354 3rd Qu.: 62.25

## Max. :0.4120 Max. :0.2500 Max. :5030 Max. :139.90

#### FE90

## Min. :39.50

## 1st Qu.:47.70

## Median :51.40

## Mean :50.70

## 3rd Qu.:53.75

## Max. :64.40

##

str(depart2)

## 'data.frame': 95 obs. of 17 variables:

## $ DEP : Factor w/ 93 levels "2S","Ab","Ad",..: 6 11 7 9 5 8 10 3 4 2 ...

## $ REG : Factor w/ 22 levels "Als","Aqu","Auv",..: 22 20 3 18 18 18 22 8 16 8 ...

## $ TXCR: num 12.19 0.89 -2.63 10 7.82 ...

## $ ETRA: num 0.095 0.035 0.031 0.046 0.037 0.091 0.039 0.056 0.055 0.057 ...

## $ URBR: num 0.339 0.358 0.464 0.19 0.294 0.945 0.281 0.324 0 0.424 ...

## $ JEUN: num 0.285 0.289 0.227 0.235 0.25 0.21 0.252 0.292 0.215 0.27 ...

## $ AGE : num 0.133 0.143 0.204 0.19 0.173 0.217 0.184 0.138 0.228 0.155 ...

## $ CHOM: num 0.07 0.133 0.135 0.123 0.089 0.119 0.105 0.144 0.12 0.113 ...

## $ AGRI: num 0.045 0.049 0.086 0.065 0.072 0.012 0.085 0.065 0.09 0.068 ...

## $ ARTI: num 0.084 0.07 0.095 0.127 0.117 0.124 0.106 0.069 0.103 0.067 ...

## $ CADR: num 0.088 0.071 0.07 0.09 0.078 0.127 0.073 0.065 0.073 0.067 ...

## $ EMPL: num 0.24 0.24 0.262 0.261 0.302 0.316 0.224 0.24 0.261 0.227 ...

## $ OUVR: num 0.347 0.4 0.311 0.256 0.23 0.227 0.329 0.386 0.298 0.401 ...

## $ PROF: num 0.195 0.171 0.176 0.2 0.201 0.194 0.184 0.176 0.175 0.17 ...

## $ FISC: num 2772 2854 3160 4033 3365 ...

## $ CRIM: num 38.7 52.2 39 57.7 49.2 ...

## $ FE90: num 52.3 56.9 42.7 52.3 53.5 50 48.4 55.6 44.1 51.9 ...

(3)

head(depart2)

## DEP REG TXCR ETRA URBR JEUN AGE CHOM AGRI ARTI CADR EMPL

## 1 Ai RhA 12.19 0.095 0.339 0.285 0.133 0.070 0.045 0.084 0.088 0.240

## 2 As Pic 0.89 0.035 0.358 0.289 0.143 0.133 0.049 0.070 0.071 0.240

## 3 Al Auv -2.63 0.031 0.464 0.227 0.204 0.135 0.086 0.095 0.070 0.262

## 4 AP PAC 10.00 0.046 0.190 0.235 0.190 0.123 0.065 0.127 0.090 0.261

## 5 AH PAC 7.82 0.037 0.294 0.250 0.173 0.089 0.072 0.117 0.078 0.302

## 6 AM PAC 10.56 0.091 0.945 0.210 0.217 0.119 0.012 0.124 0.127 0.316

## OUVR PROF FISC CRIM FE90

## 1 0.347 0.195 2772.3 38.7 52.3

## 2 0.400 0.171 2854.4 52.2 56.9

## 3 0.311 0.176 3159.6 39.0 42.7

## 4 0.256 0.200 4033.1 57.7 52.3

## 5 0.230 0.201 3364.9 49.2 53.5

## 6 0.227 0.194 4335.4 123.6 50.0

On voit en particulier que les deux premières colonnes sont des variables qualitatives (‘Factor’). Elles correspondent au nom des régions/départements et ne sont pas intéressantes pour la suite. On les enlève donc des données avec la commande ci-dessous.

z=depart2[,-(1:2)] #on enlève les deux première colonnes

Statistiques descriptives

Dans la suite nous allons nous intéresser particulièrement à la variable CRIM. On peut calculer différentes valeurs numériques et réaliser des graphiques pour résumer cette variable.

mean(z$CRIM)

## [1] 52.05684 sd(z$CRIM)

## [1] 21.09455 hist(z$CRIM)

(4)

Histogram of z$CRIM

z$CRIM

Frequency

20 40 60 80 100 120 140

0 5 10 15 20 25 30 35

On peut aussi visualiser la relation entre les différentes variables à l’aide de la fonction plot, mais les graphiques sont rapidement surchargés lorsque le nombre de variables augmente.

plot(z)

(5)

TXCR

0.00 0.20 0.06 0.06 0.22 0.14 20

−5

0.00

ETRA URBR

0.0

0.20

JEUN AGE

0.10

0.06

CHOM AGRI

0.00

0.06

ARTI CADR

0.05

0.22

EMPL OUVR

0.15

0.14

PROF FISC

2500

20 CRIM

−5 0.0 0.10 0.00 0.05 0.15 2500 40

40FE90

On peut alors plutôt représenter la matrice de corrélation qui est un résumé de la relationlinéaireentre les variables.

c=cor(z) #URBR est la variable la plus corrélée avec CRIM library(corrplot)

corrplot(c)

(6)

−1

−0.8

−0.6

−0.4

−0.2 0 0.2 0.4 0.6 0.8

TXCR ETRA URBR JEUN A GE CHOM A GRI AR TI CADR EMPL OUVR PR OF FISC CRIM FE90

1

TXCR ETRA URBR JEUN AGE CHOM AGRI ARTI CADR EMPL OUVR PROF FISC CRIM FE90

On peut en particulier visualiser avec quelles variables la variable CRIM est corrélée/anticorrélée.

L’analyse en composantes principales utilise les éléments propres de la matrice de corrélation et trouve une base “optimale” pour représenter les données dans un espace de dimension 2.

library(FactoMineR) par(mfrow=c(1,2)) PCA(z)

(7)

−6 −2 2 4 6 8

−5 0 5 10

Individuals factor map (PCA)

Dim 1 (44.82%)

Dim 2 (22.22%)

2 1 3 4

5 6

7 8 9

10

12 11 13 14 15

16 17

18 19 20

22 21 23 24

25 26 27 28 29

30 31

32 33

34 35 36 37 38

39 40

41 42 43 44 45 46 48 47

50 51 49 52 53

55 54 56

57 58

60 59 61 62

64 63 65

66

67 68 69 70

71 72

73 74

75

76 77 78 79 80

82 81

83 84 85

86 87 88

89 90

91 92

93 94

95

−1.0 0.0 0.5 1.0

−1.0 0.0 0.5 1.0

Variables factor map (PCA)

Dim 1 (44.82%)

Dim 2 (22.22%)

TXCR URBR ETRA

JEUN AGE

CHOM AGRI

ARTI

EMPL CADR

OUVR

PROF FISC CRIM

FE90 TXCR URBR ETRA

JEUN AGE

CHOM AGRI

ARTI

EMPL CADR

OUVR

PROF FISC CRIM

FE90 TXCR URBR ETRA

JEUN AGE

CHOM AGRI

ARTI

EMPL CADR

OUVR

PROF FISC CRIM

FE90 TXCR URBR ETRA

JEUN AGE

CHOM AGRI

ARTI

EMPL CADR

OUVR

PROF FISC CRIM

FE90 TXCR URBR ETRA

JEUN AGE

CHOM AGRI

ARTI

EMPL CADR

OUVR

PROF FISC CRIM

FE90 TXCR URBR ETRA

JEUN AGE

CHOM AGRI

ARTI

EMPL CADR

OUVR

PROF FISC CRIM

FE90 TXCR URBR ETRA

JEUN AGE

CHOM AGRI

ARTI

EMPL CADR

OUVR

PROF FISC CRIM

FE90 TXCR URBR ETRA

JEUN AGE

CHOM AGRI

ARTI

EMPL CADR

OUVR

PROF FISC CRIM

FE90 TXCR URBR ETRA

JEUN AGE

CHOM AGRI

ARTI

EMPL CADR

OUVR

PROF FISC CRIM

FE90

## **Results for the Principal Component Analysis (PCA)**

## The analysis was performed on 95 individuals, described by 15 variables

## *The results are available in the following objects:

#### name description

## 1 "$eig" "eigenvalues"

## 2 "$var" "results for the variables"

## 3 "$var$coord" "coord. for the variables"

## 4 "$var$cor" "correlations variables - dimensions"

## 5 "$var$cos2" "cos2 for the variables"

## 6 "$var$contrib" "contributions of the variables"

## 7 "$ind" "results for the individuals"

## 8 "$ind$coord" "coord. for the individuals"

## 9 "$ind$cos2" "cos2 for the individuals"

## 10 "$ind$contrib" "contributions of the individuals"

## 11 "$call" "summary statistics"

## 12 "$call$centre" "mean of the variables"

## 13 "$call$ecart.type" "standard error of the variables"

## 14 "$call$row.w" "weights for the individuals"

## 15 "$call$col.w" "weights for the variables"

Pour les données considérées, le premier plan principal explique 67% de l’inertie totale du jeu de données. On voit ressortir 3 groupes de variables/départements.

• Les variables CRIM/FISC/CADR/URBR/ETRA/TXCR/EMPL qui sont fortement corrélées entre elles et prennent des grandes valeurs dans des départements fortement urbanisés tels que 92/93/94/95/75 (région parisienne) et 13/6/69 (Marseille/Nice/Lyon).

(8)

• Les variables ARTI/AGE/AGRI/CHOM qui prennent des grandes valeurs dans des départements ruraux (23/15/32/. . . ).

• Les variables FE90/JEUN/OUVR qui prennent des grandes valeurs dans des départements ouvriers tel que 27/62/60 (nord de la France).

Régression linéaire pour la variable CRIM

La fonction lm permet d’ajuster des modèles de régression pour expliquer la variable CRIM à partir des autres variables. Commençons par un modèle de régression linaire simple avec comme variable explicative la variable URBR qui est la plus corrélée avec CRIM.

fit=lm(CRIM~URBR,data=z) summary(fit)

#### Call:

## lm(formula = CRIM ~ URBR, data = z)

#### Residuals:

## Min 1Q Median 3Q Max

## -22.056 -10.554 -4.131 5.013 51.376

#### Coefficients:

## Estimate Std. Error t value Pr(>|t|)

## (Intercept) 23.83 3.28 7.265 1.13e-10 ***

## URBR 64.63 6.64 9.735 7.46e-16 ***

## ---

## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

#### Residual standard error: 14.93 on 93 degrees of freedom

## Multiple R-squared: 0.5047, Adjusted R-squared: 0.4994

## F-statistic: 94.76 on 1 and 93 DF, p-value: 7.455e-16 confint(fit)

## 2.5 % 97.5 %

## (Intercept) 17.31404 30.33892

## URBR 51.44819 77.81795

Pour analyser les résultats obtenus, on notera en particulier la valeur des coefficients R2 et R2 ajustés ainsi que les p-values des tests de significativité des différentes variables.

Considérons maintenent un modèle de régression linéaire multiple avec toutes les variables disponibles comme variables explicatives.

fit2=lm(CRIM~.,data=z) summary(fit2)

#### Call:

## lm(formula = CRIM ~ ., data = z)

#### Residuals:

## Min 1Q Median 3Q Max

## -28.9513 -5.1029 0.5126 3.7960 22.1232

##

(9)

## Coefficients:

## Estimate Std. Error t value Pr(>|t|)

## (Intercept) -1.609e+03 1.297e+03 -1.241 0.21833

## TXCR 7.493e-01 2.928e-01 2.559 0.01237 *

## ETRA 6.939e+01 5.290e+01 1.312 0.19338

## URBR 2.152e+01 9.488e+00 2.269 0.02598 *

## JEUN -2.076e+02 1.413e+02 -1.469 0.14575

## AGE -2.254e+01 1.089e+02 -0.207 0.83656

## CHOM 2.605e+02 4.819e+01 5.406 6.49e-07 ***

## AGRI 1.526e+03 1.297e+03 1.176 0.24294

## ARTI 1.839e+03 1.301e+03 1.414 0.16138

## CADR 1.783e+03 1.293e+03 1.379 0.17169

## EMPL 1.566e+03 1.285e+03 1.219 0.22656

## OUVR 1.597e+03 1.295e+03 1.233 0.22119

## PROF 1.514e+03 1.303e+03 1.162 0.24885

## FISC 2.603e-03 2.527e-03 1.030 0.30617

## FE90 1.167e+00 4.094e-01 2.849 0.00557 **

## ---

## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

#### Residual standard error: 8.522 on 80 degrees of freedom

## Multiple R-squared: 0.8611, Adjusted R-squared: 0.8368

## F-statistic: 35.43 on 14 and 80 DF, p-value: < 2.2e-16

On note que certaines variables semblent inutiles dans le modèle complet (p-value supérieure à 5%). Les méthodes de “sélection de modèle” permettent d’enlever ces variables inutiles, ce qui a pour avantage de rendre le modèle plus facile à interpréter et aussi de donner des meilleurs résultats en prédiction (les variables inutiles rajoutent des paramètres à estimer et donc de l’incertitude dans les prédictions).

Les commandes ci-dessous permettent de parcourir tous les modèles possibles et de trouver celui qui a le meilleur R2 ajusté.

library(leaps)

sel=regsubsets(CRIM~.,data=z,nvmax =14,method="exhaustive") plot(sel,scale="adjr2")

(10)

adjr2 (Intercept) TXCR ETRA URBR JEUN A GE CHOM A GRI AR TI CADR EMPL OUVR PR OF FISC FE90

0.67 0.5 0.74 0.79 0.8 0.82 0.83 0.84 0.84 0.84 0.84 0.84 0.84 0.84

Dans l’exemple considéré, les covariables sont fortement corrélées entre elles. Ceci peut conduire à des résultats surprenants. Par exemple, le meilleur modèle à une variable est le modèle avec URBR (variable la plus corrélée). Par contre, le meilleur modèle à 2 variables n’utilise pas la variable URBR mais les variables CHOM et CADR. On peut ensuite ajuster le modèle sélectionné à l’aide de la commande ci-dessous.

fit3=lm(CRIM~TXCR+ETRA+URBR+JEUN+CHOM+ARTI+CADR+OUVR+FE90,data=z) summary(fit3)

#### Call:

## lm(formula = CRIM ~ TXCR + ETRA + URBR + JEUN + CHOM + ARTI +

## CADR + OUVR + FE90, data = z)

#### Residuals:

## Min 1Q Median 3Q Max

## -28.7959 -4.7352 -0.5587 4.0895 22.4455

#### Coefficients:

## Estimate Std. Error t value Pr(>|t|)

## (Intercept) -71.0499 25.1422 -2.826 0.005875 **

## TXCR 0.8961 0.2514 3.564 0.000602 ***

## ETRA 69.3387 47.1875 1.469 0.145408

## URBR 27.0615 7.4860 3.615 0.000508 ***

## JEUN -217.6162 83.2604 -2.614 0.010593 *

## CHOM 265.7765 43.8725 6.058 3.64e-08 ***

## ARTI 293.2932 97.9599 2.994 0.003605 **

(11)

## OUVR 62.3556 30.8552 2.021 0.046436 *

## FE90 1.2668 0.3732 3.395 0.001046 **

## ---

## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

#### Residual standard error: 8.416 on 85 degrees of freedom

## Multiple R-squared: 0.8561, Adjusted R-squared: 0.8408

## F-statistic: 56.17 on 9 and 85 DF, p-value: < 2.2e-16

A noter que l’utilisation du critère R2 conduit toujours à sélectionner le modèle complet (car on projette sur un plus grand s.e.v. : la distance entre la variable à expliquer et le projeté orthogonal est donc plus petite).

library(leaps)

sel=regsubsets(CRIM~.,data=z,nvmax =14,method="exhaustive") plot(sel,scale="r2")

r2 (Intercept) TXCR ETRA URBR JEUN A GE CHOM A GRI AR TI CADR EMPL OUVR PR OF FISC FE90

0.67 0.5

0.75 0.8

0.82 0.84

0.84 0.85

0.86 0.86

0.86 0.86

0.86 0.86

Références

Documents relatifs

Le récepteur-analyseur doit etre prévu avec une entrée di- recte sur ses étages basse fré- quence, afin de permettre d'éten- dre les mesures à la partie basse

Sions, 6clalrage. Conduite, PanneS et r6重ねr観ttons …………‥ 48O UN BON PHOTOGRAPIIE, C,ES富 VOUS! L

▪ Mixer les orties avec ail, oignons, des graines de courge, sésame, tamari, piment et à la fin ajouter des graines de tournesol pour garder du croquant, (ajouter de l’eau chaude

b/ On ne peut pas avoir 1 seul angle droit ` a chacun des sommets, car cela in- duirait une contradiction : ` a chaque sommet la somme des 2 angles aigus devrait ˆ.. etre &gt; π/2,

enseignement accessible à tous leurs élèves. 2 Ils privilégient les solutions intégratives dans le respect du bien-être et des possibilités de développement de l’élève et

On a N couleurs pour peindre des t´ etra` edres r´ eguliers de mˆ eme taille (une seule couleur par face ; un mˆ eme t´ etra` edre peut avoir des faces de plusieurs couleurs, mais

A l’origine, l’intégration de cette norme pénale dans notre système juridique tendait en effet essentiellement – si ce n’est ex- clusivement – à donner une base

• Conjugaison : Les verbes au présent (3ème pers. Plur.) - Les pronoms personnels (savoir retrouver le nom qu'ils reprennent).. • Grammaire : accord dans le GN (déterminant