Wooldridge Source: David Harvey, a former MSU undergraduate, collected the data for 64 “college towns” from the 1980 and 1990 United States censuses. Data loads lazily.
data('rental')
A data.frame with 128 observations on 23 variables:
city: city label, 1 to 64
year: 80 or 90
pop: city population
enroll: # college students enrolled
rent: average rent
rnthsg: renter occupied units
tothsg: occupied housing units
avginc: per capita income
lenroll: log(enroll)
lpop: log(pop)
lrent: log(rent)
ltothsg: log(tothsg)
lrnthsg: log(rnthsg)
lavginc: log(avginc)
clenroll: change in lrent from 80 to 90
clpop: change in lpop
clrent: change in lrent
cltothsg: change in ltothsg
clrnthsg: change in lrnthsg
clavginc: change in lavginc
pctstu: percent of population students
cpctstu: change in pctstu
y90: =1 if year == 90
https://www.cengage.com/cgi-wadsworth/course_products_wp.pl?fid=M20b&product_isbn_issn=9781111531041
These data can be used in a somewhat crude simultaneous equations analysis, either focusing on one year or pooling the two years. (In the latter case, in an advanced class, you might have students compute the standard errors robust to serial correlation across the two time periods.) The demand equation would have ltothsg as a function of lrent, lavginc, and lpop. The supply equation would have ltothsg as a function of lrent, pctst, and lpop. Thus, in estimating the demand function, pctstu is used as an IV for lrent. Clearly one can quibble with excluding pctstu from the demand equation, but the estimated demand function gives a negative price effect. Getting information for 2000, and adding many more college towns, would make for a much better analysis. Information on number of spaces in on-campus dormitories would be a big improvement, too.
Used in Text: pages 160, 477, 503-504
str(rental)
#> 'data.frame': 128 obs. of 23 variables:
#> $ city : int 1 1 2 2 3 3 4 4 5 5 ...
#> $ year : int 80 90 80 90 80 90 80 90 80 90 ...
#> $ pop : num 75211 77759 106743 141865 36608 ...
#> $ enroll : num 15303 18017 22462 29769 11847 ...
#> $ rent : int 197 342 323 496 216 351 267 588 475 925 ...
#> $ rnthsg : num 13475 15660 14580 26895 7026 ...
#> $ tothsg : num 26167 29467 37277 55540 13482 ...
#> $ avginc : num 11537 19568 19841 31885 11455 ...
#> $ lenroll : num 9.64 9.8 10.02 10.3 9.38 ...
#> $ lpop : num 11.2 11.3 11.6 11.9 10.5 ...
#> $ lrent : num 5.28 5.83 5.78 6.21 5.38 ...
#> $ ltothsg : num 10.17 10.29 10.53 10.92 9.51 ...
#> $ lrnthsg : num 9.51 9.66 9.59 10.2 8.86 ...
#> $ lavginc : num 9.35 9.88 9.9 10.37 9.35 ...
#> $ clenroll: num NA -15293 NA -22452 NA ...
#> $ clpop : num NA 0.0333 NA 0.2845 NA ...
#> $ clrent : num NA 0.552 NA 0.429 NA ...
#> $ cltothsg: num NA 0.119 NA 0.399 NA ...
#> $ clrnthsg: num NA 0.15 NA 0.612 NA ...
#> $ clavginc: num NA 0.528 NA 0.474 NA ...
#> $ pctstu : num 20.3 23.2 21 21 32.4 ...
#> $ cpctstu : num NA 2.824 NA -0.059 NA ...
#> $ y90 : int 0 1 0 1 0 1 0 1 0 1 ...
#> - attr(*, "time.stamp")= chr "25 Jun 2011 23:03"