Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS STAT
SAS STAT Forum d'entraide sur les fonctionnalités liées à la statistique sur SAS : statistique descriptive, test, régression, classification
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/03/2011, 10h44   #1
Invité de passage
 
Inscription : février 2009
Messages : 14
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 14
Points : 1
Points : 1
Par défaut Méthode pour un bon "scoring", proc transreg et gros volume de données

Bonjour,


pour faire mes "scores" (ma cible est tjs du type 1/0), ma facon faire est la suivante :
- création de la base de données
- discrétisation des variables "numériques" (utilisation de SEM avec "optimal begin with relationship with target")
- Utilisation de la proc transreg pour chaques variables ( les quantis discrétisés et les qualis) de ma base de données
- sélection des meilleurs variables en valeur absolue grace au v-de cramer
- modélisation avec la proc logistique

Je me pose plusieurs questions :

- Globalement est-ce une bonne façon de faire ?
- La proc transreg est très longue à s'éxécuter (je précise que je travaille sur un serveur), lorsque que je suis en phase de généralisation, il peut m'arriver d'avoir 10-15 variables dans mon modèle et 10 millions d'individus à scorer, comment optimiser le temps de traitement ? (une autre procédure peut être)
- est-ce que pour la proc transreg, il faut mettre dans le parametre "id" ma variable cible?

- Imaginons la variable binaire "Age 25-30 ans" (avec la cible 1/0)
- Lorsque je modélise, j'obtiens :
coef
Age 25-30 ans 0 vs 1 -1.23 : cela veut bien dire si on a 25-30 on a une influence positive sur la cible (1) en d'autre terme on augmente la probabilité ?


- Comment modéliser pour toutes mes variables 1 vs 0 ?


- Pour ma cible, j'utilise l'option ref = 0, est-ce le bon sens de modélisation si on veut mettre avant la cible =1 ?

- Le v-cramer mesure la relation avec la variable cible, si j'obtiens par exemple 0.60 en valeur, est-ce que cela veut bien
dire que le fait d'avoir "Age 25-30 ans à oui" à une influence positive sur la cible (1) ?

- Si je rajoute des variables dans mon modèle qui ne sont pas significatives, qu'est-ce que cela peut provoquer dans mon modèle ?

je vous remercie par avance ,

alexandre.
alex_kid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 11h29   #2
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Salut Alex,
Citation:
Envoyé par alex_kid Voir le message


pour faire mes "scores" (ma cible est tjs du type 1/0), ma facon faire est la suivante :
- création de la base de données
- discrétisation des variables "numériques" (utilisation de SEM avec "optimal begin with relationship with target")
- Utilisation de la proc transreg pour chaques variables ( les quantis discrétisés et les qualis) de ma base de données
- sélection des meilleurs variables en valeur absolue grace au v-de cramer
- modélisation avec la proc logistique

Je me pose plusieurs questions :

- Globalement est-ce une bonne façon de faire ?
.
Si j'étais à ta place, j'aurais disctriser que les variables continues, et je prendrai en compte les variables continues et leurs formes discrètes en même temps dasn le moèle.
Citation:
- La proc transreg est très longue à s'éxécuter (je précise que je travaille sur un serveur), lorsque que je suis en phase de généralisation, il peut m'arriver d'avoir 10-15 variables dans mon modèle et 10 millions d'individus à scorer, comment optimiser le temps de traitement ? (une autre procédure peut être)
- est-ce que pour la proc transreg, il faut mettre dans le parametre "id" ma variable cible?
Perso, je n'ai jamais utilisé une proc transeg et je ne connais pas ses avantages


Citation:

- Imaginons la variable binaire "Age 25-30 ans" (avec la cible 1/0)
- Lorsque je modélise, j'obtiens :
coef
Age 25-30 ans 0 vs 1 -1.23 : cela veut bien dire si on a 25-30 on a une influence positive sur la cible (1) en d'autre terme on augmente la probabilité ?
**Les odds-ratios te permettent de mesurer l'effet de variation de la variable explicative sur la variables à expliquée
** ref='1 ou ref='0' dépend de la modalité de la variable réponse que tu veux modéliser
** Tu peux rajouter selection=backward (parmis tant d'autres), cette méthode te gardera que les variables qui sont signicatives. Ne perds pas de vue que ton but est de trouver une combinaison des variables qui expliquent au mieux l'effet observé

Code :
model y(ref='1')=a b /expb selection =backward

Un exemple d'application si ça t'intéresse :

ici

Bon courage
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 16h01   #3
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
Citation:
- Le v-cramer mesure la relation avec la variable cible, si j'obtiens par exemple 0.60 en valeur, est-ce que cela veut bien
dire que le fait d'avoir "Age 25-30 ans à oui" à une influence positive sur la cible (1) ?
Pas "positive". Une influence. Les V de Cramer n'ont pas de signe, et si jamais SAS te met des signes moins, ignore-les et prends la valeur absolue.
Ils mesurent le % de liaison parfaite (V=1 correspondant à une définition parfaite et V=0 à deux variables totalement indépendantes amenant une répartition homogène des individus).
Citation:
Tu peux rajouter selection=backward (parmis tant d'autres), cette méthode te gardera que les variables qui sont signicatives.
Personnellement je vote plutôt pour FORWARD, surtout avec de gros volumes de données. Avec un STOP=30 pour éviter de construire des modèles à 50 coefficients qui ne sont pas utilisables.
Et comme critère d'arrêt, je le laisse avancer à sa guise et je regarde après coup les critères de Schwarz et d'Akaike pour décider au final combien garder de variables.

Et dans mes préconisations personnelles : j'équilibre la table (50% de CIBLE=1 autant que possible, sans sacrifier la volumétrie totale : la table servant à construire le modèle doit contenir au moins quelques centaines d'observations, voire quelques milliers) avant de bosser. Mes modèles sont généralement un peu plus performants que sans équilibrer.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 09h02   #4
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
Citation:
Envoyé par alex_kid Voir le message
- Si je rajoute des variables dans mon modèle qui ne sont pas significatives, qu'est-ce que cela peut provoquer dans mon modèle ?
A priori pas de perte de performance sur les données servant à construire le modèle. Mais introduire des coefficients "inutiles" dans un modèle ne peut que nuire à la robustesse (c'est à dire aux performances à moyen terme, sur d'autres jeux de données).

Citation:
Envoyé par alex_kid Voir le message
- sélection des meilleurs variables en valeur absolue grace au v-de cramer
- modélisation avec la proc logistique
Je crois comprendre que du coup, tu ne fais aucune sélection au niveau de ta PROC LOGISTIC. Tu ne prends que les variables sélectionnées par le V de Cramer.
Ce n'est pas forcément une excellente tactique, car le V mesure l'intensité de la relation entre UNE variable et ta cible, sans tenir compte des autres variables. Alors que le modèle va chercher (dans une sélection FORWARD ou BACKWARD ou STEPWISE) une variable qui AJOUTE de l'information pertinente (discriminante) par rapport à celles qui sont déjà présentes dans le modèle.
C'est d'ailleurs tout l'intérêt de faire un modèle : prendre en compte des relations impliquant plusieurs variables, plutôt que de rester sur des stats univariées.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 09h45   #5
Invité de passage
 
Inscription : février 2009
Messages : 14
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 14
Points : 1
Points : 1
merci pour vos réponses !


très bien pour le v de cramer.

En ce qui concerne la proc transreg, lorsque que je crée mon modèle je suis sur un echantillon 50/50 avec quelques milliers d'observations et plusieurs centaines de variables. La procèdure est longue à s'executer (malgré que je travaille sur un serveur). Lorsque que je suis en phase d'industrialisation j'ai quelques variables et je peux avoir plusieurs millions d'individus à scorer, la proc transreg risque d'être très longue a s'executer.

Est-ce qu'il y a un moyen d'optimiser ce temps de traitement ?

Autre question :
comment je peux interpreter un résultat de la regression logistique du type :
coef
var1 0 vs 1 -1.23

merci.
alex_kid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 09h54   #6
Invité de passage
 
Inscription : février 2009
Messages : 14
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 14
Points : 1
Points : 1
oui, tu as raison je fais une première sélection de mes variables par le biais du v de cramer pour réduire mon nombre de variables (sinon je lance ma regressions avec trop de variables > 1000) et ensuite dans ma régression logistique j'utilise les parametres usuels (stepwise,backward, sle,...)

parfois, j'ai des contraintes métiers qui font que je dois mettre certaines variables même si elles ne sont pas significative. (donc je n'utilise pas de paramètres pour sélectionner mes variables)

si je comprends, tu me conseilles de laisser toutes mes variables et de sélectionner les meilleurs grâce aux parametres de la logistique ? (step,back,sle,..) ?
alex_kid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 10h07   #7
Invité de passage
 
Inscription : février 2009
Messages : 14
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 14
Points : 1
Points : 1
je précise aussi une fois que j'ai sélectionné mes variables grace au v de cramer

je re-lance un v de cramer sur ma base réduite pour vérifié les variables liées entre elles
(var1 var2 var n... * var1 var2 var n...)

lorsque que je trouve des liaisons "fortes" entre 2 variable je garde celles qui est la plus liée à la variable cible
alex_kid est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h30.


 
 
 
 
Partenaires

Hébergement Web