{"word_count": 1206, "character_count": 8564}
En cours, nous avions évoqué (très rapidement) la sélection automatique de variables. La méthode la plus simple est une méthode stepwise, basé sur un critère de type AIC, ou BIC. Considérons la base suivante,&#62;  N = base$nbre&#62;  E = base$exposition&#62;  X1 = base$carburant&#62;  X2 = cut(base$agevehicule,c(0,3,10,101),+ right=FALSE)&#62;  X3 = cut(base$ageconducteur,c(0,22,45,101),+ right=FALSE)&#62;  X4 = as.factor(base$zone)&#62;  X5 = as.factor(base$puissance)&#62;  X6 = as.factor(base$region)&#62;  X7 = as.factor(base$marque)&#62;  base1=data.frame(N,E,X1,X2,X3,X4,X5,X6,X7)Une méthode stepwise (backward) donne ici&#62; reg1=glm(N~X1+X2+X3+X4+X5+X6+X7+offset(log(E)),+ family="poisson",data=base1)&#62; step(reg1)Start:  AIC=20492.67N ~ X1 + X2 + X3 + X4 + X5 + X6 + X7 + offset(log(E))Df Deviance   AIC- X5   11    15316 20482- X3    2    15305 20490&#60;none&#62;       15304 20493- X2    2    15314 20499- X1    1    15319 20506- X7   10    15343 20511- X4    5    15398 20576- X6   14    15569 20729Step:  AIC=20482.35N ~ X1 + X2 + X3 + X4 + X6 + X7 + offset(log(E))Df Deviance   AIC- X3    2    15317 20479&#60;none&#62;       15316 20482- X2    2    15326 20488- X1    1    15334 20498- X7   10    15359 20505- X4    5    15410 20566- X6   14    15579 20717Step:  AIC=20479.33N ~ X1 + X2 + X4 + X6 + X7 + offset(log(E))Df Deviance   AIC&#60;none&#62;       15317 20479- X2    2    15327 20485- X1    1    15334 20495- X7   10    15360 20502- X4    5    15410 20563- X6   14    15620 20754Call:  glm(formula = N ~ X1 + X2 + X4 + X6 + X7        + offset(log(E)),       family = "poisson",data = base1)Coefficients:(Intercept)          X1E     X2[3,10)   X2[10,101)          X4B-1.0588454   -0.1653822    0.0266763   -0.1135451   -0.0004047X4C          X4D          X4E          X4F          X600.1497622    0.3748811    0.5052894    0.4292016   -0.3590838X61          X62          X63          X64          X65-0.9300641   -1.0278887   -1.1818218   -1.0971797   -0.9459414X66          X67          X68          X69         X610-1.3690795   -1.1425678   -1.5309402   -1.3883549   -1.4603624X611         X612         X613          X72          X73-1.6763206   -1.3974092   -1.4864404    0.0246113    0.1144990X74          X75          X76         X710         X711-0.0932555    0.1635397   -0.1478095    0.2502030    0.1967970X712         X713         X714-0.2420215    0.2161411   -0.1963162Degrees of Freedom: 49999 Total (i.e. Null);  49967 ResidualNull Deviance:    15810Residual Deviance: 15320 AIC: 20480Autrement dit, on supprime la troisième (âge du conducteur principal, par classes arbitraires) et la cinquième variable (puissance du véhicule) en gardant toutes les autres. Mais ici, si une variable n'a pas été retenue, c'est que globalement, elle n'apportait pas beaucoup d'information. Il serait toutefois possible de garder une information partielle, en gardant éventuellement certaines modalités. L'idée est de disjoncter la base, en créant des variables indicatrices par modalités. La base sera beaucoup plus grosse, et la sélection prendra alors beaucoup plus de temps,&#62; base2=data.frame(model.matrix( ~ 0+X1+X2+X3+X4+X5+X6+X7,+ data=base1))&#62; base2$E=base1$E&#62; base2$N=base1$N&#62; reg2=glm(N~.-E+offset(log(E)),family="poisson",+ data=base2)&#62;  step(reg2)Start:  AIC=20492.67N ~ (X1D + X1E + X2.3.10. + X2.10.101. + X3.22.45. + X3.45.101.X4B + X4C + X4D + X4E + X4F + X55 + X56 + X57 + X58 + X59 +X510 + X511 + X512 + X513 + X514 + X515 + X60 + X61 + X62 +X63 + X64 + X65 + X66 + X67 + X68 + X69 + X610 + X611 + X612 +X613 + X72 + X73 + X74 + X75 + X76 + X710 + X711 + X712 +X713 + X714 + E) - E + offset(log(E))Step:  AIC=20492.67N ~ X1D + X2.3.10. + X2.10.101. + X3.22.45. + X3.45.101. + X4BX4C + X4D + X4E + X4F + X55 + X56 + X57 + X58 + X59 + X510 +X511 + X512 + X513 + X514 + X515 + X60 + X61 + X62 + X63 +X64 + X65 + X66 + X67 + X68 + X69 + X610 + X611 + X612 +X613 + X72 + X73 + X74 + X75 + X76 + X710 + X711 + X712 +X713 + X714 + offset(log(E))Df Deviance   AIC- X4B         1    15304 20491- X58         1    15304 20491- X511        1    15304 20491- X2.3.10.    1    15304 20491- X72         1    15304 20491- X513        1    15304 20491- X512        1    15304 20491- X515        1    15304 20491- X74         1    15305 20491- X3.45.101.  1    15305 20491- X714        1    15305 20491- X55         1    15305 20492- X3.22.45.   1    15305 20492- X711        1    15306 20492- X76         1    15306 20492- X59         1    15306 20492&#60;none&#62;             15304 20493- X514        1    15306 20493- X713        1    15306 20493- X73         1    15307 20493- X56         1    15307 20493- X710        1    15307 20494- X75         1    15308 20494- X2.10.101.  1    15308 20495- X57         1    15309 20495- X4C         1    15310 20496- X510        1    15310 20496- X60         1    15312 20498- X4F         1    15314 20500- X712        1    15316 20503- X1D         1    15319 20506- X4D         1    15337 20524- X61         1    15345 20532- X65         1    15350 20536- X62         1    15352 20538- X64         1    15359 20545- X4E         1    15362 20549- X63         1    15366 20553- X67         1    15370 20556- X612        1    15381 20568- X69         1    15382 20569- X66         1    15387 20574- X610        1    15389 20576- X68         1    15393 20580- X611        1    15406 20592- X613        1    15451 20637Step:  AIC=20490.67N ~ X1D + X2.3.10. + X2.10.101. + X3.22.45. + X3.45.101. + X4CX4D + X4E + X4F + X55 + X56 + X57 + X58 + X59 + X510 + X511 +X512 + X513 + X514 + X515 + X60 + X61 + X62 + X63 + X64 +X65 + X66 + X67 + X68 + X69 + X610 + X611 + X612 + X613 +X72 + X73 + X74 + X75 + X76 + X710 + X711 + X712 + X713 +X714 + offset(log(E))etc etc... et si on va directement à la fin,Step:  AIC=20469.18N ~ X1D + X2.10.101. + X4C + X4D + X4E + X4F + X57 + X510 + X60X61 + X62 + X63 + X64 + X65 + X66 + X67 + X68 + X69 + X610 +X611 + X612 + X613 + X73 + X75 + X76 + X710 + X712 + X713 +offset(log(E))Df Deviance   AIC&#60;none&#62;             15315 20469- X76         1    15317 20470- X713        1    15317 20470- X73         1    15317 20470- X57         1    15318 20470- X75         1    15318 20471- X710        1    15319 20471- X510        1    15319 20471- X4C         1    15322 20474- X60         1    15322 20475- X2.10.101.  1    15325 20478- X4F         1    15325 20478- X1D         1    15333 20485- X712        1    15338 20490- X61         1    15356 20508- X4D         1    15359 20511- X62         1    15363 20515- X65         1    15363 20515- X64         1    15371 20524- X63         1    15378 20530- X67         1    15383 20536- X4E         1    15390 20543- X612        1    15394 20547- X69         1    15396 20548- X66         1    15400 20553- X610        1    15403 20555- X68         1    15407 20559- X611        1    15419 20572- X613        1    15467 20619Call:  glm(formula = N ~ X1D + X2.10.101. + X4C + X4D + X4E + X4FX57 + X510 + X60 + X61 + X62 + X63 + X64 + X65 + X66 + X67 +X68 + X69 + X610 + X611 + X612 + X613 + X73 + X75 + X76 +X710 + X712 + X713 + offset(log(E)), family = "poisson",data = base2)Coefficients:(Intercept)          X1D   X2.10.101.          X4C          X4D-1.20880      0.16886     -0.13808      0.14888      0.37539X4E          X4F          X57         X510          X600.50458      0.42768      0.08381      0.18722     -0.36509X61          X62          X63          X64          X65-0.93836     -1.03471     -1.18803     -1.10217     -0.95624X66          X67          X68          X69         X610-1.37463     -1.15391     -1.54213     -1.40188     -1.47217X611         X612         X613          X73          X75-1.68559     -1.40582     -1.49700      0.10874      0.15022X76         X710         X712         X713-0.15183      0.21948     -0.27400      0.19565Degrees of Freedom: 49999 Total (i.e. Null);  49971 ResidualNull Deviance:    15810Residual Deviance: 15310 AIC: 20470Si la troisième variable (âge du conducteur principal, par classes arbitraires) disparait assez vite, en revanche, une information sur la cinquième (la puissance) est gardée car certaines modalités semblent être informative sur la fréquence d'accidents. En revanche, on notera qui si on fait un arbre, la troisième variable était toujours clairement significative, ce qui peut nous conforter dans l'idée de faire de la sélection de variables sur les modalités.&#62; library(tree)&#62; TREE= tree(N~X1+X2+X3+X4+X5+X6+X7+offset(log(E)),split="gini",+ mincut = 2500,data=base1)&#62; plot(TREE)&#62; text(TREE,cex=.9)