• Aucun résultat trouvé

Modélisation : écriture d'un modèle

5) Menu Save Windows Size/ et Touche Enter

5.3. Modélisation : écriture d'un modèle

Nous présentons, ici, quelques notions concernant l’écriture des modèles sans entrer dans le détail puisque ceci sera vu plus loin. En particulier, nous ne verrons pas dans cette partie les commandes et instructions nécessaires à l’analyse et à la construction du modèle.

5.3.1. Principe de l’écriture du modèle

Écriture générale

L’écriture du modèle est, en général du type :

nom.modèle_type.modèle(écriture.du.modèle, loi.de.probabilité, données,conditions) Plus précisément : nom.modèle_type.modèle(variable.expliquée ~ fonction1(variable.explicative1,paramètres.fonction1)+ fonction2(variable.explicative2, paramètres.fonction2)+ … + fonctionN(variable.explicativeN,paramètres.fonctionN),family=famille.lois,d ata=nom.fichier.données,na=na.omit,subset=conditions.restrictives) Ex : mortotso201.inter.gam_gam(mortot~lo(trend,730/2922)+s(dowf.num,4)+j.feries+ vac+lo(gripa7,.9)+lo(gripb6,.9)+lo(tempmin,hummin,.9)+lo(tempmax2,.9)+lo(hu mmin12,.9)+lo(so224h01,.9),family=quasi(log,mu), data=morta,na=na.omit,subset=mortot<16) Variables

Les variables expliquées et explicatives sont de tous types : variables réelles, catégorielles, etc. Elles se présentent sous forme non transformée ou sous forme d’une fonction (logarithme, polynomiale, exponentielle et autres fonctions paramétriques ou non paramétriques).

Nature du modèle

On précise la nature du modèle (lm, glm, gam, etc.), avant d’écrire les variables.

Familles

La loi de distribution ou la famille de lois figure également. Ce peut-être : la loi binomiale (binomial), la loi normale (gaussian) , la loi gamma (Gamma) , la loi normale inverse (inverse.gaussian) , la loi de Poisson (poisson) , la famille de lois dépendant d’une quasi-vraisemblance (quasi).

5.3.2. Détails de l’écriture

Fonctions de lissage

Nous avons vu que les variables peuvent apparaître sous une forme non transformée ou sous forme d’une fonction. Dans ce dernier cas, un ensemble de fonctions de lissage peut être utilisé. Ces fonctions vues plus haut sont les fonctions splines et les fonctions loess, essentiellement.

Les premières s’écrivent : s(variable,degré) Les secondes :

lo(variable,span=largeur.fenêtre)

Restriction de la modélisation à une partie des données

Lorsqu’on ne veut prendre qu’une partie des données, on peut utiliser : subset=série.de.conditions

Ex :

gam(mortot~lo(trend,730/2922)+dowf+j.feries+vac+lo(tempmin,0.9)+lo(hummin,0 .9)+lo(tempmax123,0.9)+lo(o38hb,0.9),family=quasi(log,mu),

data=morta,subset=summer&mortot<16,na.action=na.omit) Il est possible aussi d’utiliser :

data[condition.sur.data] Il est possible de combiner les méthodes Ex :

Ici, on utilise les deux méthodes

toux.gam_gam(rhino~lo(trend,.3)+ ... lo(so224h1),family=quasi(log,mu),data=ramses[ramses$nbmed>0,],subset=(trend >100&trend!=418),na=na.omit) Ex : toux.gam_gam(rhino~lo(trend,.3)+ ... lo(o38h),family=quasi(log,mu),data=ramses[ramses$trend[4:1754],], subset=(summer),na=na.omit) Methode « stepwise »

L’ajustement d’un modèle selon la méthode du « stepwise » (pas-à-pas) se fait par l’écriture suivante (cette écriture peut être complexifiée ; pour ce faire voir l’aide en ligne) :

step(nom.modèle,direction,trace=T,) nom.modèle est le nom d’un modèle déjà construit ;

direction est le sens de l’ajustement pas-à-pas : ce peut-être « forward », « backward » ou « both», selon que l’on décide d’entrer les variables l’une après l’autre ou de les inclure toutes d’emblée et les retirer au fur et à mesure ou laisser au modèle le choix. L’option par défaut est « backward ».

« trace=T » fait que les résultats intermédiaires de l’ajustement apparaîssent à l’écran. Ceci est intéressant pour contrôler la progression de la modélisation pas-à-pas.

Modélisation générale avec offset

La commande « offset » sert à spécifier un terme qui intervient dans le modèle mais qu’on ne veut pas tester. Par exemple, lorsqu’on veut exprimer l’incidence d’une pathologie et que le modèle (loi de probabilité, fonction de lien et prédicteur) attribue la loi de probabilité au nombre de cas incidents mais écrit l’incidence (et non le nombre de cas incidents) comme fonction des variables explicatives, il faut introduire le dénominateur de l’incidence (nombre de personnes-années) sous la forme d’un « offset » :

Ainsi, si i est l’incidence, k, le nombre de cas incidents, m, le nombre de personnes-années :

m

k

i=

Si , de plus k suit une loi de Poisson :

k ~ P(λ) Et si l’espérance de k est telle que :

( )

(

)

n 2 1

,x

,...,x

x

g

m

k

E

n

⎟=

l

Alors, il faut introduire offset(m) et non m dans le modèle :

nom.modèle_nature.modèle(k~offset(ln(m))+g(x1, x2, …, xn))

Ex : rhino.gam_gam(rhino~offset(log(med))+lo(trend,.3)+dowf+vacances+

j.feries+lo(tempmin,.7)+lo(hummin,.7)+lo(grip,.7)+lo(urti,.7)+lo(so224h1),f amily=quasi(log,mu),data=ramses,na=na.omit)

Utilisation de la commande « update »

L’instruction « update » permet de modifier un modèle déjà construit sans le réécrire totalement : modèle2_update(modèle1, .~. -ancienne.expression + nouvelle.expression)

Ex : Premier modèle rh.gam1_gam(rhino~offset(log(nbmedof))+lo(trend,.3)+dowf+j.feries+ vacances+lo(grip,.7) +lo(gram1,.7)+lo(urti1,.7),family=quasi(log,mu),data=ramses, na=na.omit) Deuxième modèle

rh.gam2_update(rh.gam1, .~. – lo(urti1,.7) + lo(gram3,.7)) Dans ce modèle, on a remplacé la variable urti1 par la variable gram3

On peut, bien sur, ne faire qu’ôter une ou plusieurs variables (en se limitant à l’expression qui suit le « - ») ou ne faire qu’ajouter une ou plusieurs variables (en se limitant à l’expression qui suit le « + »).

Les instructions « fitted » et « predict »

L’instruction « fitted » fournit les valeurs prédites de la variable expliquée (pour être complet, rajoutons que les coefficients estimés sont obtenus grâce à l’instruction « coeff » et les résidus grâce à l’instruction « resid ».

L’instruction « predict » fournit les valeurs du prédicteur prévues par le modèle.

Par conséquent, si le prédicteur est linéaire (modèle linéaire), les deux instructions donnent les valeurs prédites de la variable expliquée. Si, par contre, comme le GLM ou le GAM le permettent, la fonction de lien n’est pas linéaire (logarithmique, etc.), alors les deux instructions ne donnent pas le même résultat : « fitted » donne les valeurs prédites (variable expliquée) et « predict » fournit les valeurs prédites sous forme de fonction inverse de la fonction de lien.

Ex :

is7584.glm_glm(is~offset(log(po)/100000)+agef+p7584+p7584.2, data=isiv,family=poisson,subset=per<=10)

La fonction de lien est la fonction logarithme népérien (car la loi est une loi de Poisson). fitted(is7584.glm) donne les valeurs prédites de is ;

predict(is7584.glm) donne les valeurs prédites de exp(is). De plus si on écrit :

predict(nom.modèle,nom.data.frame)

Avec nom.data.frame contenant les valeurs futures des variables expliquées, alors les valeurs sont prédites pour le passé et le futur.

Ex :

predict.glm(object, newdata, type = c("link", "response", "terms"), se.fit = F, terms = labels(object), ...)

5.3.3. Problèmes

Un problème est apparu, lié à l’utilisation du logiciel S-Plus [47] : une combinaison de deux algorithmes est utilisée pour les estimations : local scoring algorithm et backfitting algorithm (§ 3.2.3.1.2.). Or, selon le nombre d’itérations programmé, le logiciel ne converge pas vers les mêmes estimations des valeurs centrales et des intervalles de confiance des paramètres (en raison des difficultés à la convergence de l’algorithme vers son optimum). La responsabilité de ce problème a été révélé lors de la ré-analyse des données de l’étude NMMAPS [48,49]. Ici il est donc prudent d’être plus exigeant quant aux paramètres de convergence des deux algorithmes (augmentation du nombre d’itérations et de la précision de la convergence).

De plus, en raison de la non prise en compte de phénomènes de concurvité (équivalent non paramétrique de la colinéarité) entre les variables explicatives, les modèles GAM (fonction loess, splines de lissage) sous-estiment l’intervalle de confiance du coefficient du polluant et, par là, celui du RR.

Documents relatifs