bonsoir,
j'ai une base avec 4 variables : année (2015, 2016 et 2017) , contrat, nb_sin, type ( 2 modalités: A et B) .
J'aimerais calculer les antécédents sinistre d'un contrat. Je m'expliquer j'aimerais créer une variable Ancienneté, et une variable antécédent sinistre. Pour un contrat 2017 calculer le cumule des sinistres qu'il aurait eu en 2016 donc ancienneté 1 ans, puis 2016 et 2015 donc ancienneté 2 ans. Puis refaire la mm chose mais pour un contrat 2016 avec les antécédents 2015 donc ancienneté 1 an. L’ensemble de ces cumules est calculer par la variable TYPE.
Par contre si j'ai un contrat qui n'est présent qu'en 2017, j'aurais ancienneté=0 et ant=.
J'ai un programme que voici, merci de me dire comment je peux le modifier pour répondre à ma question:
Déjà par rapport à ma problématique j'ai des doutes si dans if first. je dois mettre la variable typ ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 data test3 /*(drop=Ant1 Ant2)*/; set test2; by annee contrat ty; if first.grp_gt then anciennete=0; else anciennete +1; Ant1 = Lag1(nbsin); Ant2 = Lag2(nbsin); if anciennete < 1 then Ant1 = .; if anciennete < 2 then Ant2 = .; Ant = Sum(Ant1, Ant2); if last.typ and anciennete > 0 then do; SinN1 = 1; if Ant1 in (0, .) then SinN1 = 0; end; run;
Donc merci de me dire ce que je peux modifier dans ce programme pour répondre à la question.
Merci
Partager