Bonjour,

je souhaite travailler dans R en utilisant l'équivalence des commandes utilisées dans Stata. Mais je n'y arrive pas. Help!!!
Voici le do file en question:

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
keep DATE_VALIDATION_SORTIE RENSEIGNEMENTCERTIFVISITE VISITEPHYSIQUE CONFORMITE CIRCUIT CODE_BUREAU_DEDOUANEMENT CODE_DECLARANT CODE_EXPORTATEUR CODE_DESTINATAIRE NONEMCLATURE NUM_ENREG MODELE REGIME CODE_PAYS_EXPORTATION CODE_PAYS_ORIGINE PAYS_FIRST_DEST__LAST_PROV
 
drop if RENSEIGNEMENTCERTIFVISITE=="NON RENSEIGNE"
 
gen fraude=1 if CONFORMITE=="NON CONFORME"
replace fraude=0 if fraude==.
 
gen date1 = date( DATE_VALIDATION_SORTIE , "DMY")
format date1 %td
 
* 1- ordonner la base selon le critère 1 puis la date
sort CODE_DESTINATAIRE date1  NUM_ENREG
 
*calcul du dénominateur (nb cumulatif de déclarations)
gen vm=1
by CODE_DESTINATAIRE: gen denominateur_ffdest=sum(vm)
*calcul du numérateur (nb cumulatif de fraudes)
by CODE_DESTINATAIRE: gen numerateur_ffdest=sum(fraude)
*calcul du ratio
gen ffdest0 = numerateur_ffdest/denominateur_ffdest 
sort CODE_DESTINATAIRE date1 
*décalage d'une déclaration car c'est la fréquence de fraude AVANT la déclaration à évaluer qui compte
by CODE_DESTINATAIRE: gen ffdest = ffdest0[_n-1]
drop ffdest0 numerateur_ffdest denominateur_ffdest
 
 
* 2- renouveler l'opération avec le critère origine
gen origine= CODE_PAYS_ORIGINE
gen declaration =NUM_ENREG
sort origine date declaration
*gen vm=1
by origine: gen denominateur_fforigine=sum(vm)
by origine: gen numerateur_fforigine=sum(fraude)
gen fforigine0 = numerateur_fforigine/denominateur_fforigine
by origine: gen fforigine = fforigine[_n-1]
drop fforigine0 numerateur_fforigine denominateur_fforigine
 
* 2- renouveler l'opération avec le critère hscode
gen hs= NONEMCLATURE 
sort hs date declaration
*gen vm=1
by hs: gen denominateur_ffhs=sum(vm)
by hs: gen numerateur_ffhs=sum(fraude)
gen ffhs0 = numerateur_ffhs/denominateur_ffhs
by hs: gen ffhs = ffhs[_n-1]
drop ffhs0 numerateur_ffhs denominateur_ffhs
 
* modèle économétrique type logit
logit fraude ffdest ffhs fforigine
predict yhat
gen fmoy=(ffdest+ffhs+fforigine)/3
gen fmax=max(ffdest, ffhs, fforigine)
 
* définir les "1" à partir des probabilitées estimées
sum fraude
scalar seuil=r(mean)
gen fprob=1 if yhat>=seuil
replace fprob=0 if yhat<seuil
replace fprob=. if yhat==.
* tableau de contingence
tab fprob fraude
 
*ordonner les déclarations par ordre de score décroissant
gsort -yhat
gsort -fmoy
gsort -fmax
Merci d'avance