help dep4asm, indep4asm -------------------------------------------------------------------------------
Title
[in]dep4asm -- Create [in]dependent variable for alternative-specific models
Syntax
Create dependent variable for alternative-specific models
dep4asm varname [, dep_options]
Create independent variable for alternative-specific model
indep4asm varlist , alternatives(varname) generate(newvarlist)
options Description ------------------------------------------------------------------------- dep_options dependent(varlbl) use varlbl as label for dependent variable case(varlbl) create id for each observation and use varlbl as variable label alternatives(varlbl) create variable containing alternatives and use varlbl as variable label ------------------------------------------------------------------------- indep_options alternatives(vname) use vname to identify alternatives generate(newvarlist) create newvariables as independent variable/s in an alternative-specific model -------------------------------------------------------------------------
Description
dep4asm creates a new variable that can be used as the dependent variable in an alternative-specific model. The variable containing the alternatives is identified by varname. Each observation will be duplicated as many times as there are alternatives, that may be chosen. The created new variable (labeled choice by default) indicates which alternative has actually been chosen.
indep4asm creates variables that can be used as independent (alternative- specific) variables in alternative-specific models. The alternatives(varname) option must be specified, indicating the variable that contains the alternatives. The user also has to specify the generate(newvarlist) option which creates new variables containing combined information of the variables specified in varlist. The variables given in varlist must be in the same order as the alternatives.
Note: In order to work properly [in]dep4asm requires the alternatives given in varname to be integers. The values must start at 1 and must be incremented by one.
Options
+-------------+ ----+ dep_options +------------------------------------------------------
dependent(varlbl) uses varlbl as label for the created (dependent) variable. The default label is choice and is used if dependent() is not specified.
case(varlbl) creates variable varlbl that contains _n for each observation in the original data. Each case can then be identified referring to varlbl. Probably there is already a variable in your data set (e.g. id, respnr) that uniquely identifies each case. If there is none, you should however specify the case() option since programs that fit alternative-specific models require a variable to identify each case.
alternatives(varlbl) leaves the variable specified in varname unchanged. Since each observation (row) needs to represent a different alternative using commands like asclogit, the variable indicating the alternatives (and specified in varname) will be changed. It will contain each alternative for each case. If you want the original variable to remain unchanged, specify alternatives() and the new variable varlbl will contain each alternative for each case.
+---------------+ ----+ indep_options +----------------------------------------------------
alternatives(varname) uses varname to identify alternatives
generate(newvarlist) creates newvariables containing combined information of variables specified in varlist. The variables in varlist must be give in the same order as the alternatives (see example).
Example
Suppose you want to model the choice between using a car (1), a bus (2) or the tram (3) to travel to work. One important variable to explain this choice might be the time needed using each alternative, another might be costs per month. Before you can estimate an alternative-specific model you have to change the structure of your data, which looks something like this:
. list
+-------------------------------------------------------+ | id mode tcar tbus ttram ccar cbus ctram | |-------------------------------------------------------| 1. | 1 car 13 18 15 25 30 24 | 2. | 2 bus 24 22 27 32 27.5 25.5 | 3. | 3 tram 35 33 31 38.5 24.5 25.5 | 4. | 4 bus 44 42 43 42.5 46 44 | +-------------------------------------------------------+
Using dep4asm changes the data structure and creates the dependent variable.
. dep4asm mode
. list ,sep(3)
+----------------------------------------------------------------+ | id mode tcar tbus ttram ccar cbus ctram choice | |----------------------------------------------------------------| 1. | 1 car 13 18 15 25 30 24 1 | 2. | 1 bus 13 18 15 25 30 24 0 | 3. | 1 tram 13 18 15 25 30 24 0 | |----------------------------------------------------------------| 4. | 2 car 24 22 27 32 27.5 25.5 0 | 5. | 2 bus 24 22 27 32 27.5 25.5 1 | 6. | 2 tram 24 22 27 32 27.5 25.5 0 | |----------------------------------------------------------------| 7. | 3 car 35 33 31 38.5 24.5 25.5 0 | 8. | 3 bus 35 33 31 38.5 24.5 25.5 0 | 9. | 3 tram 35 33 31 38.5 24.5 25.5 1 | |----------------------------------------------------------------| 10. | 4 car 44 42 43 42.5 46 44 0 | 11. | 4 bus 44 42 43 42.5 46 44 1 | 12. | 4 tram 44 42 43 42.5 46 44 0 | +----------------------------------------------------------------+
Now that your data has the required structure and the dependent variable choice is created, you can go on creating the independent variables "travelling time" and "costs". In order to do so type:
. indep4asm tcar tbus ttram ccar cbus ctram /// ,alternatives(mode) generate(trtime trcosts)
. list id choice trtime trcost ,sep(3)
+--------------------------------+ | id choice trtime trcosts | |--------------------------------| 1. | 1 1 13 25 | 2. | 1 0 18 30 | 3. | 1 0 15 24 | |--------------------------------| 4. | 2 0 24 32 | 5. | 2 1 22 27.5 | 6. | 2 0 27 25.5 | |--------------------------------| 7. | 3 0 35 38.5 | 8. | 3 0 33 24.5 | 9. | 3 1 31 25.5 | |--------------------------------| 10. | 4 0 44 42.5 | 11. | 4 1 42 46 | 12. | 4 0 43 44 | +--------------------------------+
Author
D. Klein, University of Bamberg, daniel1.klein@gmx.de
Also see
Online: asclogit, asmprobit, expand