Bonjour,
Ma question peut paraitre simple mais je bloque.
J'ai deux échantillon un d'apprentissage et un de validation. Je veux, parmi d'autre régressions, effectuer une régression linéaire. La variable cible est binéaire et les variables explicatives sont catégorielle.
La proc reg ne marche pas puisque qu'elle ne prends pas en compte les variables catégorielles (ou alors il faudrait recoder manuellement).
Il me reste la proc glm ou la proc GENMOD qui permettent de créer un tableau disjonctif automatiquement avec l'option class.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 proc genmod data = panel2Appr; class x1 x2 x3; Model y = x1 x2 x3; output out = sortielin p=predlin; run; proc glm data = panel2Appr outstat = out; class x1 x2 x3; Model y = x1 x2 x3; output out = sortielin2 p=predlin; run;
Pour faire un scoring sur ma base de validation je passe par un proc score. Et problème le proc score ne marche par avec la proc Genmod. Et a priori la proc score ne marche pas avec les variables catégorielle (l'option class n'est pas possible).
J'ai trouvé l'astuce ci dessous sur internet :
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 DATA one_two; SET one /* dataset to compute coefficients */ two(in=jj) /*dataset to be scored */ ; KEEP dsn y x1 x2 x3 ; dsn='1'; if jj=1 then DO; dsn='2'; y = .; END; ods output obstats=obst; ods exclude obstats ; PROC GENMOD DATA=one_two ; CLASS dsn; * enter here so that it will appear in the obst dataset; MODEL y = x1 x2 x3 / dist=normal obstats; RUN; PROC PRINT DATA=obst ; VAR dsn x1 x2 x3 y xbeta pred; RUN;
Mais cela reste une astuce et je voudrais savoir si vous connaissez une solution plus propre à mon problème.
Merci d'avance
Partager