Das Skript beginnt mit der Erstellung eines internen Datensatzes namens 'Insure' aus Rohdaten ('datalines'). Dieser Datensatz enthält die Anzahl der Ansprüche (n), die Kosten der Ansprüche (c), den Fahrzeugtyp (Car) und das Alter (Age). Eine Variable 'ln' wird ebenfalls als natürlicher Logarithmus von 'n' berechnet und als Offset im Modell verwendet. Anschließend wird eine Poisson-Regression mithilfe von PROC GENMOD angepasst, die 'c' in Abhängigkeit von 'Car' und 'Age' modelliert, mit 'ln' als Offset und der Poisson-Verteilung. Zwischenergebnisse von ODS werden verfolgt. Eine zweite Ausführung von PROC GENMOD, mit deaktiviertem ODS, exportiert die Beobachtungsstatistiken (ObStats) in einen neuen Datensatz 'myObStats' und benennt die Vorhersagevariable um. Dieser Datensatz wird dann nach dem vorhergesagten Wert (absteigend) sortiert und schließlich mit PROC PRINT und einem beschreibenden Titel ausgegeben.
Datenanalyse
Type : CREATION_INTERNE
Der Datensatz 'Insure' wird direkt im Skript mithilfe einer DATA STEP-Anweisung und der über 'datalines' bereitgestellten Daten erstellt. Es werden keine externen Daten oder SASHELP-Datensätze als primäre Quelle verwendet.
1 Codeblock
DATA STEP Data
Erklärung : Dieser Codeblock erstellt den Datensatz 'Insure'. Er liest die Variablen 'n' (Anzahl der Beobachtungen), 'c' (Kosten), 'Car' (Fahrzeugkategorie) und 'Age' (Alterskategorie). Die Variable 'ln' wird als natürlicher Logarithmus von 'n' berechnet, der als Offset im Poisson-Regressionsmodell verwendet wird.
Kopiert!
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 Codeblock
PROC GENMOD
Erklärung : Dieser Block führt die PROC GENMOD aus, um ein Poisson-Regressionsmodell anzupassen. Die Variablen 'Car' und 'Age' werden als Klassifikationsvariablen deklariert. Das Modell spezifiziert 'c' als abhängige Variable, 'Car' und 'Age' als Prädiktoren, eine Poisson-Verteilung (dist=poisson), eine logarithmische Link-Funktion (link=log) und 'ln' als Offset (offset=ln). Die Option 'obstats' fordert Statistiken auf Beobachtungsebene an. 'ODS TRACE ON' wird verwendet, um die Namen der von der Prozedur erstellten Ausgabeobjekte anzuzeigen.
Kopiert!
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 Codeblock
PROC GENMOD Data
Erklärung : Hier wird PROC GENMOD erneut ausgeführt, jedoch mit 'ODS SELECT NONE', um alle Standard-ODS-Ausgaben zu unterdrücken. Die Anweisung 'ODS OUTPUT ObStats=myObStats(...)' erfasst speziell das Ausgabeobjekt 'ObStats' (Beobachtungsstatistiken) in einem neuen SAS-Datensatz namens 'myObStats'. Nur die Variablen 'car', 'age' und 'pred' (umbenannt in 'PredictedValue') werden in diesem neuen Datensatz beibehalten.
Kopiert!
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 Codeblock
PROC SORT
Erklärung : Dieser Block verwendet PROC SORT, um den Datensatz 'myObStats' zu sortieren. Die Sortierung erfolgt nach der Variable 'PredictedValue' in absteigender Reihenfolge ('descending').
Kopiert!
proc sort data=myObStats;
by descending PredictedValue;
run;
1
2
PROC SORT
3
DATA=myObStats;
4
BY descending PredictedValue;
5
RUN;
6
5 Codeblock
PROC PRINT
Erklärung : Dieser Block schließt die Analyse ab, indem er den Inhalt des sortierten Datensatzes 'myObStats' mithilfe von PROC PRINT anzeigt. 'ODS SELECT ALL' reaktiviert alle ODS-Ausgaben. Die Option 'noobs' unterdrückt die Spalte der Beobachtungsnummern. Ein Untertitel ('title2') wird hinzugefügt, um den Inhalt der gedruckten Tabelle zu beschreiben.
Kopiert!
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;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : 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 und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.