Le script commence par créer un jeu de données interne nommé 'Insure' à partir de données brutes ('datalines'). Ce jeu de données contient le nombre de réclamations (n), le coût des réclamations (c), le type de voiture (Car) et l'âge (Age). Une variable 'ln' est également calculée comme le logarithme naturel de 'n', utilisée comme offset dans le modèle. Ensuite, une régression de Poisson est ajustée à l'aide de PROC GENMOD, modélisant 'c' en fonction de 'Car' et 'Age', avec 'ln' comme offset et la distribution de Poisson. Les résultats intermédiaires d'ODS sont tracés. Une deuxième exécution de PROC GENMOD, avec ODS désactivé, exporte les statistiques d'observation (ObStats) vers un nouveau jeu de données 'myObStats', en renommant la variable de prédiction. Ce jeu de données est ensuite trié par la valeur prédite (descendante) et finalement imprimé à l'aide de PROC PRINT, avec un titre descriptif.
Analyse des données
Type : CREATION_INTERNE
Le jeu de données 'Insure' est créé directement dans le script à l'aide d'une instruction DATA STEP et des données fournies via 'datalines'. Aucune donnée externe ou jeu de données SASHELP n'est utilisé comme source primaire.
1 Bloc de code
DATA STEP Data
Explication : Ce bloc de code crée le jeu de données 'Insure'. Il lit les variables 'n' (nombre d'observations), 'c' (coût), 'Car' (catégorie de voiture) et 'Age' (catégorie d'âge). La variable 'ln' est calculée comme le logarithme naturel de 'n', qui sera utilisée comme décalage (offset) dans le modèle de régression de Poisson.
Copié !
data Insure;
input n c Car $ Age;
ln = log(n);
datalines;
500 42 Small 1
1200 37 Medium 1
100 1 Large 1
400 101 Small 2
500 73 Medium 2
300 14 Large 2
;
1
DATA Insure;
2
INPUT n c Car $ Age;
3
ln = log(n);
4
DATALINES;
5
50042 Small 1
6
120037 Medium 1
7
1001 Large 1
8
400101 Small 2
9
50073 Medium 2
10
30014 Large 2
11
;
2 Bloc de code
PROC GENMOD
Explication : Ce bloc exécute la procédure GENMOD pour ajuster un modèle de régression de Poisson. Les variables 'Car' et 'Age' sont déclarées comme variables de classification. Le modèle spécifie que 'c' est la variable dépendante, 'Car' et 'Age' les prédicteurs, une distribution de Poisson (dist=poisson), une fonction de lien logarithmique (link=log) et 'ln' comme décalage (offset=ln). L'option 'obstats' demande des statistiques au niveau de l'observation. 'ODS TRACE ON' est utilisé pour afficher les noms des objets de sortie créés par la procédure.
Copié !
ods trace on;
proc genmod data=insure;
class car age;
model c = car age / dist=poisson link=log offset=ln obstats;
run;
ods trace off;
1
ods trace on;
2
3
PROC GENMODDATA=insure;
4
class car age;
5
model c = car age / dist=poisson link=log offset=ln obstats;
6
RUN;
7
8
ods trace off;
3 Bloc de code
PROC GENMOD Data
Explication : Ici, PROC GENMOD est exécutée à nouveau, mais avec 'ODS SELECT NONE' pour supprimer toute sortie ODS standard. L'instruction 'ODS OUTPUT ObStats=myObStats(...)' capture spécifiquement l'objet de sortie 'ObStats' (statistiques d'observation) dans un nouveau jeu de données SAS appelé 'myObStats'. Seules les variables 'car', 'age' et 'pred' (renommée en 'PredictedValue') sont conservées dans ce nouveau jeu de données.
Copié !
ods select none;
proc genmod data=insure;
class car age;
model c = car age / dist=poisson link=log offset=ln obstats;
ods output ObStats=myObStats(keep=car age pred
rename=(pred=PredictedValue));
run;
1
ods select none;
2
PROC GENMODDATA=insure;
3
class car age;
4
model c = car age / dist=poisson link=log offset=ln obstats;
5
ods OUTPUT ObStats=myObStats(keep=car age pred
6
rename=(pred=PredictedValue));
7
RUN;
4 Bloc de code
PROC SORT
Explication : Ce bloc utilise PROC SORT pour trier le jeu de données 'myObStats'. Le tri est effectué par la variable 'PredictedValue' dans l'ordre décroissant ('descending').
Copié !
proc sort data=myObStats;
by descending PredictedValue;
run;
1
2
PROC SORT
3
DATA=myObStats;
4
BY descending PredictedValue;
5
RUN;
6
5 Bloc de code
PROC PRINT
Explication : Ce bloc termine l'analyse en affichant le contenu du jeu de données trié 'myObStats' à l'aide de PROC PRINT. 'ODS SELECT ALL' réactive toutes les sorties ODS. L'option 'noobs' supprime la colonne des numéros d'observation. Un sous-titre ('title2') est ajouté pour décrire le contenu du tableau imprimé.
Copié !
ods select all;
proc print data=myObStats noobs;
title2 'Values of Car, Age, and the Predicted Values';
run;
1
ods select all;
2
PROC PRINTDATA=myObStats noobs;
3
title2 'Values of Car, Age, and the Predicted Values';
4
RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : S A S S A M P L E L I B R A R Y
NAME: ODSEX4
TITLE: Documentation Example 4 for ODS
PRODUCT: STAT
SYSTEM: ALL
KEYS: ODS
PROCS: GENMOD
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.