Maxim Engers, Monica Hartmann, and Steven Stern, "Mileage Drives Used Car Prices", Journal of Applied Econometrics, Vol. 24, No. 1, 2009, pp. 1-33. This paper has a number of files associated with it. All data files are zipped in ems-data.zip. All program files are zipped in ems-programs.zip. Several Excel spreadsheet files are zipped in ems-xls.zip. All ASCII files are in DOS format. Unix users should use "unzip -a". Note that file sizes given below refer to files in Unix format. ehs-programs.zip: dataextract.f nptsestimate.f ehs-data.zip: npts.d data_mileage_drives_prices.prn data_mileage_drives_prices.txt olsdata.prn nptsestimate.p ehs-xls: mileageprice.xls mileagepriceb.xls mileagepricec.xls There are a number of data sources used in this paper. These are described below: 1) We use an extract of the 1995 National Personal Transportation Survey (1995). The FORTRAN program dataextract.f (1072 lines of code) can be used to replicate our data. The original data and full documentation is available publicly through, for example, ICPSR. A list of variables pulled from the NPTS is described below: NPTS Household record: Name of Variable in FORTRAN program | Description | FORTRAN format ivar(1) availability of public transportation 22x,i2 ivar(2) household id # 14x,i8 ivar(3) household income 8x,i2 ivar(4) year of interview 44x,i4 ivar(5) availability of public transportations 6x,i2 ivar(6) member age i4 ivar(7) whether member is a driver i2 ivar(8) whether member is male 2x,i2 ivar(9) whether member works 2x,i2 ivar(10) member age i4 ivar(11) whether member is a driver i2 ivar(12) whether member is male 2x,i2 ivar(13) whether member works 2x,i2 ivar(14) member age i4 ivar(15) whether member is a driver i2 ivar(16) whether member is male 2x,i2 ivar(17) whether member works 2x,i2 ivar(18) member age i4 ivar(19) whether member is a driver i2 ivar(20) whether member is male 2x,i2 ivar(21) whether member works 2x,i2 ivar(22) member age i4 ivar(23) whether member is a driver i2 ivar(24) whether member is male 4x,i2 ivar(25) whether member works 2x,i2 ivar(26) member age i4 ivar(27) whether member is a driver i2 ivar(28) whether member is male 2x,i2 ivar(29) whether member works 2x,i2 ivar(30) member age i4 ivar(31) whether member is a driver i2 ivar(32) whether member is male 2x,i2 ivar(33) whether member works 2x,i2 ivar(34) member age i4 ivar(35) whether member is a driver i2 ivar(36) whether member is male 2x,i2 ivar(37) whether member works 2x,i2 ivar(38) member age i4 ivar(39) whether member is a driver i2 ivar(40) whether member is male 2x,i2 ivar(41) whether member works 2x,i2 ivar(42) member age i4 ivar(43) whether member is a driver i2 ivar(44) whether member is male 2x,i2 ivar(45) whether member works 2x,i2 ivar(46) (not used in analysis) 125x,i4 weight household weight f10.2 ivar(47) urban 4x,i2 aivar alphanumeric urban 140x,a1 NPTS Vehicle record: Name of Variable in FORTRAN program | Description | FORTRAN format jveh(1) household id # i8 jveh(2) miles driven / 10000 30x,i6 annm mod(miles driven,10000) f8.2 jveh(3) make/model information 6x,i2 jveh(4) make/model information 2x,i3 jveh(5) make/model information 14x,i2 jveh(6) model year i4 jveh(7) month of odometer reading 82x,i4 jveh(8) year of odometer reading i4 jveh(9) measure of miles driven 12,i6 Make and model information is aggregated in a FORTRAN subroutine called maketr. It transforms brands according to the Brand Transformation table. Brand transformation: Aggregated Model (Name, Number) | Make [ivar(3)] | Model [ivar(4)] | Whether vehicle [ivar(5)] not a vehicle | 26 | | | 0 isuzu | 1 | 38 | | 1 chrysler | 2 | 6 | | 1 dodge | 3 | 7 | | 1 plymouth | 4 | 9 | | 1 ford | 5 | 12 | | 1 mercury | 6 | 14 | | 1 chevrolet | 8 | 20 | not 34,35 | 1 geo | 23 | 20 | 34,35 | 1 oldsmobile | 9 | 21 | | 1 pontiac | 10 | 22 | | 1 saturn | 11 | 24 | | 1 american luxury | 12 | 13,19 | | 1 japanese luxury | 13 | 58,59 | | 1 european luxury | 14 |32,34,39,42,45,47 | | 1 honda | 15 | 37,54 | | 1 mitsubishi | 16 | 52 | | 1 mazda | 17 | 41 | | 1 nissan | 18 | 35 | | 1 subaru | 19 | 48 | | 1 toyota | 20 | 49 | | 1 volkswagen | 21 | 30 | | 1 volvo | 22 | 51 | | 1 hyundai | 24 | 61 | | 1 other | 25 | all others | 1 2) The data extract from the 1995 NPTS described above is stored in a hierarchical ASCII file called npts.d with 210097 records requiring 5411115 bytes. There are three types of records in the file. For each household, there is a "household record." Then it is followed by "household member records" for each household member, and then "vehicle records" for each vehicle owned by the household. The code necessary to read the data is in the subroutine datget in the FORTRAN program nptsestimate.f (7227 lines of code). The structure of each type of record is: Household record: Name of Variable in Fortran Program | Description | FORTRAN format ihouseid | household id # |1x,i8 weight | household weight | 1x,f8.2 ihousinc | household income | 1x,i5 ibusavl | (not used in analysis) | 1x,i2 ipbtravel | (not used in analysis) | 1x,i2 iurban1 | urban dummy | 1x,i2 iurban2 | (not used in analysis) | 1x,i2 nhchar | # household members | 1x,i2 ihco | # household cars | 1x,i2 ihcar | (not used in analysis) | 1x,i2 Household member record: Name of Variable in Fortran Program | Description | FORTRAN format jt | (not used in analysis) | 1x,i2 ihchar(1) | whether driver | 1x,i2 ihchar(2) | whether adult driver | 1x,i1 ihchar(3) | whether male | 1x,i1 ihchar(4) | whether drives to work | 1x,i1 Vehicle record: Name of Variable in Fortran Program | Description | FORTRAN format mveh(1) | annual miles driven | 1x,i6 mveh(2) | brand | 1x,i2 mveh(3) | model year | 1x,i4 mveh(4) | (not used in analysis) | 1x,i4 mveh(5) | (not used in analysis) | 1x,i4 mveh(6) | (not used in analysis) | 1x,i6 3) We use data collected from Kelley Blue Book's Official Guide for Older Cars (May/June - Central/Eastern Edition, 1995-2000) and the 1995 NPTS to run regressions of price on miles driven as a function of age. The Kelley Blue Book variables used in our study are described in the ASCII file variables_mileage_drives_prices.txt, and the data are saved in the space delimitated ASCII file data_mileage_drives_prices.prn. The data from data_mileage_drives_prices.prn is manipulated into a form directly used in the OLS regression and can be read from a rectangular ASCII file called olsdata.prn with 26 records. The code necessary to read the data is in the subroutine decompos1 in the FORTRAN program nptsestimate.f (7227 lines of code). There are two variables per record; the first is log(avg miles by brand), and the second is log(average price by brand). The order of the brands is in the FORTRAN statement: data abrand/'isuzu','chrysler','dodge','plymouth','ford', & 'mercury','buick','chevrolt','oldsmobl','pontiac','saturn', & 'luxamer','luxjapan','luxeurop','honda','mitsubi','mazda', & 'nissan','subaru','toyota','volkswg','volvo','geo','hyundai', & 'other','truck'/ Other data are in a set of excel files called mileageprice.xls (54 KB), mileagepricea.xls (38 KB), and mileagepriceb.xls (38 KB). The underlying data are also available in the text file data_mileage_drives_prices.prn, but not any of the analysis. 4) A file with initial values of parameters is in nptsestimate.p (212 records) and is read in the subroutine parget in nptsestimate.f (7227 lines of code). The order of variables in the file is: method,nobs,nmodel,ncchar,nhouse,ncarmax,npoly,ishare,itotmil coef(alpha,beta,delta,gamma,omega,sigu) icoef alabel alabel = labels for coefficients alpha = derivatives of v wrt c beta = coefficients on products of polynomials coef = initial parameter values delta = polynomial coefficients gamma = derivative of log h wrt household characteristics icoef = flags for restriction ishare = flag for using shares in estimation itotmil = flag for using total miles in estimation method = 0 for evaluation of log likelihood function 1 for estimation 2 for alternative estimation method 3 for estimation with amoeba 4 for covariance estimation 5 for ols estimation 6 for mom logit 7 for gridsearch 8 for computing age effects 9 for computing age derivatives 10 for computing demographic derivatives 11 for decomposing derivatives 12 for decomposing derivatives using alternative mehtod 13 for preparing data for cex analysis 14 for plotting miles 15 for simulation ncarmax = max k for variation in omega ncchar = # car characteristics nhouse = # household characteristics nmodel = # models nobs = # observations npoly = order of polynomial omega = derivative of psi wrt v(ranked) sigu = standard deviation of u (not identified) 5) nptsestimate.f uses a simplex method to optimize from a commercial product called GQOPT. All calls to subroutine opt in nptsestimate.f are calls to use the subroutine NMSIMP in GQOPT. The user should replace this code with an alternative optimizer available to him/her. The name of the function being optimized is the 9th argument in the call to opt. Steven Stern Sns5r [AT] virginia.edu