Veröffentlicht am :
Statistik CREATION_INTERNE

Dokumentationsbeispiel 1 für PROC BCHOICE

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
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.
Kopiert!
1DATA Travel;
2 INPUT AutoTime PlanTime TranTime Age Chosen $;
3 AgeCtr=Age-34;
4 DATALINES;
510.0 4.5 10.5 32 Plane
65.5 4.0 7.5 13 Auto
74.5 6.0 5.5 41 Transit
83.5 2.0 5.0 41 Transit
91.5 4.5 4.0 47 Auto
1010.5 3.0 10.5 24 Plane
117.0 3.0 9.0 27 Auto
129.0 3.5 9.0 21 Plane
134.0 5.0 5.5 23 Auto
1422.0 4.5 22.5 30 Plane
157.5 5.5 10.0 58 Plane
1611.5 3.5 11.5 36 Transit
173.5 4.5 4.5 43 Auto
1812.0 3.0 11.0 33 Plane
1918.0 5.5 20.0 30 Plane
2023.0 5.5 21.5 28 Plane
214.0 3.0 4.5 44 Plane
225.0 2.5 7.0 37 Transit
233.5 2.0 7.0 45 Auto
2412.5 3.5 15.5 35 Plane
251.5 4.0 2.0 22 Auto
26;
2 Codeblock
DATA STEP Data
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!
1DATA Travel2(keep=Subject Mode TravTime Age AgeCtr Choice);
2 array Times[3] AutoTime PlanTime TranTime;
3 array Allmodes[3] $ _temporary_ ('Auto' 'Plane' 'Transit');
4 SET Travel;
5 Subject = _n_;
6 DO i = 1 to 3;
7 Mode = Allmodes[i];
8 TravTime = Times[i];
9 Choice = (Chosen eq Mode);
10 OUTPUT;
11 END;
12RUN;
3 Codeblock
PROC PRINT
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!
1PROC PRINT DATA=Travel2 (obs=20);
2 BY Subject;
3 id Subject;
4RUN;
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!
1PROC BCHOICE DATA=Travel2 seed=124;
2 class Mode Subject / param=ref order=DATA;
3 model Choice = Mode TravTime / choiceset=(Subject);
4RUN;
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!
1PROC BCHOICE DATA=Travel2 seed=124;
2 class Mode Subject / param=ref order=DATA;
3 model Choice = Mode Mode*AgeCtr TravTime / choiceset=(Subject);
4RUN;
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