Das Skript erstellt zunächst einen Datensatz 'Travel' aus Rohdaten, um Reisezeiten für verschiedene Transportmittel (Auto, Flugzeug, Transit), das Alter des Befragten und das gewählte Transportmittel zu erfassen. Anschließend transformiert es diesen Datensatz in ein 'Long'-Format ('Travel2'), das für die Analyse mit PROC BCHOICE geeignet ist, wobei jede Beobachtung eine Wahllternative für ein gegebenes Subjekt darstellt. Schließlich führt es zwei BCHOICE-Modelle aus: Das erste bewertet die Effekte des Transportmittels und der Reisezeit, und das zweite führt eine Interaktion zwischen dem Transportmittel und dem zentrierten Alter ein, um zu untersuchen, wie das Alter die Wahl des Transportmittels beeinflusst.
Datenanalyse
Type : CREATION_INTERNE
Die Daten werden direkt im Skript über einen DATALINES-Block für den Datensatz 'Travel' erstellt. Der Datensatz 'Travel2' wird anschließend aus 'Travel' durch einen Transformations-DATA STEP erstellt.
1 Codeblock
DATA STEP Data
Erklärung : Dieser Codeblock erstellt den Datensatz 'Travel' aus Rohdaten, die über `datalines` bereitgestellt werden. Er definiert die Variablen `AutoTime`, `PlanTime`, `TranTime` (Reisezeiten für Auto, Flugzeug bzw. Transit), `Age` des Individuums und `Chosen` (das tatsächlich gewählte Transportmittel). Eine neue Variable, `AgeCtr` (zentriertes Alter), wird berechnet, indem 34 vom `Age` abgezogen wird, was für die Interpretation von Interaktionsmodellen nützlich ist.
Erklärung : Dieser Block transformiert den Datensatz 'Travel' vom 'breiten' Format (eine Zeile pro Individuum, mehrere Spalten für Alternativen) in das 'lange' Format, das von PROC BCHOICE benötigt wird (eine Zeile pro Wahllternative für jedes Individuum). Für jede Beobachtung des Originaldatensatzes werden drei neue Beobachtungen generiert. `Subject` identifiziert das Individuum (`_n_` ist die Iterationsnummer des DATA STEP), `Mode` ist das potenzielle Transportmittel, `TravTime` ist die entsprechende Reisezeit, und `Choice` ist eine binäre Variable, die angibt, ob dieses Transportmittel vom Individuum tatsächlich gewählt wurde.
Kopiert!
data Travel2(keep=Subject Mode TravTime Age AgeCtr Choice);
array Times[3] AutoTime PlanTime TranTime;
array Allmodes[3] $ _temporary_ ('Auto' 'Plane' 'Transit');
set Travel;
Subject = _n_;
do i = 1 to 3;
Mode = Allmodes[i];
TravTime = Times[i];
Choice = (Chosen eq Mode);
output;
end;
run;
1
DATA Travel2(keep=Subject Mode TravTime Age AgeCtr Choice);
Erklärung : Diese Prozedur zeigt die ersten 20 Beobachtungen des transformierten Datensatzes 'Travel2'. Die Option `by Subject` stellt sicher, dass die Beobachtungen für jedes Subjekt gruppiert sind, und `id Subject` verwendet die Variable `Subject` als primäre Kennung in der Ausgabe, was die Lesbarkeit verbessert.
Kopiert!
proc print data=Travel2 (obs=20);
by Subject;
id Subject;
run;
1
PROC PRINTDATA=Travel2 (obs=20);
2
BY Subject;
3
id Subject;
4
RUN;
4 Codeblock
PROC BCHOICE
Erklärung : Dieser Block führt die erste Analyse diskreter Wahlen mit PROC BCHOICE aus. Er modelliert die Wahrscheinlichkeit von `Choice` (binäre Variable, die die Wahl angibt) basierend auf dem `Mode` des Transports und `TravTime` (Reisezeit). `Mode` und `Subject` werden als Klassifikationsvariablen deklariert, `param=ref` verwendet die letzte Kategorie als Referenz, und `choiceset=(Subject)` gibt an, dass die Wahlen zur Modellschätzung nach Subjekt gruppiert werden. Die Option `seed=124` gewährleistet die Reproduzierbarkeit der stochastischen Ergebnisse.
Kopiert!
proc bchoice data=Travel2 seed=124;
class Mode Subject / param=ref order=data;
model Choice = Mode TravTime / choiceset=(Subject);
run;
1
PROC BCHOICEDATA=Travel2 seed=124;
2
class Mode Subject / param=ref order=DATA;
3
model Choice = Mode TravTime / choiceset=(Subject);
4
RUN;
5 Codeblock
PROC BCHOICE
Erklärung : Dieses zweite BCHOICE-Modell ähnelt dem ersten, enthält jedoch einen Interaktionsterm `Mode*AgeCtr`. Diese Interaktion ermöglicht es zu untersuchen, wie der Effekt des Transportmittels auf die Wahl in Abhängigkeit vom zentrierten Alter des Individuums variiert, wodurch eine individuumspezifische Komponente zur Wahlanalyse hinzugefügt wird. `Mode` und `Subject` bleiben Klassifikationsvariablen, und `seed=124` wird erneut für die Reproduzierbarkeit verwendet.
Kopiert!
proc bchoice data=Travel2 seed=124;
class Mode Subject / param=ref order=data;
model Choice = Mode Mode*AgeCtr TravTime / choiceset=(Subject);
run;
1
PROC BCHOICEDATA=Travel2 seed=124;
2
class Mode Subject / param=ref order=DATA;
3
model Choice = Mode Mode*AgeCtr TravTime / choiceset=(Subject);
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
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.