Economic, Environmental, and Benefits Analysis of the Final Metal Products and Machinery Rule Programs and Output Tables for the Ohio RUM Model February 14, 2003 Prepared for: U. S. Environmental Protection Agency Office of Science and Technology Engineering and Analysis Division 401 M Street, S. W. Washington, D. C. 20460 Dr. Lynne Tudor Task Manager 2 Programs and Output Tables for the Ohio RUM Model Random Utility Model Programs and Data Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Estimation of the Site Choice Models of Recreation . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Generate Participant Data Sets with Randomly Drawn Choice Sets . . . . . . . . . . 11 " Fishing Model  with Out of state WBType Split. sas" . . . . . . . . . . . . . 12 " Boating Model Glake Split 3_ 20_ 02. sas" . . . . . . . . . . . . . . . . . . . . . . . 24 " Viewing Model 3_ 19_ 02. sas" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 " Swimming Model Glake Split 3_ 20_ 02. sas" . . . . . . . . . . . . . . . . . . . . 46 Estimate the Site Choice Models in Limdep . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 " Run Random Fish Draws. lim" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 " Run Random Draws for Boating. lim" . . . . . . . . . . . . . . . . . . . . . . . . . . 73 " Run Random Draws for Viewing Model. lim" . . . . . . . . . . . . . . . . . . . 87 " Run Random Draws for Swimming Model. lim" . . . . . . . . . . . . . . . . . . 96 " Random Draw Parameter Analysis for Revised Models. xls" . . . . . . . 110 Estimation of the Participation Models of Recreation . . . . . . . . . . . . . . . . . . . . . . . . . 111 Generate Data Sets of Participants and Non participants . . . . . . . . . . . . . . . . . 112 " Fishing IV Calculation. sas" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 " Boating IV Calculation. sas" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 " Viewing IV Calculation. sas" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 " Swimming IV Calculation. sas" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Estimate the Trip Participation Models in Limdep . . . . . . . . . . . . . . . . . . . . . . 129 " Fishing Trip Model. lim" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 " Boating Trip Model. lim" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 " Viewing Trip Model. lim" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 " Swimming Trip Model. lim" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 3 Random Utility Model Programs and Data Sets Programs Used in the National Benefits Run Program Name Dataset DCN Description " Fishing Model  with Out of state WBType Split. sas" Data utilized matrix4. sd2 37759 Matrix of distances from zip code centroids to sites in Ohio.

rch_ info. sd2 37757 Dataset of reach attribute variables and water quality variables.

fullset2. sd2 37758 Dataset of participating anglers and their site choice information.

Data created fish_ wb. sd2 fish_ wb1. sd2 fish_ wb2. sd2 fish_ wb3. sd2 fish_ wb4. sd2 37762 37763 37764 37765 37766 Data sets containing randomly drawn choice sets for anglers.

" Boating Model Glake Split 3_ 20_ 02. sas" Data utilized matrix4. sd2 37759 Matrix of distances from zip code centroids to sites in Ohio.

rch_ info. sd2 37757 Dataset of reach attribute variables and water quality variables.

fullset2. sd2 37758 Dataset of participating anglers and their site choice information.

Data created boatg320. sd2 boatg1. sd2 boatg2. sd2 boatg3. sd2 boatg4. sd2 37767 37768 37769 37770 37771 Datasets containing randomly drawn choice sets for boaters. Programs Used in the National Benefits Run Program Name Dataset DCN Description 4 " Viewing Model 3_ 19_ 02. sas" Data utilized matrix4. sd2 37759 Matrix of distances from zip code centroids to sites in Ohio.

rch_ info. sd2 37757 Dataset of reach attribute variables and water quality variables.

fullset2. sd2 37758 Dataset of participating anglers and their site choice information.

Data created viewg320. sd2 view1. sd2 view2. sd2 view3. sd2 view4. sd2 37777 37778 37779 37780 37781 Data sets containing randomly drawn choice sets for viewers.

" Swimming Model Glake Split 3_ 20_ 02. sas" Data utilized matrix4. sd2 37759 Matrix of distances from zip code centroids to sites in Ohio.

rch_ info. sd2 37757 Dataset of reach attribute variables and water quality variables.

fullset2. sd2 37758 Dataset of participating anglers and their site choice information.

Data created swimg320. sd2 swimg1. sd2 swimg2. sd2 swimg3. sd2 swimg4. sd2 37772 37773 37774 37775 37776 Data sets containing randomly drawn choice sets for swimmers.

" Run Random Fish Draws. lim" Data utilized Fishing WBType Split. lpj Limdep project containing fish_ wb. sd2 Programs Used in the National Benefits Run Program Name Dataset DCN Description 5 Fishing WBType Split 1. lpj Limdep project containing fish_ wb1. sd2 Fishing WBType Split 2. lpj Limdep project containing fish_ wb2. sd2 Fishing WBType Split 3. lpj Limdep project containing fish_ wb3. sd2 Fishing WBType Split 4. lpj Limdep project containing fish_ wb4. sd2 Data created None Output of estimation results only.

" Run Random Draws for Boating. lim" Data utilized Boating Glake Inland Split. lpj Limdep project containing boatg320. sd2 Boating Glake Inland Split 1. lpj Limdep project containing boatg1. sd2 Boating Glake Inland Split 2. lpj Limdep project containing boatg2. sd2 Boating Glake Inland Split 3. lpj Limdep project containing boatg3. sd2 Boating Glake Inland Split 4. lpj Limdep project containing boatg4. sd2 Data created None Output of estimation results only.

" Run Random Draws for Viewing Model. lim" Data utilized Flat Viewing Model. lpj Limdep project containing viewg320. sd2 Programs Used in the National Benefits Run Program Name Dataset DCN Description 6 Flat Viewing Model 1. lpj Limdep project containing view1. sd2 Flat Viewing Model 2. lpj Limdep project containing view2. sd2 Flat Viewing Model 3. lpj Limdep project containing view3. sd2 Flat Viewing Model 4. lpj Limdep project containing view4. sd2 Data created None Output of estimation results only.

" Run Random Draws for Swimming Model. lim" Data utilized Swimming Glake Inland Split. lpj Limdep project containing swimg320. sd2 Swimming Glake Inland Split 1. lpj Limdep project containing swimg1. sd2 Swimming Glake Inland Split 2. lpj Limdep project containing swimg2. sd2 Swimming Glake Inland Split 3. lpj Limdep project containing swimg3. sd2 Swimming Glake Inland Split 4. lpj Limdep project containing swimg4. sd2 Data created None Output of estimation results only.

" Random Draw Parameter Analysis for Revised Models. xls" Data utilized None 37782 Estimation results from the various recreation model runs. Programs Used in the National Benefits Run Program Name Dataset DCN Description 7 Data created None " Fishing IV Calculation. sas" Data utilized matrix4. sd2 37759 Matrix of distances from zip code centroids to sites in Ohio.

rch_ info. sd2 37757 Dataset of reach attribute variables and water quality variables.

fullset2. sd2 37758 Dataset of participating anglers and their site choice information.

Data created fsh_ trp. sd2 Data set of demographic variables and calculated inclusive values for fishing anglers.

" Boating IV Calculation. sas" Data utilized matrix4. sd2 37759 Matrix of distances from zip code centroids to sites in Ohio.

rch_ info. sd2 37757 Dataset of reach attribute variables and water quality variables.

fullset2. sd2 37758 Dataset of participating anglers and their site choice information.

Data created boat_ trp. sd2 Data set of demographic variables and calculated inclusive values for boaters. Programs Used in the National Benefits Run Program Name Dataset DCN Description 8 " Viewing IV Calculation. sas" Data utilized matrix4. sd2 37759 Matrix of distances from zip code centroids to sites in Ohio.

rch_ info. sd2 37757 Dataset of reach attribute variables and water quality variables.

fullset2. sd2 37758 Dataset of participating anglers and their site choice information.

Data created view_ trp. sd2 Data set of demographic variables and calculated inclusive values for viewers.

" Swimming IV Calculation. sas" Data utilized matrix4. sd2 37759 Matrix of distances from zip code centroids to sites in Ohio.

rch_ info. sd2 37757 Dataset of reach attribute variables and water quality variables.

fullset2. sd2 37758 Dataset of participating anglers and their site choice information.

Data created swim_ trp. sd2 Data set of demographic variables and calculated inclusive values for swimmers.

" Fishing Trip Model. lim" Data utilized Fishing Trip Model. lpj Limdep project containing fish_ trp. sd2 Programs Used in the National Benefits Run Program Name Dataset DCN Description 9 Data created None Output estimation only.

" Boating Trip Model. lim" Data utilized Boating Trip Model. lpj Limdep project containing boat_ tp. sd2 Data created None Output estimation only.

" Viewing Trip Model. lim" Data utilized Viewing Trip Model. lpj Limdep project containing view_ trp. sd2 Data created None Output estimation only.

" Swimming Trip Model. lim" Data utilized Swimming Trip Model. lpj Limdep project containing swim_ trp. sd2 Data created None Output estimation only. 10 Estimation of the Site Choice Models of Recreation 11 Generate Participant Data Sets with Randomly Drawn Choice Sets 12 " Fishing Model  with Out of state WBType Split. sas" Randomly draws designated fishing sites within a radius from the participants home. The choice set is matched with demographic data from the respondent and a data set is created. 13 /*

PROGRAM: Fishing Model  with Out of state WBType Split. sas AUTHORS: Stuart Smith & Mike Needleman & George Parsons */ /*****************************************************************************/ /* CITATION OF ORIGINAL PROGRAM CODE */ /*****************************************************************************/ /* */ /* The original form of this random draw program was */ /* created by Mike Needleman and George Parsons at the University of */ /* Delaware under a U. S. EPA cooperative agreement for Measuring the */ /* Benefits of Water Quality Improvements. */ /*****************************************************************************/

/*****************************************************************************/ /* MODIFICATIONS TO THE ORIGINAL CODE */ /*****************************************************************************/ /* */ /* Few variable names remain unchanged. The majority of variable names */ /* have been changed to reflect the current application. An additional */ /* routine RESETIT was created by Stuart Smith. In addition, changes to */ /* the drawing criteria as well as links to the water quality data for */ /* purposes of the random draw have been added or modified from the */ /* original program code. All modifications have been made by Stuart */ /* Smith, an employee of Abt Associates. */ /*****************************************************************************/

/* REVISION DATE: 4/ 12/ 2002 ANGLERS Sites are drawn on the following criteria:

1) the site is within the distance traveled to the chosen site or 120 miles, whichever is greater. 2) the site is not the chosen site */

libname lori ' c:\ projects\ rum3\ data\ distan~ 1\'; /* Distance Matrix */ libname library ' c:\ projects\ rum3\ data\ lib\'; /* Format Codes */ libname demogr ' c:\ projects\ rum3\ data\ respon~ 1\'; /* Respondent Data */ libname reach ' c:\ projects\ rum3\ data\ waterq~ 1\'; /* Reach Attributes Data */ libname rand ' c:\ projects\ rum3\ data\ random~ 1\ Models 3_ 17_ 02\'; /* Random Data Folder */

/* Setup some macro variables */ % let draw= 60; % let activity= fisher; % let distmax= 120; % let finalSet= fish_ wb;

/* Setup ouput dataset */ 14 data randrch ( keep = full_ id siteid rch1 rch& draw dst1 dst& draw);

/* Initialize arrays for draw construction */ /* Chosen site, 59 random draws */ array rch{*} rch1 rch& draw; array dst{*} dst1 dst& draw; array norepl{*} norepl1 norepl& draw;

/* Open the demographic data file and get chosen site id# */ set demogr. fullset2;

/* Drop non fishermen, we don't need them here. */

if & activity = 0 then delete;

/* Drop non matched */

if siteid = 0 then put ' NOT MATCHED TO A SITE!!! Respnum = ' respnum; if siteid = 0 then delete;

visitid= siteid;

/* Convert zipcode to row number in the distance matrix. The matrix contains one row for each respondent zipcode. The zip_ fmt translates the zipcode into its corresponding row number in the distance matrix ( 1 337) */

zipid= input( put( home, zip_ fmt.), 3.0); if zipid = 999 then put ' ZIPID MISMATCH!!! Respnum = ' respnum; if zipid = 999 then delete;

array rchdist{ 1954} _ 1_ 1954; array c{ 4} c1 c4; array count{ 1954} cnt1 cnt1954;

set lori. matrix4 point= zipid;

do l = 1 to & draw; norepl{ l}= 0; end;

c1= 0; lori= 0;

/* Obtain the chosen reach id number */ if visitid ^= 999 then do; /* Chose site within Ohio */ rchid= visitid; newrchid= rchid; dsta= input( put( rchid, rch_ fmt.), 4.); if dsta = 9999 then put ' DSTA MISMATCH!!!'; set reach. rch_ info point= dsta; if glake = 1 then do; /* is chosen site a great lake site? */ k= 1; 15 strt1= 2; end1= 20; strt2= 21; end2= 40; strt3= 41; end3= 60; end; if river = 1 then do; /* river for chosen site */ k= 21; strt1= 1; end1= 20; strt2= 22; end2= 40; strt3= 41; end3= 60; end; if glake= 0 and river = 0 then do; /* lake for chosen site */ k= 41; strt1= 1; end1= 20; strt2= 21; end2= 40; strt3= 42; end3= 60; end; link chosen; chdist= dst( k); end; /* chosen site is within Ohio */ else do; /* chosen site outside of Ohio */ set reach. outstate point= outlink; if glake = 1 then do; /* is chosen site a great lake site? */ k= 1; strt1= 2; end1= 20; strt2= 21; end2= 40; strt3= 41; end3= 60; end; if glake = 0 then do; /* not a great lake for chosen site */ k= 21; strt1= 1; end1= 20; strt2= 22; end2= 40; strt3= 41; end3= 60; end; if glake= 0 and river = 0 then do; /* lake for chosen site */ k= 41; strt1= 1; end1= 20; 16 strt2= 21; end2= 40; strt3= 42; end3= 60; end; dst( k)= tripdist; /* set distance to calculated distance from site matching */ rch( k)= 999; /* set reach to 999 so we don't match it and can set it to be chosen */ chdist= dst( k); end;

if visitid = 0 then delete;

/*************************************/ /* MACRO  to build selected sets */ /*************************************/

% macro buildset( strt=, ennd=, cnt=, maxd=, boating=, crit=);

do k = & strt to & ennd; if k = & strt then do; do until ( lori= 1954); lori= lori+ 1; link reachit; set reach. rch_ info point= lori; /* point to reach row in water data */ /* trip= max( chdist,& maxd);*/ trip = & maxd; if & boating= 1 then do; if ramp= 1 or boatrent= 1 or dock= 1 or sailbt= 1 then boatable= 1; else boatable= 0; end; if & crit then do; c( 1) = c( 1) + 1; count( c( 1)) = lori; end; /* if criteria */ end; /* do until */ end; /* if k=& strt */ start= 1; range= 1; if c( 1) < & cnt 1 then do; if k <= ( c( 1)+ 1) then do; lori= count( k 1); link reachit; end; else do; dst( k)=.; rch( k)=.; end; /* else do */ end; else link rndset; end; /* do k=& strt to & ennd */ link resetit; 17 % mend buildset;

/*************************************/ /* END MACRO  to build selected sets*/ /*************************************/

/* Call macro for each nest to build the sets */

% buildset( strt= strt1, ennd= end1, cnt= end1, maxd= 250, boating= 0, crit=( rch( k) ^= newrchid) & ( dst( k) <= trip) & ( glake= 1)); % buildset( strt= strt2, ennd= end2, cnt= end1, maxd=& distmax, boating= 0, crit=( rch( k) ^= newrchid) & ( dst( k) <= trip) & ( river= 1)); % buildset( strt= strt3, ennd= end3, cnt= end1, maxd=& distmax, boating= 0, crit=( rch( k) ^= newrchid) & ( dst( k) <= trip) & ( river= 0) & ( glake= 0));

do i = 1 to & draw; if rch& draw = . then delete; end;

output; link resetit; goto end;

/********************************************************************/ /* CODE ROUTINES FOR BULDING THE CHOICE SET */ /********************************************************************/

/* Takes the lori index number ( 1 1954) and translates it into a reachid number */ reachit: rchid = put( lori, lori_ fmt.); if rchid = 9999 then put ' REACH ID MISMATCH!!!';

/* Translates the reachid number into its sequence number which corresponds to the variable in the distance matrix containing the distance from the zipcode to that reach. */ chosen: dsta= input( put( rchid, rch_ fmt.), 4.); if dsta = 9999 then put ' DSTA MISMATCH!!!'; dst( k) = rchdist( dsta); rch( k) = rchid; return;

/* Take the full set of possible reaches and randomly select a subset of those possible sites. Size of random draw is controled by the size of the initial rch array. */ rndset: if c( range) > 0 then do; relori: lori = int( ranuni( 0) * c( range)); if lori = 0 then lori = c( range); lori = count( lori); 18 do i = start to k 1; if norepl( i) = lori then goto relori; end; norepl( k) = lori; link reachit; end; else do; dst( k)=.; rch( k)=.; end; return;

/* Reset the necessary variables to zero for the next respondent. */ resetit: do i = 1 to & draw; norepl{ i}= 0; end; do i = 1 to 1954; count{ i}= 0; end; c1= 0; lori= 0; cold= 0; coldrch= 0; chdist= 0; miss= 0; return;

end: run;

/* End of Random Draw program code */

proc print data= randrch; format rch1 rch& draw 13.2 siteid 13.2; quit;

/* The following section adds the remaining demographic data and water quality data. It also twists the data into a limdep fashion dataset. */

/***************************************************************************** * GET DEMOGRAHIC DATA * *****************************************************************************/

data evryone; set demogr. fullset2; if & activity= 1;

/**************************************************************************** * GET INFORMATION FROM RANDOM DATA SETS * ****************************************************************************/

data random; 19 set randrch;

/**************************************************************************** * MERGE DEMOGRAPHICS AND RANDOM * ****************************************************************************/

proc sort data= random; by full_ id siteid;

proc sort data= evryone; by full_ id siteid;

data combine; merge evryone random; by full_ id siteid;

/**************************************************************************** * PREPARE FILE FOR LIMDEP * *****************************************************************************/

data concat; set combine; array reach{& draw} rch1 rch& draw; array dist{& draw} dst1 dst& draw; do I= 1 to & draw; lk= reach{ I}; ds= dist{ I}; if ds= 0 and lk ^= 999 then ds=. 5; /* Keep 0 distance for outside Ohio sites */ output; end;

/***************************************************************************** * CALCULATE VISITDM VARIABLE * ******************************************************************************/

data here; set concat; drop rch1 rch& draw dst1 dst& draw;

/* Delete records within a individual's opportunity set for which there were no lakes available. */

if lk='.' then delete;

/* This visitdm variable is only for the lakes, it does not work for the no trip lines */

if lk= siteid then visitdm= 1; else visitdm= 0; obnum=_ n_; 20 /***************************************************************************** * OUTPUT DATA SET * ******************************************************************************/

data twst; set here; if full_ id = . then delete;

proc sort data= twst; by full_ id lk; quit;

/* Read in the raw data */

data initial; set twst( rename=( lk= rf1id));

/* Calc for real sites */

if rf1id = 999 then skipit = 1; else skipit = 0;

if skipit= 0 then do; ind= input( put( rf1id, rch_ fmt.), 4.); if ind= 9999 then put ' REACH MISMATCH!!!!';

set reach. rch_ info point= ind; /* site attribute data */

if tkn= 0 or tkn=. then tkn= 0.719;

/* Create Cost of trip variables */

op_ cost=( wage*( ds/ 40))* 2; tr_ cost=((( ds* 0.29* paid_ cst* car)/ share))* 2;

price1= 0.5* op_ cost + tr_ cost; price2= 0.33* op_ cost + tr_ cost;

/* Trip cost, applies opportunity cost only to those who would have worked */

if unempl= 1 or home_ mk= 1 or retired= 1 then apply= 0; else apply= 1; trpcost = 0.29* ds* 2 + ( wage*( ds/ 40))* 2* apply;

/* Time cost only applies if income not lost */ if apply= 1 then timcost= 0; else timcost= ( ds/ 40)* 2;

tot_ n = nit + tkn; nij= 40; asc = 0;

/* For rivers and great lakes use log of reach length, for lakes calculate the log of the lake's circumference */ 21 if river= 1 or glake= 1 then do; if rch_ len ^= 0 then rchsze= log( rch_ len); else rch_ len = 0; end; else do; /* small lakes */ pi = 3.141592654; area = exp( ln_ acre)* 0.0015625; /* convert log of acres to square miles */ rad = sqrt( area/ pi); circ = 2* rad* pi; rchsze= log( circ); end;

/* Fish Abundance Measure */ /* Standardized Fish300m generated for all sites in Ohio */

if fish300m=. then do; if river= 1 then fish300m = 625.28; if glake= 1 then fish300m = 259.99; if river= 0 and glake= 0 then fish300m = 314.22; end; fish100m = fish300m/ 3; fish1m = fish300m/ 300;

/* Fish Abundance Measure */ /* fill in with average by waterbody type */

if wght300m =. then do; if river= 1 then wght300m = 6.519; if glake= 1 then wght300m = 5.021; if river= 0 and glake= 0 then wght300m = 9.173; end;

end; /* Skipit = 0 */

/* Set variables for sites outside Ohio */ if skipit = 1 then do; set reach. outstate point= outlink; if tkn= 0 or tkn=. then tkn= 0.719;

/* Trip cost, applies opportunity cost only to those who would have worked */

if unempl= 1 or home_ mk= 1 or retired= 1 then apply= 0; else apply= 1; trpcost = 0.29* ds* 2 + ( wage*( ds/ 40))* 2* apply;

/* Time cost only applies if income not lost */ if apply= 1 then timcost= 0; else timcost= ( ds/ 40)* 2;

/* For rivers and great lakes use log of reach length, for lakes calculate the log of the lake's circumference */

if river= 1 or glake= 1 then do; if segl ^= 0 then rchsze= log( segl); 22 else rchsze = 0; end; else do; /* small lakes */ if ln_ acre=. then ln_ acre= 0; pi = 3.141592654; area = segl** 2; rad = sqrt( area/ pi); circ = 2* rad* pi; rchsze= log( circ); end;

/* Fish Abundance Measure */ /* fill in with average by waterbody type */

if river= 1 then do; fish300m = 461.366; fish100m = fish300m/ 3; fish1m = fish300m/ 300; wght300m = 6.519; end; if glake= 1 then do; fish300m = 198.313; fish100m = fish300m/ 3; fish1m = fish300m/ 300; wght300m = 5.021; end; if river= 0 and glake= 0 then do; fish300m = 462.438; fish100m = fish300m/ 3; fish1m = fish300m/ 300; wght300m = 9.173; end;

ramp= 0; ln_ acre= 0; ln_ lndac= 0; fish= 0; beach= 0; dock= 0; boatrent= 0; awqc_ ex= 0; park= 0; amm= 0; bod= 0; iwb2= 0; nit= 0; oil= 0; phos= 0; tss= 0; tot_ n= 0; iwb2= 0; fuel= 0; motor= 0; sailing= 0; own_ boat= 0; boat_ use= 0; picnic= 0; nij= 40; end;

/* Convert wght300m from kg to lbs using 1kg = 2.20462 lbs */

wgt_ 300m = wght300m* 2.20462;

if iwb2=. then do; if river= 1 then iwb2= 7.75; if glake= 1 then iwb2= 7.46; if river= 0 and glake= 0 then iwb2= 7.28; end;

keep full_ id respnum rf1id price1 price2 ramp ln_ acre ln_ lndac asc own_ boat boat_ use fish beach dock picnic glake fuel motor sailing nij visitdm visits obnum kids6 new_ tox awqc_ ex park rch_ len rch_ wid river trpcost timcost age income ln_ inc 23 amm bod nit oil phos tkn tss tot_ n iwb2 rchsze fisher swimer boater viewer college house_ sz boat_ use rnt_ boat tow_ boat mor_ boat fish300m fish100m fish1m wgt_ 300m ds wage unempl home_ mk retired paid_ cst car share; run;

/***********************************************/ /* CREATE OUTPUT DATASET WITH SELECT VARIABLES */ /***********************************************/

proc sort data= initial; by full_ id obnum; quit;

data rand.& finalSet; set initial; run; 24 " Boating Model Glake Split 3_ 20_ 02. sas" Randomly draws designated boating sites within a radius from the participants home. The choice set is matched with demographic data from the respondent and a data set is created. 25 /*

PROGRAM: Boating Model Glake Split 3_ 20_ 02. sas AUTHORS: Stuart Smith & Mike Needleman & George Parsons */ /*****************************************************************************/ /* CITATION OF ORIGINAL PROGRAM CODE */ /*****************************************************************************/ /* */ /* The original form of this random draw program was */ /* created by Mike Needleman and George Parsons at the University of */ /* Delaware under a U. S. EPA cooperative agreement for Measuring the */ /* Benefits of Water Quality Improvements. */ /*****************************************************************************/

/*****************************************************************************/ /* MODIFICATIONS TO THE ORIGINAL CODE */ /*****************************************************************************/ /* */ /* Few variable names remain unchanged. The majority of variable names */ /* have been changed to reflect the current application. An additional */ /* routine RESETIT was created by Stuart Smith. In addition, changes to */ /* the drawing criteria as well as links to the water quality data for */ /* purposes of the random draw have been added or modified from the */ /* original program code. All modifications have been made by Stuart */ /* Smith, an employee of Abt Associates. */ /*****************************************************************************/

/* REVISION DATE: 3/ 20/ 2002 BOATERS Sites are drawn on the following criteria:

1) the site is within the distance traveled to the chosen site or 120 miles, whichever is greater. 2) the site is not the chosen site 3) the site is boatable */

libname lori ' c:\ projects\ rum3\ data\ distan~ 1\'; /* Distance Matrix */ libname library ' c:\ projects\ rum3\ data\ lib\'; /* Format Codes */ libname demogr ' c:\ projects\ rum3\ data\ respon~ 1\'; /* Respondent Data */ libname reach ' c:\ projects\ rum3\ data\ waterq~ 1\'; /* Reach Attributes Data */ libname rand ' c:\ projects\ rum3\ data\ random~ 1\ Models 3_ 17_ 02\'; /* Random Data Folder */

/* Setup some macro variables */ % let draw= 40; % let activity= boater; % let distmax= 120; % let finalSet= boatg320; 26 /* Setup ouput dataset */ data randrch ( keep = full_ id siteid rch1 rch& draw dst1 dst& draw);

/* Initialize arrays for draw construction */ /* Chosen site, 39 random draws */ array rch{*} rch1 rch& draw; array dst{*} dst1 dst& draw; array norepl{*} norepl1 norepl& draw;

/* Open the demographic data file and get chosen site id# */ set demogr. fullset2;

/* Drop non fishermen, we don't need them here. */

if & activity = 0 then delete;

/* Drop non matched */

if siteid = 0 then put ' NOT MATCHED TO A SITE!!! Respnum = ' respnum; if siteid = 0 then delete;

visitid= siteid;

/* Convert zipcode to row number in the distance matrix. The matrix contains one row for each respondent zipcode. The zip_ fmt translates the zipcode into its corresponding row number in the distance matrix ( 1 337) */

zipid= input( put( home, zip_ fmt.), 3.0); if zipid = 999 then put ' ZIPID MISMATCH!!! Respnum = ' respnum; if zipid = 999 then delete;

array rchdist{ 1954} _ 1_ 1954; array c{ 4} c1 c4; array count{ 1954} cnt1 cnt1954;

set lori. matrix4 point= zipid;

do l = 1 to & draw; norepl{ l}= 0; end;

c1= 0; lori= 0;

/* Obtain the chosen reach id number */ if visitid ^= 999 then do; /* Chose site within Ohio */ rchid= visitid; newrchid= rchid; dsta= input( put( rchid, rch_ fmt.), 4.); if dsta = 9999 then put ' DSTA MISMATCH!!! Respnum ' respnum ' SITE: ' rchid; if dsta = 9999 then delete; set reach. rch_ info point= dsta; 27 if glake = 1 then do; /* is chosen site a great lake site? */ k= 1; strt1= 2; end1= 20; strt2= 21; end2= 40; end; if glake = 0 then do; /* not a great lake for chosen site */ k= 21; strt1= 1; end1= 20; strt2= 22; end2= 40; end; link chosen; chdist= dst( k); end; /* chosen site is within Ohio */ else delete;

if visitid = 0 then delete;

/*************************************/ /* MACRO  to build selected sets */ /*************************************/

% macro buildset( strt=, ennd=, cnt=, maxd=, boating=, crit=);

do k = & strt to & ennd; if k = & strt then do; do until ( lori= 1954); lori= lori+ 1; link reachit; set reach. rch_ info point= lori; /* point to reach row in water data */ trip= max( chdist,& maxd); if & boating= 1 then do; if ramp= 1 or boatrent= 1 or dock= 1 or sailbt= 1 then boatable= 1; else boatable= 0; end; if & crit then do; c( 1) = c( 1) + 1; count( c( 1)) = lori; end; /* if criteria */ end; /* do until */ end; /* if k=& strt */ start= 1; range= 1; if c( 1) < & cnt 1 then do; if k <= ( c( 1)+ 1) then do; lori= count( k 1); link reachit; end; 28 else do; dst( k)=.; rch( k)=.; end; /* else do */ end; else link rndset; end; /* do k=& strt to & ennd */ link resetit;

% mend buildset;

/*************************************/ /* END MACRO  to build selected sets*/ /*************************************/

/* Call macro for each nest to build the sets */

% buildset( strt= strt1, ennd= end1, cnt= end1, maxd= 300, boating= 1, crit=( rch( k) ^= newrchid) & ( dst( k) <= trip) & ( glake= 1) & ( boatable= 1)); % buildset( strt= strt2, ennd= end2, cnt= end1, maxd=& distmax, boating= 1, crit=( rch( k) ^= newrchid) & ( dst( k) <= trip) & ( glake= 0) & ( boatable= 1));

output; link resetit; goto end;

/********************************************************************/ /* CODE ROUTINES FOR BULDING THE CHOICE SET */ /********************************************************************/

/* Takes the lori index number ( 1 1954) and translates it into a reachid number */ reachit: rchid = put( lori, lori_ fmt.); if rchid = 9999 then put ' REACH ID MISMATCH!!!';

/* Translates the reachid number into its sequence number which corresponds to the variable in the distance matrix containing the distance from the zipcode to that reach. */ chosen: dsta= input( put( rchid, rch_ fmt.), 4.); if dsta = 9999 then put ' DSTA MISMATCH!!!'; dst( k) = rchdist( dsta); rch( k) = rchid; return;

/* Take the full set of possible reaches and randomly select a subset of those possible sites. Size of random draw is controled by the size of the initial rch array. */ rndset: if c( range) > 0 then do; relori: 29 lori = int( ranuni( 0) * c( range)); if lori = 0 then lori = c( range); lori = count( lori); do i = start to k 1; if norepl( i) = lori then goto relori; end; norepl( k) = lori; link reachit; end; else do; dst( k)=.; rch( k)=.; end; return;

/* Reset the necessary variables to zero for the next respondent. */ resetit: do i = 1 to & draw; norepl{ i}= 0; end; do i = 1 to 1954; count{ i}= 0; end; c1= 0; lori= 0; cold= 0; coldrch= 0; chdist= 0; miss= 0; return;

end: run;

/* End of Random Draw program code */

proc print data= randrch; format rch1 rch& draw 13.2 siteid 13.2; quit;

/* The following section adds the remaining demographic data and water quality data. It also twists the data into a limdep fashion dataset. */

/***************************************************************************** * GET DEMOGRAHIC DATA * *****************************************************************************/

data evryone; set demogr. fullset2; if & activity= 1;

/**************************************************************************** * GET INFORMATION FROM RANDOM DATA SETS * 30 ****************************************************************************/

data random; set randrch;

/**************************************************************************** * MERGE DEMOGRAPHICS AND RANDOM * ****************************************************************************/

proc sort data= random; by full_ id siteid;

proc sort data= evryone; by full_ id siteid;

data combine; merge evryone random; by full_ id siteid;

/**************************************************************************** * PREPARE FILE FOR LIMDEP * *****************************************************************************/

data concat; set combine; array reach{& draw} rch1 rch& draw; array dist{& draw} dst1 dst& draw; do I= 1 to & draw; lk= reach{ I}; ds= dist{ I}; if ds= 0 and lk ^= 999 then ds=. 5; /* Keep 0 distance for outside Ohio sites */ output; end;

/***************************************************************************** * CALCULATE VISITDM VARIABLE * ******************************************************************************/

data here; set concat; drop rch1 rch& draw dst1 dst& draw;

/* Delete records within a individual's opportunity set for which there were no lakes available. */

if lk='.' then delete;

/* This visitdm variable is only for the lakes, it does not work for the no trip lines */

if lk= siteid then visitdm= 1; 31 else visitdm= 0; obnum=_ n_;

/***************************************************************************** * OUTPUT DATA SET * ******************************************************************************/

data twst; set here; if full_ id = . then delete;

proc sort data= twst; by full_ id lk; quit;

/* Read in the raw data */

data initial; set twst( rename=( lk= rf1id));

/* Calc for real sites */

if rf1id = 999 then skipit = 1; else skipit = 0;

if skipit= 0 then do; ind= input( put( rf1id, rch_ fmt.), 4.); if ind= 9999 then put ' REACH MISMATCH!!!!';

set reach. rch_ info point= ind; /* site attribute data */

if tkn= 0 or tkn=. then tkn= 0.719;

/* Create Cost of trip variables */

op_ cost=( wage*( ds/ 40))* 2; tr_ cost=((( ds* 0.29* paid_ cst* car)/ share))* 2;

price1= 0.5* op_ cost + tr_ cost; price2= 0.33* op_ cost + tr_ cost;

/* Trip cost, applies opportunity cost only to those who would have worked */

if unempl= 1 or home_ mk= 1 or retired= 1 then apply= 0; else apply= 1; trpcost = 0.29* ds* 2 + ( wage*( ds/ 40))* 2* apply;

/* Time cost only applies if income not lost */ if apply= 1 then timcost= 0; else timcost= ( ds/ 40)* 2;

tot_ n = nit + tkn; nij= 40; asc = 0; 32 /* For rivers and great lakes use log of reach length, for lakes calculate the log of the lake's circumference */

if river= 1 or glake= 1 then do; if rch_ len ^= 0 then rchsze= log( rch_ len); else rch_ len = 0; end; else do; /* small lakes */ pi = 3.141592654; area = exp( ln_ acre)* 0.0015625; /* convert log of acres to square miles */ rad = sqrt( area/ pi); circ = 2* rad* pi; rchsze= log( circ); end;

/* Fish Abundance Measure */ /* Standardized Fish300m generated for all sites in Ohio */

if fish300m=. then do; if river= 1 then fish300m = 625.28; if glake= 1 then fish300m = 259.99; if river= 0 and glake= 0 then fish300m = 314.22; end; fish100m = fish300m/ 3; fish1m = fish300m/ 300;

/* Fish Abundance Measure */ /* fill in with average by waterbody type */

if wght300m =. then do; if river= 1 then wght300m = 6.519; if glake= 1 then wght300m = 5.021; if river= 0 and glake= 0 then wght300m = 9.173; end;

end; /* Skipit = 0 */

/* Set variables for sites outside Ohio */ if skipit = 1 then do; set reach. outstate point= outlink; if tkn= 0 or tkn=. then tkn= 0.719;

/* Trip cost, applies opportunity cost only to those who would have worked */

if unempl= 1 or home_ mk= 1 or retired= 1 then apply= 0; else apply= 1; trpcost = 0.29* ds* 2 + ( wage*( ds/ 40))* 2* apply;

/* Time cost only applies if income not lost */ if apply= 1 then timcost= 0; else timcost= ( ds/ 40)* 2;

/* For rivers and great lakes use log of reach length, for lakes calculate the log of the lake's circumference */ 33 if river= 1 or glake= 1 then do; if segl ^= 0 then rchsze= log( segl); else rchsze = 0; end; else do; /* small lakes */ if ln_ acre=. then ln_ acre= 0; pi = 3.141592654; area = segl** 2; rad = sqrt( area/ pi); circ = 2* rad* pi; rchsze= log( circ); end;

/* Fish Abundance Measure */ /* fill in with average by waterbody type */

if river= 1 then do; fish300m = 461.366; fish100m = fish300m/ 3; fish1m = fish300m/ 300; wght300m = 6.519; end; if glake= 1 then do; fish300m = 198.313; fish100m = fish300m/ 3; fish1m = fish300m/ 300; wght300m = 5.021; end; if river= 0 and glake= 0 then do; fish300m = 462.438; fish100m = fish300m/ 3; fish1m = fish300m/ 300; wght300m = 9.173; end;

ramp= 0; ln_ acre= 0; ln_ lndac= 0; fish= 0; beach= 0; dock= 0; boatrent= 0; awqc_ ex= 0; park= 0; amm= 0; bod= 0; iwb2= 0; nit= 0; oil= 0; phos= 0; tss= 0; tot_ n= 0; iwb2= 0; fuel= 0; motor= 0; sailing= 0; own_ boat= 0; boat_ use= 0; picnic= 0; nij= 40; end;

/* Convert wght300m from kg to lbs using 1kg = 2.20462 lbs */

wgt_ 300m = wght300m* 2.20462;

if iwb2=. then do; if river= 1 then iwb2= 7.75; if glake= 1 then iwb2= 7.46; if river= 0 and glake= 0 then iwb2= 7.28; end;

keep full_ id respnum rf1id price1 price2 ramp ln_ acre ln_ lndac asc own_ boat boat_ use 34 fish beach dock picnic glake fuel motor sailing nij visitdm visits obnum kids6 new_ tox awqc_ ex park rch_ len rch_ wid river trpcost timcost age income ln_ inc amm bod nit oil phos tkn tss tot_ n iwb2 rchsze fisher swimer boater viewer college house_ sz boat_ use rnt_ boat tow_ boat mor_ boat fish300m fish100m fish1m wgt_ 300m ds wage unempl home_ mk retired paid_ cst car share; run;

/***********************************************/ /* CREATE OUTPUT DATASET WITH SELECT VARIABLES */ /***********************************************/

proc sort data= initial; by full_ id obnum; quit;

data rand.& finalSet; set initial; run; 35 " Viewing Model 3_ 19_ 02. sas" Randomly draws viewing sites within a radius from the participants home. The choice set is matched with demographic data from the respondent and a data set is created. 36 /*

PROGRAM: Viewing Model 3_ 19_ 02. sas AUTHORS: Stuart Smith & Mike Needleman & George Parsons */ /*****************************************************************************/ /* CITATION OF ORIGINAL PROGRAM CODE */ /*****************************************************************************/ /* */ /* The original form of this random draw program was */ /* created by Mike Needleman and George Parsons at the University of */ /* Delaware under a U. S. EPA cooperative agreement for Measuring the */ /* Benefits of Water Quality Improvements. */ /*****************************************************************************/

/*****************************************************************************/ /* MODIFICATIONS TO THE ORIGINAL CODE */ /*****************************************************************************/ /* */ /* Few variable names remain unchanged. The majority of variable names */ /* have been changed to reflect the current application. An additional */ /* routine RESETIT was created by Stuart Smith. In addition, changes to */ /* the drawing criteria as well as links to the water quality data for */ /* purposes of the random draw have been added or modified from the */ /* original program code. All modifications have been made by Stuart */ /* Smith, an employee of Abt Associates. */ /*****************************************************************************/

/* REVISION DATE: 3/ 19/ 2002 ANGLERS Sites are drawn on the following criteria:

1) the site is within the distance traveled to the chosen site or 120 miles, whichever is greater. 2) the site is not the chosen site */

libname lori ' c:\ projects\ rum3\ data\ distan~ 1\'; /* Distance Matrix */ libname library ' c:\ projects\ rum3\ data\ lib\'; /* Format Codes */ libname demogr ' c:\ projects\ rum3\ data\ respon~ 1\'; /* Respondent Data */ libname reach ' c:\ projects\ rum3\ data\ waterq~ 1\'; /* Reach Attributes Data */ libname rand ' c:\ projects\ rum3\ data\ random~ 1\ Models 3_ 17_ 02\'; /* Random Data Folder */

/* Setup some macro variables */ % let draw= 40; % let activity= viewer; % let distmax= 120; % let finalSet= view319;

/* Setup ouput dataset */ 37 data randrch ( keep = full_ id siteid rch1 rch& draw dst1 dst& draw);

/* Initialize arrays for draw construction */ /* Chosen site, 39 random draws */ array rch{*} rch1 rch& draw; array dst{*} dst1 dst& draw; array norepl{*} norepl1 norepl& draw;

/* Open the demographic data file and get chosen site id# */ set demogr. fullset2;

/* Drop non viewers, we don't need them here. */

if & activity = 0 then delete;

/* Drop non matched */

if siteid = 0 then put ' NOT MATCHED TO A SITE!!! Respnum = ' respnum; if siteid = 0 then delete;

visitid= siteid;

/* Convert zipcode to row number in the distance matrix. The matrix contains one row for each respondent zipcode. The zip_ fmt translates the zipcode into its corresponding row number in the distance matrix ( 1 337) */

zipid= input( put( home, zip_ fmt.), 3.0); if zipid = 999 then put ' ZIPID MISMATCH!!! Respnum = ' respnum; if zipid = 999 then delete;

array rchdist{ 1954} _ 1_ 1954; array c{ 4} c1 c4; array count{ 1954} cnt1 cnt1954;

set lori. matrix4 point= zipid;

do l = 1 to & draw; norepl{ l}= 0; end;

c1= 0; lori= 0;

/* Obtain the chosen reach id number */ if visitid ^= 999 then do; /* Chose site within Ohio */ rchid= visitid; newrchid= rchid; dsta= input( put( rchid, rch_ fmt.), 4.); if dsta = 9999 then put ' DSTA MISMATCH!!! Respnum ' respnum ' SITE: ' rchid; if dsta = 9999 then delete; set reach. rch_ info point= dsta; k= 1; 38 link chosen; chdist= dst( k); end; /* chosen site is within Ohio */ else delete;

if visitid = 0 then delete;

/*************************************/ /* MACRO  to build selected sets */ /*************************************/

% macro buildset( strt=, ennd=, cnt=, maxd=, boating=, crit=);

do k = & strt to & ennd; if k = & strt then do; do until ( lori= 1954); lori= lori+ 1; link reachit; set reach. rch_ info point= lori; /* point to reach row in water data */ trip= max( chdist,& maxd); if & boating= 1 then do; if ramp= 1 or boatrent= 1 or dock= 1 or sailbt= 1 then boatable= 1; else boatable= 0; end; if & crit then do; c( 1) = c( 1) + 1; count( c( 1)) = lori; end; /* if criteria */ end; /* do until */ end; /* if k=& strt */ start= 1; range= 1; if c( 1) < & cnt 1 then do; if k <= ( c( 1)+ 1) then do; lori= count( k 1); link reachit; end; else do; dst( k)=.; rch( k)=.; end; /* else do */ end; else link rndset; end; /* do k=& strt to & ennd */ link resetit;

% mend buildset;

/*************************************/ /* END MACRO  to build selected sets*/ /*************************************/ 39 /* Call macro for each nest to build the sets */

% buildset( strt= 2, ennd=& draw, cnt=& draw, maxd=& distmax, boating= 0, crit=( rch( k) ^= newrchid) & ( dst( k) <= trip));

output; link resetit; goto end;

/********************************************************************/ /* CODE ROUTINES FOR BULDING THE CHOICE SET */ /********************************************************************/

/* Takes the lori index number ( 1 1954) and translates it into a reachid number */ reachit: rchid = put( lori, lori_ fmt.); if rchid = 9999 then put ' REACH ID MISMATCH!!!';

/* Translates the reachid number into its sequence number which corresponds to the variable in the distance matrix containing the distance from the zipcode to that reach. */ chosen: dsta= input( put( rchid, rch_ fmt.), 4.); if dsta = 9999 then put ' DSTA MISMATCH!!!'; dst( k) = rchdist( dsta); rch( k) = rchid; return;

/* Take the full set of possible reaches and randomly select a subset of those possible sites. Size of random draw is controled by the size of the initial rch array. */ rndset: if c( range) > 0 then do; relori: lori = int( ranuni( 0) * c( range)); if lori = 0 then lori = c( range); lori = count( lori); do i = start to k 1; if norepl( i) = lori then goto relori; end; norepl( k) = lori; link reachit; end; else do; dst( k)=.; rch( k)=.; end; return;

/* Reset the necessary variables to zero for the next respondent. */ resetit: 40 do i = 1 to & draw; norepl{ i}= 0; end; do i = 1 to 1954; count{ i}= 0; end; c1= 0; lori= 0; cold= 0; coldrch= 0; chdist= 0; miss= 0; return;

end: run;

/* End of Random Draw program code */

proc print data= randrch; format rch1 rch& draw 13.2 siteid 13.2; quit;

/* The following section adds the remaining demographic data and water quality data. It also twists the data into a limdep fashion dataset. */

/***************************************************************************** * GET DEMOGRAHIC DATA * *****************************************************************************/

data evryone; set demogr. fullset2; if & activity= 1;

/**************************************************************************** * GET INFORMATION FROM RANDOM DATA SETS * ****************************************************************************/

data random; set randrch;

/**************************************************************************** * MERGE DEMOGRAPHICS AND RANDOM * ****************************************************************************/

proc sort data= random; by full_ id siteid;

proc sort data= evryone; by full_ id siteid;

data combine; merge evryone random; 41 by full_ id siteid;

/**************************************************************************** * PREPARE FILE FOR LIMDEP * *****************************************************************************/

data concat; set combine; array reach{& draw} rch1 rch& draw; array dist{& draw} dst1 dst& draw; do I= 1 to & draw; lk= reach{ I}; ds= dist{ I}; if ds= 0 and lk ^= 999 then ds=. 5; /* Keep 0 distance for outside Ohio sites */ output; end;

/***************************************************************************** * CALCULATE VISITDM VARIABLE * ******************************************************************************/

data here; set concat; drop rch1 rch& draw dst1 dst& draw;

/* Delete records within a individual's opportunity set for which there were no lakes available. */

if lk='.' then delete;

/* This visitdm variable is only for the lakes, it does not work for the no trip lines */

if lk= siteid then visitdm= 1; else visitdm= 0; obnum=_ n_;

/***************************************************************************** * OUTPUT DATA SET * ******************************************************************************/

data twst; set here; if full_ id = . then delete;

proc sort data= twst; by full_ id lk; quit;

/* Read in the raw data */ 42 data initial; set twst( rename=( lk= rf1id));

/* Calc for real sites */

if rf1id = 999 then skipit = 1; else skipit = 0;

if skipit= 0 then do; ind= input( put( rf1id, rch_ fmt.), 4.); if ind= 9999 then put ' REACH MISMATCH!!!!';

set reach. rch_ info point= ind; /* site attribute data */

if tkn= 0 or tkn=. then tkn= 0.719;

/* Create Cost of trip variables */

op_ cost=( wage*( ds/ 40))* 2; tr_ cost=((( ds* 0.29* paid_ cst* car)/ share))* 2;

price1= 0.5* op_ cost + tr_ cost; price2= 0.33* op_ cost + tr_ cost;

/* Trip cost, applies opportunity cost only to those who would have worked */

if unempl= 1 or home_ mk= 1 or retired= 1 then apply= 0; else apply= 1; trpcost = 0.29* ds* 2 + ( wage*( ds/ 40))* 2* apply;

/* Time cost only applies if income not lost */ if apply= 1 then timcost= 0; else timcost= ( ds/ 40)* 2;

tot_ n = nit + tkn; nij= 40; asc = 0;

/* For rivers and great lakes use log of reach length, for lakes calculate the log of the lake's circumference */

if river= 1 or glake= 1 then do; if rch_ len ^= 0 then rchsze= log( rch_ len); else rch_ len = 0; end; else do; /* small lakes */ pi = 3.141592654; area = exp( ln_ acre)* 0.0015625; /* convert log of acres to square miles */ rad = sqrt( area/ pi); circ = 2* rad* pi; rchsze= log( circ); end;

/* Fish Abundance Measure */ 43 /* Standardized Fish300m generated for all sites in Ohio */

if fish300m=. then do; if river= 1 then fish300m = 625.28; if glake= 1 then fish300m = 259.99; if river= 0 and glake= 0 then fish300m = 314.22; end; fish100m = fish300m/ 3; fish1m = fish300m/ 300;

/* Fish Abundance Measure */ /* fill in with average by waterbody type */

if wght300m =. then do; if river= 1 then wght300m = 6.519; if glake= 1 then wght300m = 5.021; if river= 0 and glake= 0 then wght300m = 9.173; end;

end; /* Skipit = 0 */

/* Set variables for sites outside Ohio */ if skipit = 1 then do; set reach. outstate point= outlink; if tkn= 0 or tkn=. then tkn= 0.719;

/* Trip cost, applies opportunity cost only to those who would have worked */

if unempl= 1 or home_ mk= 1 or retired= 1 then apply= 0; else apply= 1; trpcost = 0.29* ds* 2 + ( wage*( ds/ 40))* 2* apply;

/* Time cost only applies if income not lost */ if apply= 1 then timcost= 0; else timcost= ( ds/ 40)* 2;

/* For rivers and great lakes use log of reach length, for lakes calculate the log of the lake's circumference */

if river= 1 or glake= 1 then do; if segl ^= 0 then rchsze= log( segl); else rchsze = 0; end; else do; /* small lakes */ if ln_ acre=. then ln_ acre= 0; pi = 3.141592654; area = segl** 2; rad = sqrt( area/ pi); circ = 2* rad* pi; rchsze= log( circ); end;

/* Fish Abundance Measure */ /* fill in with average by waterbody type */ 44 if river= 1 then do; fish300m = 461.366; fish100m = fish300m/ 3; fish1m = fish300m/ 300; wght300m = 6.519; end; if glake= 1 then do; fish300m = 198.313; fish100m = fish300m/ 3; fish1m = fish300m/ 300; wght300m = 5.021; end; if river= 0 and glake= 0 then do; fish300m = 462.438; fish100m = fish300m/ 3; fish1m = fish300m/ 300; wght300m = 9.173; end;

ramp= 0; ln_ acre= 0; ln_ lndac= 0; fish= 0; beach= 0; dock= 0; boatrent= 0; awqc_ ex= 0; park= 0; amm= 0; bod= 0; iwb2= 0; nit= 0; oil= 0; phos= 0; tss= 0; tot_ n= 0; iwb2= 0; fuel= 0; motor= 0; sailing= 0; own_ boat= 0; boat_ use= 0; picnic= 0; nij= 40; end;

/* Convert wght300m from kg to lbs using 1kg = 2.20462 lbs */

wgt_ 300m = wght300m* 2.20462;

if iwb2=. then do; if river= 1 then iwb2= 7.75; if glake= 1 then iwb2= 7.46; if river= 0 and glake= 0 then iwb2= 7.28; end;

keep full_ id respnum rf1id price1 price2 ramp ln_ acre ln_ lndac asc own_ boat boat_ use fish beach dock picnic glake fuel motor sailing nij visitdm visits obnum kids6 new_ tox awqc_ ex park rch_ len rch_ wid river trpcost timcost age income ln_ inc amm bod nit oil phos tkn tss tot_ n iwb2 rchsze fisher swimer boater viewer college house_ sz boat_ use rnt_ boat tow_ boat mor_ boat fish300m fish100m fish1m wgt_ 300m ds wage unempl home_ mk retired paid_ cst car share; run;

/***********************************************/ /* CREATE OUTPUT DATASET WITH SELECT VARIABLES */ /***********************************************/

proc sort data= initial; by full_ id obnum; quit; 45 data rand.& finalSet; set initial; run; 46 " Swimming Model Glake Split 3_ 20_ 02. sas" Randomly draws designated swimming sites within a radius from the participants home. The choice set is matched with demographic data from the respondent and a data set is created. 47 /*

PROGRAM: Swimming Model Glake Split 3_ 20_ 02. sas AUTHORS: Stuart Smith & Mike Needleman & George Parsons */ /*****************************************************************************/ /* CITATION OF ORIGINAL PROGRAM CODE */ /*****************************************************************************/ /* */ /* The original form of this random draw program was */ /* created by Mike Needleman and George Parsons at the University of */ /* Delaware under a U. S. EPA cooperative agreement for Measuring the */ /* Benefits of Water Quality Improvements. */ /*****************************************************************************/

/*****************************************************************************/ /* MODIFICATIONS TO THE ORIGINAL CODE */ /*****************************************************************************/ /* */ /* Few variable names remain unchanged. The majority of variable names */ /* have been changed to reflect the current application. An additional */ /* routine RESETIT was created by Stuart Smith. In addition, changes to */ /* the drawing criteria as well as links to the water quality data for */ /* purposes of the random draw have been added or modified from the */ /* original program code. All modifications have been made by Stuart */ /* Smith, an employee of Abt Associates. */ /*****************************************************************************/

/* REVISION DATE: 3/ 20/ 2002 SWIMMERS Sites are drawn on the following criteria:

1) the site is within the distance traveled to the chosen site or 120 miles, whichever is greater. 2) the site is not the chosen site */

libname lori ' c:\ projects\ rum3\ data\ distan~ 1\'; /* Distance Matrix */ libname library ' c:\ projects\ rum3\ data\ lib\'; /* Format Codes */ libname demogr ' c:\ projects\ rum3\ data\ respon~ 1\'; /* Respondent Data */ libname reach ' c:\ projects\ rum3\ data\ waterq~ 1\'; /* Reach Attributes Data */ libname rand ' c:\ projects\ rum3\ data\ random~ 1\ Models 3_ 17_ 02\'; /* Random Data Folder */

/* Setup some macro variables */ % let draw= 40; % let activity= swimer; % let distmax= 120; % let finalSet= swimg320;

/* Setup ouput dataset */ 48 data randrch ( keep = full_ id siteid rch1 rch& draw dst1 dst& draw);

/* Initialize arrays for draw construction */ /* Chosen site, 39 random draws */ array rch{*} rch1 rch& draw; array dst{*} dst1 dst& draw; array norepl{*} norepl1 norepl& draw;

/* Open the demographic data file and get chosen site id# */ set demogr. fullset2;

/* Drop non fishermen, we don't need them here. */

if & activity = 0 then delete;

/* Drop non matched */

if siteid = 0 then put ' NOT MATCHED TO A SITE!!! Respnum = ' respnum; if siteid = 0 then delete;

visitid= siteid;

/* Convert zipcode to row number in the distance matrix. The matrix contains one row for each respondent zipcode. The zip_ fmt translates the zipcode into its corresponding row number in the distance matrix ( 1 337) */

zipid= input( put( home, zip_ fmt.), 3.0); if zipid = 999 then put ' ZIPID MISMATCH!!! Respnum = ' respnum; if zipid = 999 then delete;

array rchdist{ 1954} _ 1_ 1954; array c{ 4} c1 c4; array count{ 1954} cnt1 cnt1954;

set lori. matrix4 point= zipid;

do l = 1 to & draw; norepl{ l}= 0; end;

c1= 0; lori= 0;

/* Obtain the chosen reach id number */ if visitid ^= 999 then do; /* Chose site within Ohio */ rchid= visitid; newrchid= rchid; dsta= input( put( rchid, rch_ fmt.), 4.); if dsta = 9999 then put ' DSTA MISMATCH!!! Respnum ' respnum ' SITE: ' rchid; if dsta = 9999 then delete; set reach. rch_ info point= dsta; if glake = 1 then do; /* is chosen site a great lake site? */ 49 k= 1; strt1= 2; end1= 20; strt2= 21; end2= 40; end; if glake = 0 then do; /* not a great lake for chosen site */ k= 21; strt1= 1; end1= 20; strt2= 22; end2= 40; end; link chosen; chdist= dst( k); end; /* chosen site is within Ohio */ else delete;

if visitid = 0 then delete;

/*************************************/ /* MACRO  to build selected sets */ /*************************************/

% macro buildset( strt=, ennd=, cnt=, maxd=, boating=, crit=);

do k = & strt to & ennd; if k = & strt then do; do until ( lori= 1954); lori= lori+ 1; link reachit; set reach. rch_ info point= lori; /* point to reach row in water data */ trip= max( chdist,& maxd); if & boating= 1 then do; if ramp= 1 or boatrent= 1 or dock= 1 or sailbt= 1 then boatable= 1; else boatable= 0; end; if & crit then do; c( 1) = c( 1) + 1; count( c( 1)) = lori; end; /* if criteria */ end; /* do until */ end; /* if k=& strt */ start= 1; range= 1; if c( 1) < & cnt 1 then do; if k <= ( c( 1)+ 1) then do; lori= count( k 1); link reachit; end; else do; 50 dst( k)=.; rch( k)=.; end; /* else do */ end; else link rndset; end; /* do k=& strt to & ennd */ link resetit;

% mend buildset;

/*************************************/ /* END MACRO  to build selected sets*/ /*************************************/

/* Call macro for each nest to build the sets */

% buildset( strt= strt1, ennd= end1, cnt= end1, maxd= 300, boating= 0, crit=( rch( k) ^= newrchid) & ( dst( k) <= trip) & ( glake= 1)); % buildset( strt= strt2, ennd= end2, cnt= end1, maxd=& distmax, boating= 0, crit=( rch( k) ^= newrchid) & ( dst( k) <= trip) & ( glake= 0));

output; link resetit; goto end;

/********************************************************************/ /* CODE ROUTINES FOR BULDING THE CHOICE SET */ /********************************************************************/

/* Takes the lori index number ( 1 1954) and translates it into a reachid number */ reachit: rchid = put( lori, lori_ fmt.); if rchid = 9999 then put ' REACH ID MISMATCH!!!';

/* Translates the reachid number into its sequence number which corresponds to the variable in the distance matrix containing the distance from the zipcode to that reach. */ chosen: dsta= input( put( rchid, rch_ fmt.), 4.); if dsta = 9999 then put ' DSTA MISMATCH!!!'; dst( k) = rchdist( dsta); rch( k) = rchid; return;

/* Take the full set of possible reaches and randomly select a subset of those possible sites. Size of random draw is controled by the size of the initial rch array. */ rndset: if c( range) > 0 then do; relori: lori = int( ranuni( 0) * c( range)); 51 if lori = 0 then lori = c( range); lori = count( lori); do i = start to k 1; if norepl( i) = lori then goto relori; end; norepl( k) = lori; link reachit; end; else do; dst( k)=.; rch( k)=.; end; return;

/* Reset the necessary variables to zero for the next respondent. */ resetit: do i = 1 to & draw; norepl{ i}= 0; end; do i = 1 to 1954; count{ i}= 0; end; c1= 0; lori= 0; cold= 0; coldrch= 0; chdist= 0; miss= 0; return;

end: run;

/* End of Random Draw program code */

proc print data= randrch; format rch1 rch& draw 13.2 siteid 13.2; quit;

/* The following section adds the remaining demographic data and water quality data. It also twists the data into a limdep fashion dataset. */

/***************************************************************************** * GET DEMOGRAHIC DATA * *****************************************************************************/

data evryone; set demogr. fullset2; if & activity= 1;

/**************************************************************************** * GET INFORMATION FROM RANDOM DATA SETS * ****************************************************************************/ 52 data random; set randrch;

/**************************************************************************** * MERGE DEMOGRAPHICS AND RANDOM * ****************************************************************************/

proc sort data= random; by full_ id siteid;

proc sort data= evryone; by full_ id siteid;

data combine; merge evryone random; by full_ id siteid;

/**************************************************************************** * PREPARE FILE FOR LIMDEP * *****************************************************************************/

data concat; set combine; array reach{& draw} rch1 rch& draw; array dist{& draw} dst1 dst& draw; do I= 1 to & draw; lk= reach{ I}; ds= dist{ I}; if ds= 0 and lk ^= 999 then ds=. 5; /* Keep 0 distance for outside Ohio sites */ output; end;

/***************************************************************************** * CALCULATE VISITDM VARIABLE * ******************************************************************************/

data here; set concat; drop rch1 rch& draw dst1 dst& draw;

/* Delete records within a individual's opportunity set for which there were no lakes available. */

if lk='.' then delete;

/* This visitdm variable is only for the lakes, it does not work for the no trip lines */

if lk= siteid then visitdm= 1; else visitdm= 0; obnum=_ n_; 53 /***************************************************************************** * OUTPUT DATA SET * ******************************************************************************/

data twst; set here; if full_ id = . then delete;

proc sort data= twst; by full_ id lk; quit;

/* Read in the raw data */

data initial; set twst( rename=( lk= rf1id));

/* Calc for real sites */

if rf1id = 999 then skipit = 1; else skipit = 0;

if skipit= 0 then do; ind= input( put( rf1id, rch_ fmt.), 4.); if ind= 9999 then put ' REACH MISMATCH!!!!';

set reach. rch_ info point= ind; /* site attribute data */

if tkn= 0 or tkn=. then tkn= 0.719;

/* Create Cost of trip variables */

op_ cost=( wage*( ds/ 40))* 2; tr_ cost=((( ds* 0.29* paid_ cst* car)/ share))* 2;

price1= 0.5* op_ cost + tr_ cost; price2= 0.33* op_ cost + tr_ cost;

/* Trip cost, applies opportunity cost only to those who would have worked */

if unempl= 1 or home_ mk= 1 or retired= 1 then apply= 0; else apply= 1; trpcost = 0.29* ds* 2 + ( wage*( ds/ 40))* 2* apply;

/* Time cost only applies if income not lost */ if apply= 1 then timcost= 0; else timcost= ( ds/ 40)* 2;

tot_ n = nit + tkn; nij= 40; asc = 0;

/* For rivers and great lakes use log of reach length, for lakes calculate the log of the lake's circumference */ 54 if river= 1 or glake= 1 then do; if rch_ len ^= 0 then rchsze= log( rch_ len); else rch_ len = 0; end; else do; /* small lakes */ pi = 3.141592654; area = exp( ln_ acre)* 0.0015625; /* convert log of acres to square miles */ rad = sqrt( area/ pi); circ = 2* rad* pi; rchsze= log( circ); end;

/* Fish Abundance Measure */ /* Standardized Fish300m generated for all sites in Ohio */

if fish300m=. then do; if river= 1 then fish300m = 625.28; if glake= 1 then fish300m = 259.99; if river= 0 and glake= 0 then fish300m = 314.22; end; fish100m = fish300m/ 3; fish1m = fish300m/ 300;

/* Fish Abundance Measure */ /* fill in with average by waterbody type */

if wght300m =. then do; if river= 1 then wght300m = 6.519; if glake= 1 then wght300m = 5.021; if river= 0 and glake= 0 then wght300m = 9.173; end;

end; /* Skipit = 0 */

/* Set variables for sites outside Ohio */ if skipit = 1 then do; set reach. outstate point= outlink; if tkn= 0 or tkn=. then tkn= 0.719;

/* Trip cost, applies opportunity cost only to those who would have worked */

if unempl= 1 or home_ mk= 1 or retired= 1 then apply= 0; else apply= 1; trpcost = 0.29* ds* 2 + ( wage*( ds/ 40))* 2* apply;

/* Time cost only applies if income not lost */ if apply= 1 then timcost= 0; else timcost= ( ds/ 40)* 2;

/* For rivers and great lakes use log of reach length, for lakes calculate the log of the lake's circumference */

if river= 1 or glake= 1 then do; if segl ^= 0 then rchsze= log( segl); 55 else rchsze = 0; end; else do; /* small lakes */ if ln_ acre=. then ln_ acre= 0; pi = 3.141592654; area = segl** 2; rad = sqrt( area/ pi); circ = 2* rad* pi; rchsze= log( circ); end;

/* Fish Abundance Measure */ /* fill in with average by waterbody type */

if river= 1 then do; fish300m = 461.366; fish100m = fish300m/ 3; fish1m = fish300m/ 300; wght300m = 6.519; end; if glake= 1 then do; fish300m = 198.313; fish100m = fish300m/ 3; fish1m = fish300m/ 300; wght300m = 5.021; end; if river= 0 and glake= 0 then do; fish300m = 462.438; fish100m = fish300m/ 3; fish1m = fish300m/ 300; wght300m = 9.173; end;

ramp= 0; ln_ acre= 0; ln_ lndac= 0; fish= 0; beach= 0; dock= 0; boatrent= 0; awqc_ ex= 0; park= 0; amm= 0; bod= 0; iwb2= 0; nit= 0; oil= 0; phos= 0; tss= 0; tot_ n= 0; iwb2= 0; fuel= 0; motor= 0; sailing= 0; own_ boat= 0; boat_ use= 0; picnic= 0; nij= 40; end;

/* Convert wght300m from kg to lbs using 1kg = 2.20462 lbs */

wgt_ 300m = wght300m* 2.20462;

if iwb2=. then do; if river= 1 then iwb2= 7.75; if glake= 1 then iwb2= 7.46; if river= 0 and glake= 0 then iwb2= 7.28; end;

keep full_ id respnum rf1id price1 price2 ramp ln_ acre ln_ lndac asc own_ boat boat_ use fish beach dock picnic glake fuel motor sailing nij visitdm visits obnum kids6 new_ tox awqc_ ex park rch_ len rch_ wid river trpcost timcost age income ln_ inc 56 amm bod nit oil phos tkn tss tot_ n iwb2 rchsze fisher swimer boater viewer college house_ sz boat_ use rnt_ boat tow_ boat mor_ boat fish300m fish100m fish1m wgt_ 300m ds wage unempl home_ mk retired paid_ cst car share; run;

/***********************************************/ /* CREATE OUTPUT DATASET WITH SELECT VARIABLES */ /***********************************************/

proc sort data= initial; by full_ id obnum; quit;

data rand.& finalSet; set initial; run; 57 Estimate the Site Choice Models in Limdep 58 " Run Random Fish Draws. lim" Estimates a nested logit model of fishing site choice for data sets based on five random draws. 59 ? Program: Run Random Fish Draws. lim ? Author: Stuart Smith ? Date: 4.22.02 ? Draw 0 ? RUN THE DATA FILE ? Project must be loaded ? ESTIMATE THE MODEL create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.411 ; rwght = 4.445 ; lwght = 2.128 ; intramp = ramp* own_ boat ; trpcost1 = 0.29* ds* 2 ; timcost1 = ( ds/ 40)* 2* wage* 0.5 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply) ; sqiwb = sqr( iwb2)$

Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = ERIE( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), RIV( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20), LAKE( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model:

U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20)

= TrCost* trpcost + TmCost* timcost + Rmp* ramp + lngSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + W[ 1]* gwght/

U( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20)

= TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnrSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + fwght_ r* sqrwgt + W[ 1]* rwght /

U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20)

= TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnlSize* rchsze + W[ 1]* lwght ; Prob = est_ prob ; Wts= visits$

Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estimates  testing trip prediction\ fish_ wb. txt"$ 60 ? RESET RESET$

? Draw 1 ? RUN THE DATA FILE LOAD ; File=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Fishing WBType Split 1. lpj"$

? ESTIMATE THE MODEL create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.411 ; rwght = 4.445 ; lwght = 2.128 ; intramp = ramp* own_ boat ; trpcost = 0.29* ds* 2 ; timcost = ( ds/ 40)* 2* wage* 0.5 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply) ; sqiwb = sqr( iwb2)$

Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = ERIE( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), RIV( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20), LAKE( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model:

U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20)

= TrCost* trpcost + TmCost* timcost + Rmp* ramp + lngSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + W[ 1]* gwght/

U( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20)

= TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnrSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + fwght_ r* sqrwgt + W[ 1]* rwght /

U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20)

= TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnlSize* rchsze + W[ 1]* lwght ; Prob = est_ prob ; Wts= visits$

Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estimates  testing trip prediction\ fish_ wb1. txt"$ 61 ? RESET RESET$

? Draw 2 ? RUN THE DATA FILE LOAD ; File=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Fishing WBType Split 2. lpj"$

? ESTIMATE THE MODEL create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.411 ; rwght = 4.445 ; lwght = 2.128 ; intramp = ramp* own_ boat ; trpcost = 0.29* ds* 2 ; timcost = ( ds/ 40)* 2* wage* 0.5 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply) ; sqiwb = sqr( iwb2)$

Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = ERIE( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), RIV( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20), LAKE( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model:

U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20)

= TrCost* trpcost + TmCost* timcost + Rmp* ramp + lngSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + W[ 1]* gwght/

U( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20)

= TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnrSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + fwght_ r* sqrwgt + W[ 1]* rwght /

U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20)

= TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnlSize* rchsze + W[ 1]* lwght ; Prob = est_ prob ; Wts= visits$

Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estimates  testing trip prediction\ fish_ wb2. txt"$ 62 ? RESET RESET$

? Draw 3 ? RUN THE DATA FILE LOAD ; File=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Fishing WBType Split 3. lpj"$

? ESTIMATE THE MODEL create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.411 ; rwght = 4.445 ; lwght = 2.128 ; intramp = ramp* own_ boat ; trpcost = 0.29* ds* 2 ; timcost = ( ds/ 40)* 2* wage* 0.5 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply) ; sqiwb = sqr( iwb2)$

Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = ERIE( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), RIV( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20), LAKE( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model:

U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20)

= TrCost* trpcost + TmCost* timcost + Rmp* ramp + lngSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + W[ 1]* gwght/

U( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20)

= TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnrSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + fwght_ r* sqrwgt + W[ 1]* rwght /

U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20)

= TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnlSize* rchsze + W[ 1]* lwght ; Prob = est_ prob ; Wts= visits$

Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estimates  testing trip prediction\ fish_ wb3. txt"$ 63 ? RESET RESET$

? Draw 4 ? RUN THE DATA FILE LOAD ; File=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Fishing WBType Split 4. lpj"$

? ESTIMATE THE MODEL create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.411 ; rwght = 4.445 ; lwght = 2.128 ; intramp = ramp* own_ boat ; trpcost = 0.29* ds* 2 ; timcost = ( ds/ 40)* 2* wage* 0.5 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply) ; sqiwb = sqr( iwb2)$

Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = ERIE( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), RIV( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20), LAKE( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model:

U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20)

= TrCost* trpcost + TmCost* timcost + Rmp* ramp + lngSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + W[ 1]* gwght/

U( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20)

= TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnrSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + fwght_ r* sqrwgt + W[ 1]* rwght /

U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20)

= TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnlSize* rchsze + W[ 1]* lwght ; Prob = est_ prob ; Wts= visits$

Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estimates  testing trip prediction\ fish_ wb4. txt"$ 64 Program Output 65 > RESET > LOAD; file=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Fishing WBTy... . LPJ save file contained 5040 observations. > create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.411 ; rwght = 4.445 ; lwght = 2.128 ; intramp = ramp* own_ boat ; trpcost1 = 0.29* ds* 2 ; timcost1 = ( ds/ 40)* 2* wage* 0.5 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply) ; sqiwb = sqr( iwb2)$ > Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = ERIE( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), RIV( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20), LAKE( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model: U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20) = TrCost* trpcost + TmCost* timcost + Rmp* ramp + lngSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + W[ 1]* gwght/ U( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20) = TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnrSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + fwght_ r* sqrwgt + ... U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) = TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnlSize* rchsze + W[ 1]* lwght ; Prob = est_ prob ; Wts= visits$ Normal exit from iterations. Exit status= 0. ++ | FIML: Nested Multinomial Logit Model | | Maximum Likelihood Estimates | | Dependent variable VISITDM | | Weighting variable VISITS | | Number of observations 5040 | | Iterations completed 24 | | Log likelihood function  1202.850 | | Restricted log likelihood  2268.267 | | Chi squared 2130.834 | | Degrees of freedom 12 | | Prob[ ChiSqd > value] = .0000000 | | R2= 1 LogL/ LogL* Log L fncn R sqrd RsqAdj | | No coefficients  2268.2669 .46971 .46842 | | Constants only. Must be computed directly. | | Use NLOGIT ;...; RHS= ONE $ | | At start values  2291.0287 .47497 .47370 | | Response data are given as ind. choice. | ++

++ | FIML: Nested Multinomial Logit Model | | The model has 2 levels. | 66 | Nested Logit form: IV parms = tauj| i, l, si| l | | and fl. No normalizations imposed a priori. | | p( alt= k| b= j, l= i, t= l)= exp[ bX_ k| jil]/ Sum | | p( b= j| l= i, t= l)= exp[ aY_ j| il+ tauj| ilIVj| il)]/ | | Sum. p( l= i| t= l)= exp[ cZ_ i| l+ si| lIVi| l)]/ Sum | | p( t= l)= exp[ exp[ qW_ l+ flIVl]/ Sum... | | Number of obs.= 84, skipped 0 bad obs. | ++ ++++++ | Variable | Coefficient | Standard Error | b/ St. Er.| P[| Z|> z] | ++++++ Attributes in the Utility Functions ( beta) TRCOST . 4458235959E 01 .19498348E 02  23.501 .0000 TMCOST  1.222580745 .16982129  7.199 .0000 RMP 1.041479162 .12505302 8.328 .0000 LNGSIZE .6963248623 .15780358 4.413 .0000 TKNP . 3897156156 .15074140  2.585 .0097 AWQC . 3512130391 .15418551  2.278 .0227 W 1.000000000 ........( Fixed Parameter)........ LNRSIZE .8412337993E 02 .90261920E 01 .093 .9257 FWGHT_ R .6803573662E 01 .29363353E 01 2.317 .0205 LNLSIZE .7404892723 .38820552 1.907 .0565 IV parameters, tau( j| i, l), sigma( i| l), phi( l) ERIE .6772327236 .69576170E 01 9.734 .0000 RIV .4748312941 .94459684E 01 5.027 .0000 LAKE .6408882476E 01 .14759771 .434 .6641 ( Note: E+ nn or E nn means multiply by 10 to + or  nn power.)

> RESET > LOAD; file=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Fishing WBTy... . LPJ save file contained 5040 observations. > create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.411 ; rwght = 4.445 ; lwght = 2.128 ; intramp = ramp* own_ boat ; trpcost1 = 0.29* ds* 2 ; timcost1 = ( ds/ 40)* 2* wage* 0.5 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply) ; sqiwb = sqr( iwb2)$ > Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = ERIE( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), RIV( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20), LAKE( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model: U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20) = TrCost* trpcost + TmCost* timcost + Rmp* ramp + lngSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + W[ 1]* gwght/ U( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20) = TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnrSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + fwght_ r* sqrwgt + ... U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, 67 l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) = TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnlSize* rchsze + W[ 1]* lwght ; Prob = est_ prob ; Wts= visits$ Normal exit from iterations. Exit status= 0. ++ | FIML: Nested Multinomial Logit Model | | Maximum Likelihood Estimates | | Dependent variable VISITDM | | Weighting variable VISITS | | Number of observations 5040 | | Iterations completed 25 | | Log likelihood function  1221.313 | | Restricted log likelihood  2268.267 | | Chi squared 2093.908 | | Degrees of freedom 12 | | Prob[ ChiSqd > value] = .0000000 | | R2= 1 LogL/ LogL* Log L fncn R sqrd RsqAdj | | No coefficients  2268.2669 .46157 .46026 | | Constants only. Must be computed directly. | | Use NLOGIT ;...; RHS= ONE $ | | At start values  2291.0287 .46692 .46562 | | Response data are given as ind. choice. | ++

++ | FIML: Nested Multinomial Logit Model | | The model has 2 levels. | | Nested Logit form: IV parms = tauj| i, l, si| l | | and fl. No normalizations imposed a priori. | | p( alt= k| b= j, l= i, t= l)= exp[ bX_ k| jil]/ Sum | | p( b= j| l= i, t= l)= exp[ aY_ j| il+ tauj| ilIVj| il)]/ | | Sum. p( l= i| t= l)= exp[ cZ_ i| l+ si| lIVi| l)]/ Sum | | p( t= l)= exp[ exp[ qW_ l+ flIVl]/ Sum... | | Number of obs.= 84, skipped 0 bad obs. | ++ ++++++ | Variable | Coefficient | Standard Error | b/ St. Er.| P[| Z|> z] | ++++++ Attributes in the Utility Functions ( beta) TRCOST . 3971454312E 01 .18119983E 02  21.918 .0000 TMCOST  1.617184473 .20984156  7.707 .0000 RMP .9475842414 .11598774 8.170 .0000 LNGSIZE .7873481152 .13315306 5.913 .0000 TKNP . 6133485360 .15249677  4.022 .0001 AWQC . 6683311258 .15432839  4.331 .0000 W 1.000000000 ........( Fixed Parameter)........ LNRSIZE .1864567669 .88292829E 01 2.112 .0347 FWGHT_ R .5215352006E 01 .28524884E 01 1.828 .0675 LNLSIZE . 3891252873E 01 .13980787 . 278 .7808 IV parameters, tau( j| i, l), sigma( i| l), phi( l) ERIE .9725364980 .10112270 9.617 .0000 RIV .6287464957 .86991176E 01 7.228 .0000 LAKE .4999842498 .16905960 2.957 .0031 ( Note: E+ nn or E nn means multiply by 10 to + or  nn power.)

> RESET > LOAD; file=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Fishing WBTy... . LPJ save file contained 5040 observations. > create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.411 ; rwght = 4.445 ; lwght = 2.128 68 ; intramp = ramp* own_ boat ; trpcost1 = 0.29* ds* 2 ; timcost1 = ( ds/ 40)* 2* wage* 0.5 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply) ; sqiwb = sqr( iwb2)$ > Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = ERIE( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), RIV( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20), LAKE( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model: U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20) = TrCost* trpcost + TmCost* timcost + Rmp* ramp + lngSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + W[ 1]* gwght/ U( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20) = TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnrSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + fwght_ r* sqrwgt + ... U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) = TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnlSize* rchsze + W[ 1]* lwght ; Prob = est_ prob ; Wts= visits$ Normal exit from iterations. Exit status= 0. ++ | FIML: Nested Multinomial Logit Model | | Maximum Likelihood Estimates | | Dependent variable VISITDM | | Weighting variable VISITS | | Number of observations 5040 | | Iterations completed 23 | | Log likelihood function  1191.605 | | Restricted log likelihood  2268.267 | | Chi squared 2153.324 | | Degrees of freedom 12 | | Prob[ ChiSqd > value] = .0000000 | | R2= 1 LogL/ LogL* Log L fncn R sqrd RsqAdj | | No coefficients  2268.2669 .47466 .47339 | | Constants only. Must be computed directly. | | Use NLOGIT ;...; RHS= ONE $ | | At start values  2291.0287 .47988 .47862 | | Response data are given as ind. choice. | ++

++ | FIML: Nested Multinomial Logit Model | | The model has 2 levels. | | Nested Logit form: IV parms = tauj| i, l, si| l | | and fl. No normalizations imposed a priori. | | p( alt= k| b= j, l= i, t= l)= exp[ bX_ k| jil]/ Sum | | p( b= j| l= i, t= l)= exp[ aY_ j| il+ tauj| ilIVj| il)]/ | | Sum. p( l= i| t= l)= exp[ cZ_ i| l+ si| lIVi| l)]/ Sum | | p( t= l)= exp[ exp[ qW_ l+ flIVl]/ Sum... | | Number of obs.= 84, skipped 0 bad obs. | ++ ++++++ | Variable | Coefficient | Standard Error | b/ St. Er.| P[| Z|> z] | 69 ++++++ Attributes in the Utility Functions ( beta) TRCOST . 4515586676E 01 .19403947E 02  23.271 .0000 TMCOST  1.383427578 .18304041  7.558 .0000 RMP .7339254795 .11747454 6.248 .0000 LNGSIZE 1.019901963 .12640253 8.069 .0000 TKNP . 6471211063 .14665787  4.412 .0000 AWQC . 5901956713 .16012246  3.686 .0002 W 1.000000000 ........( Fixed Parameter)........ LNRSIZE .3576124043 .99815579E 01 3.583 .0003 FWGHT_ R .2574248897E 01 .27783012E 01 .927 .3542 LNLSIZE . 2128715855 .11402914  1.867 .0619 IV parameters, tau( j| i, l), sigma( i| l), phi( l) ERIE .8482709724 .82920121E 01 10.230 .0000 RIV .6033494162 .75537371E 01 7.987 .0000 LAKE .5496054007 .13607797 4.039 .0001 ( Note: E+ nn or E nn means multiply by 10 to + or  nn power.)

> RESET > LOAD; file=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Fishing WBTy... . LPJ save file contained 5040 observations. > create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.411 ; rwght = 4.445 ; lwght = 2.128 ; intramp = ramp* own_ boat ; trpcost1 = 0.29* ds* 2 ; timcost1 = ( ds/ 40)* 2* wage* 0.5 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply) ; sqiwb = sqr( iwb2)$ > Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = ERIE( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), RIV( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20), LAKE( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model: U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20) = TrCost* trpcost + TmCost* timcost + Rmp* ramp + lngSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + W[ 1]* gwght/ U( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20) = TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnrSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + fwght_ r* sqrwgt + ... U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) = TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnlSize* rchsze + W[ 1]* lwght ; Prob = est_ prob ; Wts= visits$ Normal exit from iterations. Exit status= 0. ++ | FIML: Nested Multinomial Logit Model | | Maximum Likelihood Estimates | | Dependent variable VISITDM | 70 | Weighting variable VISITS | | Number of observations 5040 | | Iterations completed 23 | | Log likelihood function  1206.182 | | Restricted log likelihood  2268.267 | | Chi squared 2124.169 | | Degrees of freedom 12 | | Prob[ ChiSqd > value] = .0000000 | | R2= 1 LogL/ LogL* Log L fncn R sqrd RsqAdj | | No coefficients  2268.2669 .46824 .46695 | | Constants only. Must be computed directly. | | Use NLOGIT ;...; RHS= ONE $ | | At start values  2291.0287 .47352 .47224 | | Response data are given as ind. choice. | ++

++ | FIML: Nested Multinomial Logit Model | | The model has 2 levels. | | Nested Logit form: IV parms = tauj| i, l, si| l | | and fl. No normalizations imposed a priori. | | p( alt= k| b= j, l= i, t= l)= exp[ bX_ k| jil]/ Sum | | p( b= j| l= i, t= l)= exp[ aY_ j| il+ tauj| ilIVj| il)]/ | | Sum. p( l= i| t= l)= exp[ cZ_ i| l+ si| lIVi| l)]/ Sum | | p( t= l)= exp[ exp[ qW_ l+ flIVl]/ Sum... | | Number of obs.= 84, skipped 0 bad obs. | ++ ++++++ | Variable | Coefficient | Standard Error | b/ St. Er.| P[| Z|> z] | ++++++ Attributes in the Utility Functions ( beta) TRCOST . 4664669013E 01 .21246729E 02  21.955 .0000 TMCOST  1.441662213 .19142439  7.531 .0000 RMP .8209476745 .10948037 7.499 .0000 LNGSIZE 1.022122330 .14170600 7.213 .0000 TKNP . 7010138234 .16328840  4.293 .0000 AWQC . 5259297643 .15358705  3.424 .0006 W 1.000000000 ........( Fixed Parameter)........ LNRSIZE .5514671054E 02 .70238850E 01 .079 .9374 FWGHT_ R .1897645484E 01 .27981606E 01 .678 .4977 LNLSIZE . 1012640419 .15459764 . 655 .5125 IV parameters, tau( j| i, l), sigma( i| l), phi( l) ERIE .7252067194 .73035258E 01 9.930 .0000 RIV .6667257415 .86240630E 01 7.731 .0000 LAKE .4667867764 .17396194 2.683 .0073 ( Note: E+ nn or E nn means multiply by 10 to + or  nn power.)

> RESET > LOAD; file=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Fishing WBTy... . LPJ save file contained 5040 observations. > create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.411 ; rwght = 4.445 ; lwght = 2.128 ; intramp = ramp* own_ boat ; trpcost1 = 0.29* ds* 2 ; timcost1 = ( ds/ 40)* 2* wage* 0.5 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply) ; sqiwb = sqr( iwb2)$ > Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, 71 r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = ERIE( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), RIV( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20), LAKE( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model: U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20) = TrCost* trpcost + TmCost* timcost + Rmp* ramp + lngSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + W[ 1]* gwght/ U( r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20) = TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnrSize* rchsze + TKNp* tkn + Awqc* awqc_ ex + fwght_ r* sqrwgt + ... U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) = TrCost* trpcost + TmCost* timcost + Rmp* ramp + lnlSize* rchsze + W[ 1]* lwght ; Prob = est_ prob ; Wts= visits$ Normal exit from iterations. Exit status= 0. ++ | FIML: Nested Multinomial Logit Model | | Maximum Likelihood Estimates | | Dependent variable VISITDM | | Weighting variable VISITS | | Number of observations 5040 | | Iterations completed 26 | | Log likelihood function  1203.522 | | Restricted log likelihood  2268.267 | | Chi squared 2129.490 | | Degrees of freedom 12 | | Prob[ ChiSqd > value] = .0000000 | | R2= 1 LogL/ LogL* Log L fncn R sqrd RsqAdj | | No coefficients  2268.2669 .46941 .46812 | | Constants only. Must be computed directly. | | Use NLOGIT ;...; RHS= ONE $ | | At start values  2291.0287 .47468 .47341 | | Response data are given as ind. choice. | ++

++ | FIML: Nested Multinomial Logit Model | | The model has 2 levels. | | Nested Logit form: IV parms = tauj| i, l, si| l | | and fl. No normalizations imposed a priori. | | p( alt= k| b= j, l= i, t= l)= exp[ bX_ k| jil]/ Sum | | p( b= j| l= i, t= l)= exp[ aY_ j| il+ tauj| ilIVj| il)]/ | | Sum. p( l= i| t= l)= exp[ cZ_ i| l+ si| lIVi| l)]/ Sum | | p( t= l)= exp[ exp[ qW_ l+ flIVl]/ Sum... | | Number of obs.= 84, skipped 0 bad obs. | ++ ++++++ | Variable | Coefficient | Standard Error | b/ St. Er.| P[| Z|> z] | ++++++ Attributes in the Utility Functions ( beta) TRCOST . 4563902846E 01 .19952295E 02  22.874 .0000 TMCOST  1.706825071 .23024114  7.413 .0000 RMP .8443516369 .11567360 7.299 .0000 LNGSIZE 1.015727992 .13390573 7.585 .0000 TKNP . 5712093761 .16296491  3.505 .0005 AWQC . 7292679627 .15283026  4.772 .0000 W 1.000000000 ........( Fixed Parameter)........ LNRSIZE .2951959139 .71999677E 01 4.100 .0000 72 FWGHT_ R .1739349564 .29534565E 01 5.889 .0000 LNLSIZE . 1391578868 .16407015 . 848 .3963 IV parameters, tau( j| i, l), sigma( i| l), phi( l) ERIE .8325466979 .83555124E 01 9.964 .0000 RIV .5815896846 .86130959E 01 6.752 .0000 LAKE .5629029147 .18557850 3.033 .0024 ( Note: E+ nn or E nn means multiply by 10 to + or  nn power.) 73 " Run Random Draws for Boating. lim" Estimates a nested logit model of boating site choice for data sets based on five random draws. 74 ? Author: Stuart Smith ? Program: Run Random Draws for Boating. lim ? Date: 4/ 22/ 2002 ? Draw 0 ? Project must already be loaded ? Estimate model create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.17 ; rwght = 3.183 ; intdock = dock* own_ boat ; trpcost1 = 0.29* ds* 2 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply)$

? Estimate the Logit Model Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = Erie( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), InLnd( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model:

U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20)

= TrCost[ 0.044347976]* trpcost + TmCost* timcost + fshwgtg* sqgwgt + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* gwght /

U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20)

= TrCost* trpcost + TmCost* timcost + fshwgtr* sqrwgt + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* rwght ; Prob = est_ prob ; Wts= visits$

Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estimates  testing trip prediction\ boat0. txt"$

? RESET RESET$

? Draw 1 ? Load the project LOAD ; File=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Boating Glake Inland Split 1. lpj"$

? Estimate model create 75 ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.17 ; rwght = 3.183 ; intdock = dock* own_ boat ; trpcost1 = 0.29* ds* 2 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply)$

? Estimate the Logit Model Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = Erie( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), InLnd( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model:

U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20)

= TrCost[ 0.044347976]* trpcost + TmCost* timcost + fshwgtg* sqgwgt + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* gwght /

U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20)

= TrCost* trpcost + TmCost* timcost + fshwgtr* sqrwgt + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* rwght ; Prob = est_ prob ; Wts= visits$

Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estimates  testing trip prediction\ boat1. txt"$

? RESET RESET$

? Draw 2 ? Load the project LOAD ; File=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Boating Glake Inland Split 2. lpj"$

? Estimate model create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.17 ; rwght = 3.183 ; intdock = dock* own_ boat ; trpcost1 = 0.29* ds* 2 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply)$

? Estimate the Logit Model 76 Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = Erie( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), InLnd( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model:

U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20)

= TrCost[ 0.044347976]* trpcost + TmCost* timcost + fshwgtg* sqgwgt + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* gwght /

U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20)

= TrCost* trpcost + TmCost* timcost + fshwgtr* sqrwgt + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* rwght ; Prob = est_ prob ; Wts= visits$

Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estimates  testing trip prediction\ boat2. txt"$

? RESET RESET$

? Draw 3 ? Load the project LOAD ; File=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Boating Glake Inland Split 3. lpj"$

? Estimate model create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.17 ; rwght = 3.183 ; intdock = dock* own_ boat ; trpcost1 = 0.29* ds* 2 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply)$

? Estimate the Logit Model Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = Erie( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), InLnd( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model: 77 U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20)

= TrCost[ 0.044347976]* trpcost + TmCost* timcost + fshwgtg* sqgwgt + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* gwght /

U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20)

= TrCost* trpcost + TmCost* timcost + fshwgtr* sqrwgt + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* rwght ; Prob = est_ prob ; Wts= visits$

Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estimates  testing trip prediction\ boat3. txt"$

? RESET RESET$

? Draw 4 ? Load the project LOAD ; File=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Boating Glake Inland Split 4. lpj"$

? Estimate model create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.17 ; rwght = 3.183 ; intdock = dock* own_ boat ; trpcost1 = 0.29* ds* 2 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply)$

? Estimate the Logit Model Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = Erie( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), InLnd( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model:

U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20)

= TrCost[ 0.044347976]* trpcost + TmCost* timcost + fshwgtg* sqgwgt + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* gwght /

U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20)

= TrCost* trpcost + TmCost* timcost + fshwgtr* sqrwgt + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* rwght 78 ; Prob = est_ prob ; Wts= visits$

Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estimates  testing trip prediction\ boat4. txt"$

? RESET RESET$ 79 Program Output 80 > RESET > LOAD; file=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Boating Glak... . LPJ save file contained 2560 observations. > create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.17 ; rwght = 3.183 ; intdock = dock* own_ boat ; trpcost1 = 0.29* ds* 2 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply)$ > Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = Erie( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), InLnd( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model: U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20) = TrCost[ 0.044347976]* trpcost + TmCost* timcost + fshwgtg* sqgwgt ... + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* gwght / U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) = TrCost* trpcost + TmCost* timcost + fshwgtr* sqrwgt + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* rwght ; Prob = est_ prob ; Wts= visits$ Normal exit from iterations. Exit status= 0. ++ | FIML: Nested Multinomial Logit Model | | Maximum Likelihood Estimates | | Dependent variable VISITDM | | Weighting variable VISITS | | Number of observations 2560 | | Iterations completed 17 | | Log likelihood function  996.6648 | | Restricted log likelihood  1364.885 | | Chi squared 736.4413 | | Degrees of freedom 8 | | Prob[ ChiSqd > value] = .0000000 | | R2= 1 LogL/ LogL* Log L fncn R sqrd RsqAdj | | No coefficients  1364.8854 .26978 .26743 | | Constants only. Must be computed directly. | | Use NLOGIT ;...; RHS= ONE $ | | At start values  1271.5112 .21616 .21364 | | Response data are given as ind. choice. | ++

++ | FIML: Nested Multinomial Logit Model | | The model has 2 levels. | | Nested Logit form: IV parms = tauj| i, l, si| l | | and fl. No normalizations imposed a priori. | | p( alt= k| b= j, l= i, t= l)= exp[ bX_ k| jil]/ Sum | | p( b= j| l= i, t= l)= exp[ aY_ j| il+ tauj| ilIVj| il)]/ | | Sum. p( l= i| t= l)= exp[ cZ_ i| l+ si| lIVi| l)]/ Sum | | p( t= l)= exp[ exp[ qW_ l+ flIVl]/ Sum... | | Number of obs.= 64, skipped 0 bad obs. | ++ ++++++ | Variable | Coefficient | Standard Error | b/ St. Er.| P[| Z|> z] | ++++++ 81 Attributes in the Utility Functions ( beta) TRCOST . 4434797600E 01........( Fixed Parameter)........ TMCOST . 2550168144 .80752301E 01  3.158 .0016 FSHWGTG . 1040885461 .69189685E 01  1.504 .1325 LNSIZE .6815398382 .90106259E 01 7.564 .0000 TKN  1.226267377 .17012969  7.208 .0000 AWQC . 6398159813 .14589525  4.385 .0000 W 1.000000000 ........( Fixed Parameter)........ FSHWGTR . 6201672993E 01 .33928432E 01  1.828 .0676 IV parameters, tau( j| i, l), sigma( i| l), phi( l) ERIE .3302432411 .51531608E 01 6.409 .0000 INLND .1367457666 .37400018E 01 3.656 .0003 ( Note: E+ nn or E nn means multiply by 10 to + or  nn power.)

> Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estim... > > RESET$ > LOAD ; File=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Boating Gl... . LPJ save file contained 2560 observations. > > create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.17 ; rwght = 3.183 ; intdock = dock* own_ boat ; trpcost1 = 0.29* ds* 2 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply)$ > Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = Erie( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), InLnd( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model: U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20) = TrCost[ 0.044347976]* trpcost + TmCost* timcost + fshwgtg* sqgwgt ... + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* gwght / U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) = TrCost* trpcost + TmCost* timcost + fshwgtr* sqrwgt + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* rwght ; Prob = est_ prob ; Wts= visits$ Normal exit from iterations. Exit status= 0. ++ | FIML: Nested Multinomial Logit Model | | Maximum Likelihood Estimates | | Dependent variable VISITDM | | Weighting variable VISITS | | Number of observations 2560 | | Iterations completed 18 | | Log likelihood function  998.6983 | | Restricted log likelihood  1364.885 | | Chi squared 732.3741 | | Degrees of freedom 8 | | Prob[ ChiSqd > value] = .0000000 | | R2= 1 LogL/ LogL* Log L fncn R sqrd RsqAdj | | No coefficients  1364.8854 .26829 .26594 | | Constants only. Must be computed directly. | 82 | Use NLOGIT ;...; RHS= ONE $ | | At start values  1260.8970 .20795 .20540 | | Response data are given as ind. choice. | ++

++ | FIML: Nested Multinomial Logit Model | | The model has 2 levels. | | Nested Logit form: IV parms = tauj| i, l, si| l | | and fl. No normalizations imposed a priori. | | p( alt= k| b= j, l= i, t= l)= exp[ bX_ k| jil]/ Sum | | p( b= j| l= i, t= l)= exp[ aY_ j| il+ tauj| ilIVj| il)]/ | | Sum. p( l= i| t= l)= exp[ cZ_ i| l+ si| lIVi| l)]/ Sum | | p( t= l)= exp[ exp[ qW_ l+ flIVl]/ Sum... | | Number of obs.= 64, skipped 0 bad obs. | ++ ++++++ | Variable | Coefficient | Standard Error | b/ St. Er.| P[| Z|> z] | ++++++ Attributes in the Utility Functions ( beta) TRCOST . 4434797600E 01........( Fixed Parameter)........ TMCOST . 3468383937 .81185076E 01  4.272 .0000 FSHWGTG . 8399836055E 01 .76393577E 01  1.100 .2715 LNSIZE .2753658009 .88907934E 01 3.097 .0020 TKN  1.265115627 .17818338  7.100 .0000 AWQC .1287521472 .13589825 .947 .3434 W 1.000000000 ........( Fixed Parameter)........ FSHWGTR .5483862361E 01 .37373468E 01 1.467 .1423 IV parameters, tau( j| i, l), sigma( i| l), phi( l) ERIE .2828220656 .48520262E 01 5.829 .0000 INLND .7106757511E 01 .37851670E 01 1.878 .0604 ( Note: E+ nn or E nn means multiply by 10 to + or  nn power.)

> Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estim... > > RESET$ > LOAD ; File=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Boating Gl... . LPJ save file contained 2560 observations. > > create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.17 ; rwght = 3.183 ; intdock = dock* own_ boat ; trpcost1 = 0.29* ds* 2 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply)$ > Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = Erie( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), InLnd( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model: U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20) = TrCost[ 0.044347976]* trpcost + TmCost* timcost + fshwgtg* sqgwgt ... + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* gwght / U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) = TrCost* trpcost + TmCost* timcost + fshwgtr* sqrwgt 83 + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* rwght ; Prob = est_ prob ; Wts= visits$ Normal exit from iterations. Exit status= 0. ++ | FIML: Nested Multinomial Logit Model | | Maximum Likelihood Estimates | | Dependent variable VISITDM | | Weighting variable VISITS | | Number of observations 2560 | | Iterations completed 17 | | Log likelihood function  987.6983 | | Restricted log likelihood  1364.885 | | Chi squared 754.3741 | | Degrees of freedom 8 | | Prob[ ChiSqd > value] = .0000000 | | R2= 1 LogL/ LogL* Log L fncn R sqrd RsqAdj | | No coefficients  1364.8854 .27635 .27402 | | Constants only. Must be computed directly. | | Use NLOGIT ;...; RHS= ONE $ | | At start values  1259.1886 .21561 .21309 | | Response data are given as ind. choice. | ++

++ | FIML: Nested Multinomial Logit Model | | The model has 2 levels. | | Nested Logit form: IV parms = tauj| i, l, si| l | | and fl. No normalizations imposed a priori. | | p( alt= k| b= j, l= i, t= l)= exp[ bX_ k| jil]/ Sum | | p( b= j| l= i, t= l)= exp[ aY_ j| il+ tauj| ilIVj| il)]/ | | Sum. p( l= i| t= l)= exp[ cZ_ i| l+ si| lIVi| l)]/ Sum | | p( t= l)= exp[ exp[ qW_ l+ flIVl]/ Sum... | | Number of obs.= 64, skipped 0 bad obs. | ++ ++++++ | Variable | Coefficient | Standard Error | b/ St. Er.| P[| Z|> z] | ++++++ Attributes in the Utility Functions ( beta) TRCOST . 4434797600E 01........( Fixed Parameter)........ TMCOST . 3735999672 .78702170E 01  4.747 .0000 FSHWGTG . 1370604348 .72516734E 01  1.890 .0588 LNSIZE .6160864128 .86574259E 01 7.116 .0000 TKN  1.063637281 .17197943  6.185 .0000 AWQC . 2915086930 .14093410  2.068 .0386 W 1.000000000 ........( Fixed Parameter)........ FSHWGTR . 1145593182E 01 .38097889E 01 . 301 .7636 IV parameters, tau( j| i, l), sigma( i| l), phi( l) ERIE .3093061821 .49607652E 01 6.235 .0000 INLND .1067987233 .32732673E 01 3.263 .0011 ( Note: E+ nn or E nn means multiply by 10 to + or  nn power.)

> Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estim... > > RESET$ > LOAD ; File=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Boating Gl... . LPJ save file contained 2560 observations. > > create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.17 ; rwght = 3.183 ; intdock = dock* own_ boat ; trpcost1 = 0.29* ds* 2 84 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply)$ > Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = Erie( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), InLnd( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model: U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20) = TrCost[ 0.044347976]* trpcost + TmCost* timcost + fshwgtg* sqgwgt ... + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* gwght / U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) = TrCost* trpcost + TmCost* timcost + fshwgtr* sqrwgt + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* rwght ; Prob = est_ prob ; Wts= visits$ Normal exit from iterations. Exit status= 0. ++ | FIML: Nested Multinomial Logit Model | | Maximum Likelihood Estimates | | Dependent variable VISITDM | | Weighting variable VISITS | | Number of observations 2560 | | Iterations completed 18 | | Log likelihood function  937.5488 | | Restricted log likelihood  1364.885 | | Chi squared 854.6733 | | Degrees of freedom 8 | | Prob[ ChiSqd > value] = .0000000 | | R2= 1 LogL/ LogL* Log L fncn R sqrd RsqAdj | | No coefficients  1364.8854 .31309 .31088 | | Constants only. Must be computed directly. | | Use NLOGIT ;...; RHS= ONE $ | | At start values  1235.6325 .24124 .23880 | | Response data are given as ind. choice. | ++

++ | FIML: Nested Multinomial Logit Model | | The model has 2 levels. | | Nested Logit form: IV parms = tauj| i, l, si| l | | and fl. No normalizations imposed a priori. | | p( alt= k| b= j, l= i, t= l)= exp[ bX_ k| jil]/ Sum | | p( b= j| l= i, t= l)= exp[ aY_ j| il+ tauj| ilIVj| il)]/ | | Sum. p( l= i| t= l)= exp[ cZ_ i| l+ si| lIVi| l)]/ Sum | | p( t= l)= exp[ exp[ qW_ l+ flIVl]/ Sum... | | Number of obs.= 64, skipped 0 bad obs. | ++ ++++++ | Variable | Coefficient | Standard Error | b/ St. Er.| P[| Z|> z] | ++++++ Attributes in the Utility Functions ( beta) TRCOST . 4434797600E 01........( Fixed Parameter)........ TMCOST . 4848390343 .90329929E 01  5.367 .0000 FSHWGTG . 1668387163 .72523539E 01  2.300 .0214 LNSIZE .6247378557 .86378195E 01 7.233 .0000 TKN  1.210590886 .19162654  6.317 .0000 AWQC . 1367269828 .13999655 . 977 .3287 W 1.000000000 ........( Fixed Parameter)........ FSHWGTR .1368226975E 01 .35452044E 01 .386 .6995 IV parameters, tau( j| i, l), sigma( i| l), phi( l) ERIE .2807257320 .44257885E 01 6.343 .0000 85 INLND .6468201115E 01 .31861177E 01 2.030 .0423 ( Note: E+ nn or E nn means multiply by 10 to + or  nn power.)

> Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estim... > > RESET$ > LOAD ; File=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Boating Gl... . LPJ save file contained 2560 observations. > > create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; gwght = 1.17 ; rwght = 3.183 ; intdock = dock* own_ boat ; trpcost1 = 0.29* ds* 2 ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply)$ > Nlogit ; Lhs = visitdm ; Choices = gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 ; Tree = Erie( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20), InLnd( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) ; Model: U( gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10, gl11, gl12, gl13, gl14, gl15, gl16, gl17, gl18, gl19, gl20) = TrCost[ 0.044347976]* trpcost + TmCost* timcost + fshwgtg* sqgwgt ... + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* gwght / U( l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20) = TrCost* trpcost + TmCost* timcost + fshwgtr* sqrwgt + lnSize* rchsze + TKN* tkn + Awqc* awqc_ ex + W[ 1]* rwght ; Prob = est_ prob ; Wts= visits$ Normal exit from iterations. Exit status= 0. ++ | FIML: Nested Multinomial Logit Model | | Maximum Likelihood Estimates | | Dependent variable VISITDM | | Weighting variable VISITS | | Number of observations 2560 | | Iterations completed 19 | | Log likelihood function  976.0246 | | Restricted log likelihood  1364.885 | | Chi squared 777.7217 | | Degrees of freedom 8 | | Prob[ ChiSqd > value] = .0000000 | | R2= 1 LogL/ LogL* Log L fncn R sqrd RsqAdj | | No coefficients  1364.8854 .28490 .28260 | | Constants only. Must be computed directly. | | Use NLOGIT ;...; RHS= ONE $ | | At start values  1254.0315 .22169 .21919 | | Response data are given as ind. choice. | ++

++ | FIML: Nested Multinomial Logit Model | | The model has 2 levels. | | Nested Logit form: IV parms = tauj| i, l, si| l | | and fl. No normalizations imposed a priori. | | p( alt= k| b= j, l= i, t= l)= exp[ bX_ k| jil]/ Sum | 86 | p( b= j| l= i, t= l)= exp[ aY_ j| il+ tauj| ilIVj| il)]/ | | Sum. p( l= i| t= l)= exp[ cZ_ i| l+ si| lIVi| l)]/ Sum | | p( t= l)= exp[ exp[ qW_ l+ flIVl]/ Sum... | | Number of obs.= 64, skipped 0 bad obs. | ++ ++++++ | Variable | Coefficient | Standard Error | b/ St. Er.| P[| Z|> z] | ++++++ Attributes in the Utility Functions ( beta) TRCOST . 4434797600E 01........( Fixed Parameter)........ TMCOST . 3485360355 .91600484E 01  3.805 .0001 FSHWGTG . 1559323614 .74595348E 01  2.090 .0366 LNSIZE .3117176853 .80484804E 01 3.873 .0001 TKN  1.170205476 .15597409  7.503 .0000 AWQC .8069152217E 01 .13721223 .588 .5565 W 1.000000000 ........( Fixed Parameter)........ FSHWGTR .8872907751E 01 .35601580E 01 2.492 .0127 IV parameters, tau( j| i, l), sigma( i| l), phi( l) ERIE .2759882699 .48655488E 01 5.672 .0000 INLND .6208483954E 01 .34521647E 01 1.798 .0721 ( Note: E+ nn or E nn means multiply by 10 to + or  nn power.)

> Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estim... > > RESET$ 87 " Run Random Draws for Viewing Model. lim" Estimates a nested logit model of viewing site choice for data sets based on five random draws. 88 ? Author: Stuart Smith ? Program: Run Random Draws for Viewing Model. lim ? Date: 4/ 22/ 2002 ? Draw 0 ? Make sure project is already loaded create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; trpcost1 = 0.29* ds* 2 ; gsze = glake* rchsze ; rsze = river* rchsze ; if ( river= 0 & glake= 0) lake= 1; ( else) lake= 0 ; lsze = lake* rchsze ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply) ; numalt= 40$

? Estimate the Logit Model nlogit; Lhs = visitdm, numalt ; Rhs = trpcost, timcost, gsze, rsze, lsze, ln_ lndac, tkn, park ; Fix = trpcost[ 0.0443476976] ; Prob = est_ prob ; Wts= visits$

Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estimates  testing trip prediction\ view0. txt"$

? Reset Reset$

? Draw 1 ? Load the project LOAD ; File=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Flat Viewing Model 1. lpj"$

? Estimate Model create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; trpcost1 = 0.29* ds* 2 ; gsze = glake* rchsze ; rsze = river* rchsze ; if ( river= 0 & glake= 0) lake= 1; ( else) lake= 0 ; lsze = lake* rchsze ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply) ; numalt= 40$

? Estimate the Logit Model nlogit; Lhs = visitdm, numalt ; Rhs = trpcost, timcost, gsze, rsze, lsze, ln_ lndac, tkn, park ; Fix = trpcost[ 0.0443476976] ; Prob = est_ prob ; Wts= visits$ 89 Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estimates  testing trip prediction\ view1. txt"$

? Reset Reset$

? Draw 2 ? Load the project LOAD ; File=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Flat Viewing Model 2. lpj"$

? Estimate Model create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; trpcost1 = 0.29* ds* 2 ; gsze = glake* rchsze ; rsze = river* rchsze ; if ( river= 0 & glake= 0) lake= 1; ( else) lake= 0 ; lsze = lake* rchsze ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply) ; numalt= 40$

? Estimate the Logit Model nlogit; Lhs = visitdm, numalt ; Rhs = trpcost, timcost, gsze, rsze, lsze, ln_ lndac, tkn, park ; Fix = trpcost[ 0.0443476976] ; Prob = est_ prob ; Wts= visits$

Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estimates  testing trip prediction\ view2. txt"$

? Reset Reset$

? Draw 3 ? Load the project LOAD ; File=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Flat Viewing Model 3. lpj"$

? Estimate Model create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; trpcost1 = 0.29* ds* 2 ; gsze = glake* rchsze ; rsze = river* rchsze ; if ( river= 0 & glake= 0) lake= 1; ( else) lake= 0 ; lsze = lake* rchsze ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply) ; numalt= 40$

? Estimate the Logit Model 90 nlogit; Lhs = visitdm, numalt ; Rhs = trpcost, timcost, gsze, rsze, lsze, ln_ lndac, tkn, park ; Fix = trpcost[ 0.0443476976] ; Prob = est_ prob ; Wts= visits$

Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estimates  testing trip prediction\ view3. txt"$

? Reset Reset$

? Draw 4 ? Load the project LOAD ; File=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Flat Viewing Model 4. lpj"$

? Estimate Model create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; trpcost1 = 0.29* ds* 2 ; gsze = glake* rchsze ; rsze = river* rchsze ; if ( river= 0 & glake= 0) lake= 1; ( else) lake= 0 ; lsze = lake* rchsze ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply) ; numalt= 40$

? Estimate the Logit Model nlogit; Lhs = visitdm, numalt ; Rhs = trpcost, timcost, gsze, rsze, lsze, ln_ lndac, tkn, park ; Fix = trpcost[ 0.0443476976] ; Prob = est_ prob ; Wts= visits$

Write ; respnum, visitdm, est_ prob ; File = " c:\ projects\ rum3\ results\ revised models 4 02\ probability estimates  testing trip prediction\ view4. txt"$

? Reset Reset$ 91 Program Output 92 > RESET > RESET > LOAD; file=" C:\ Projects\ Rum3\ Data\ Random Draws\ Models 3_ 17_ 02\ Flat Viewing... . LPJ save file contained 2920 observations. > create ; sq_ wgt = sqr( wgt_ 300m) ; sqrwgt = sq_ wgt* river ; sqgwgt = sq_ wgt* glake ; trpcost1 = 0.29* ds* 2 ; gsze = glake* rchsze ; rsze = river* rchsze ; if ( river= 0 & glake= 0) lake= 1; ( else) lake= 0 ; lsze = lake* rchsze ; if ( unempl= 1 | home_ mk= 1 | retired= 1) apply= 0; ( else) apply= 1 ; trpcost2 = ( 0.29* ds* 2) + (( 0.33* wage*( ds/ 40))* 2* apply) ; numalt= 40$ > nlogit; Lhs = visitdm, numalt ; Rhs = trpcost, timcost, gsze, rsze, lsze, ln_ lndac, tkn, park ; Fix = trpcost[ 0.0443476976] ; Prob = est_ prob ; Wts= visits$ Normal exit from iterations. Exit status= 0.