Chapter 8 - Examples
-------------------------------------------------------------------------------------
name: SN
log: ~Wooldridge\intro-econx\iexample8.smcl
log type: smcl
opened on: 9 Jan 2019, 21:10:27
. **********************************************
. * Solomon Negash - Replicating Examples
. * Wooldridge (2016). Introductory Econometrics: A Modern Approach. 6th ed.
. * STATA Program, version 15.1.
. * Chapter 8 - Heteroskedasticity
. * Computer Exercises (Examples)
. ******************** SETUP *********************
. *Example 8.1. Log wage equation with Heteroskedasticity- Robust Standard Errors
. u wage1, clear
. g marrmale = (female==0 & married==1)
. g marrfem = (female==1 & married==1)
. g singfem = (female==1 & married==0)
. g singmen = (female==0 & married==0)
. eststo hetroskedastic: qui reg lwage marrmale marrfem singfem educ exper* tenur*
. eststo robust: qui reg lwage marrmale marrfem singfem educ exper* tenur*, robust
. estout , cells(b(nostar fmt(3)) se(par fmt(3))) stats(r2 r2_a N, fmt(%9.3f %9.3f %9.0g)
> labels(R-squared Adj-R-squared)) varlabels(_cons Constant) varwidth(20)
----------------------------------------------
hetroskeda~c robust
b/se b/se
----------------------------------------------
marrmale 0.213 0.213
(0.055) (0.057)
marrfem -0.198 -0.198
(0.058) (0.059)
singfem -0.110 -0.110
(0.056) (0.057)
educ 0.079 0.079
(0.007) (0.007)
exper 0.027 0.027
(0.005) (0.005)
expersq -0.001 -0.001
(0.000) (0.000)
tenure 0.029 0.029
(0.007) (0.007)
tenursq -0.001 -0.001
(0.000) (0.000)
Constant 0.321 0.321
(0.100) (0.109)
----------------------------------------------
R-squared 0.461 0.461
Adj-R-squared 0.453 0.453
N 526 526
----------------------------------------------
. est clear
. *Example 8.2. Heteroskedasticity-Robust F Statistic
. u gpa3, clear
. eststo hetrosked: qui reg cumgpa sat hsperc tothrs female black white if spring==1
. eststo robust: qui reg cumgpa sat hsperc tothrs female black white if spring==1, robust
. estout , cells(b(nostar fmt(5)) se(par fmt(5))) stats(r2 r2_a N, fmt(%9.3f %9.3f %9.0g)
> labels(R-squared Adj-R-squared)) varlabels(_cons Constant) varwidth(20)
----------------------------------------------
hetrosked robust
b/se b/se
----------------------------------------------
sat 0.00114 0.00114
(0.00018) (0.00019)
hsperc -0.00857 -0.00857
(0.00124) (0.00142)
tothrs 0.00250 0.00250
(0.00073) (0.00074)
female 0.30343 0.30343
(0.05902) (0.05914)
black -0.12828 -0.12828
(0.14737) (0.11924)
white -0.05872 -0.05872
(0.14099) (0.11139)
Constant 1.47006 1.47006
(0.22980) (0.22068)
----------------------------------------------
R-squared 0.401 0.401
Adj-R-squared 0.391 0.391
N 366 366
----------------------------------------------
. est clear
. *Example 8.3. Heteroskedasticity-Robust LM Statistic
. u crime1, clear
. g avgsensq = avgsen^2
. eststo hetrosked: qui reg narr86 pcnv avgsen avgsensq ptime86 qemp86 inc86 black hispan
. eststo robust: qui reg narr86 pcnv avgsen avgsensq ptime86 qemp86 inc86 black hispan, r
. estout , cells(b(nostar fmt(5)) se(par fmt(5))) stats(r2 r2_a N, fmt(%9.3f %9.3f %9.0g)
> labels(R-squared Adj-R-squared)) varlabels(_cons Constant) varwidth(20)
----------------------------------------------
hetrosked robust
b/se b/se
----------------------------------------------
pcnv -0.13560 -0.13560
(0.04037) (0.03362)
avgsen 0.01784 0.01784
(0.00970) (0.01012)
avgsensq -0.00052 -0.00052
(0.00030) (0.00021)
ptime86 -0.03936 -0.03936
(0.00869) (0.00622)
qemp86 -0.05051 -0.05051
(0.01443) (0.01420)
inc86 -0.00148 -0.00148
(0.00034) (0.00023)
black 0.32460 0.32460
(0.04542) (0.05851)
hispan 0.19338 0.19338
(0.03970) (0.04030)
Constant 0.56701 0.56701
(0.03606) (0.04028)
----------------------------------------------
R-squared 0.073 0.073
Adj-R-squared 0.070 0.070
N 2725 2725
----------------------------------------------
. est clear
. *LM Statistic - not-robust (See Section 5-2)
. qui reg narr86 pcnv ptime86 qemp86 inc86 black hispan
. predict u, res
. reg u pcnv avgsen avgsensq ptime86 qemp86 inc86 black hispan
Source | SS df MS Number of obs = 2,725
-------------+---------------------------------- F(8, 2716) = 0.43
Model | 2.37155739 8 .296444674 Prob > F = 0.9025
Residual | 1863.99804 2,716 .686302664 R-squared = 0.0013
-------------+---------------------------------- Adj R-squared = -0.0017
Total | 1866.36959 2,724 .685157707 Root MSE = .82843
------------------------------------------------------------------------------
u | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
pcnv | -.003317 .0403699 -0.08 0.935 -.0824758 .0758418
avgsen | .0178411 .009696 1.84 0.066 -.0011713 .0368534
avgsensq | -.0005163 .000297 -1.74 0.082 -.0010987 .0000661
ptime86 | -.0015647 .0086935 -0.18 0.857 -.0186112 .0154819
qemp86 | .0004742 .0144345 0.03 0.974 -.0278295 .0287779
inc86 | .0000103 .0003405 0.03 0.976 -.0006574 .000678
black | -.0050861 .0454188 -0.11 0.911 -.094145 .0839729
hispan | -.0020709 .0397035 -0.05 0.958 -.0799229 .0757812
_cons | -.0033216 .0360573 -0.09 0.927 -.0740242 .0673809
------------------------------------------------------------------------------
. display as text "N*Rsq = " 2725*.0013
N*Rsq = 3.5425
. *LM Statistic - robust
. foreach x of var avgsen avgsensq {
. qui reg `x' pcnv ptime86 qemp86 inc86 black hispan
. predict r_`x', residual
. gen ures`x'= u*r_`x'
. }
. gen one=1
. reg one ures*, noc
Source | SS df MS Number of obs = 2,725
-------------+---------------------------------- F(2, 2723) = 2.00
Model | 3.99708536 2 1.99854268 Prob > F = 0.1355
Residual | 2721.00291 2,723 .999266586 R-squared = 0.0015
-------------+---------------------------------- Adj R-squared = 0.0007
Total | 2725 2,725 1 Root MSE = .99963
------------------------------------------------------------------------------
one | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
uresavgsen | .0277846 .0140598 1.98 0.048 .0002156 .0553537
uresavgsensq | -.0010447 .0005479 -1.91 0.057 -.002119 .0000296
------------------------------------------------------------------------------
. display as text "N - SSR = " 2725 - 2721.0029
N - SSR = 3.9971
. *Example 8.4. Heteroskedasticity in Housing Price Equations
. u hprice1, clear
. reg price lotsize sqrft bdrms
Source | SS df MS Number of obs = 88
-------------+---------------------------------- F(3, 84) = 57.46
Model | 617130.701 3 205710.234 Prob > F = 0.0000
Residual | 300723.805 84 3580.0453 R-squared = 0.6724
-------------+---------------------------------- Adj R-squared = 0.6607
Total | 917854.506 87 10550.0518 Root MSE = 59.833
------------------------------------------------------------------------------
price | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
lotsize | .0020677 .0006421 3.22 0.002 .0007908 .0033446
sqrft | .1227782 .0132374 9.28 0.000 .0964541 .1491022
bdrms | 13.85252 9.010145 1.54 0.128 -4.065141 31.77018
_cons | -21.77031 29.47504 -0.74 0.462 -80.38466 36.84405
------------------------------------------------------------------------------
. predict u, res
. g u2=u^2
. reg u2 lotsize sqrft bdrms
Source | SS df MS Number of obs = 88
-------------+---------------------------------- F(3, 84) = 5.34
Model | 701213780 3 233737927 Prob > F = 0.0020
Residual | 3.6775e+09 84 43780003.5 R-squared = 0.1601
-------------+---------------------------------- Adj R-squared = 0.1301
Total | 4.3787e+09 87 50330276.7 Root MSE = 6616.6
------------------------------------------------------------------------------
u2 | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
lotsize | .2015209 .0710091 2.84 0.006 .0603116 .3427302
sqrft | 1.691037 1.46385 1.16 0.251 -1.219989 4.602063
bdrms | 1041.76 996.381 1.05 0.299 -939.6526 3023.173
_cons | -5522.795 3259.478 -1.69 0.094 -12004.62 959.0348
------------------------------------------------------------------------------
. display as text "LM = N*Rsq =" 88 * .1601
LM = N*Rsq =14.0888
. display chi2tail(3, 88*.1601)
.00278674
. reg lprice llotsize lsqrft bdrms
Source | SS df MS Number of obs = 88
-------------+---------------------------------- F(3, 84) = 50.42
Model | 5.15504028 3 1.71834676 Prob > F = 0.0000
Residual | 2.86256324 84 .034078134 R-squared = 0.6430
-------------+---------------------------------- Adj R-squared = 0.6302
Total | 8.01760352 87 .092156362 Root MSE = .1846
------------------------------------------------------------------------------
lprice | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
llotsize | .1679667 .0382812 4.39 0.000 .0918404 .244093
lsqrft | .7002324 .0928652 7.54 0.000 .5155597 .8849051
bdrms | .0369584 .0275313 1.34 0.183 -.0177906 .0917074
_cons | -1.297042 .6512836 -1.99 0.050 -2.592191 -.001893
------------------------------------------------------------------------------
. predict lu, res
. g lu2=lu^2
. reg lu2 llotsize lsqrft bdrms
Source | SS df MS Number of obs = 88
-------------+---------------------------------- F(3, 84) = 1.41
Model | .022620168 3 .007540056 Prob > F = 0.2451
Residual | .448717194 84 .005341871 R-squared = 0.0480
-------------+---------------------------------- Adj R-squared = 0.0140
Total | .471337362 87 .005417671 Root MSE = .07309
------------------------------------------------------------------------------
lu2 | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
llotsize | -.0070156 .0151563 -0.46 0.645 -.0371556 .0231244
lsqrft | -.0627368 .0367673 -1.71 0.092 -.1358526 .0103791
bdrms | .0168407 .0109002 1.54 0.126 -.0048356 .038517
_cons | .509994 .257857 1.98 0.051 -.0027829 1.022771
------------------------------------------------------------------------------
. display as text "LM = N*Rsq =" 88 * .048
LM = N*Rsq =4.224
. display chi2tail(3, 88*.048)
.23826999
. *Example 8.5. Special Form of the White Test
. u hprice1, clear
. reg lprice llotsize lsqrft bdrms
Source | SS df MS Number of obs = 88
-------------+---------------------------------- F(3, 84) = 50.42
Model | 5.15504028 3 1.71834676 Prob > F = 0.0000
Residual | 2.86256324 84 .034078134 R-squared = 0.6430
-------------+---------------------------------- Adj R-squared = 0.6302
Total | 8.01760352 87 .092156362 Root MSE = .1846
------------------------------------------------------------------------------
lprice | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
llotsize | .1679667 .0382812 4.39 0.000 .0918404 .244093
lsqrft | .7002324 .0928652 7.54 0.000 .5155597 .8849051
bdrms | .0369584 .0275313 1.34 0.183 -.0177906 .0917074
_cons | -1.297042 .6512836 -1.99 0.050 -2.592191 -.001893
------------------------------------------------------------------------------
. predict u, res
. g u2=u^2
. predict y, xb
. gen y2 = y^2
. reg u2 y y2
Source | SS df MS Number of obs = 88
-------------+---------------------------------- F(2, 85) = 1.73
Model | .018463986 2 .009231993 Prob > F = 0.1830
Residual | .452873375 85 .005327922 R-squared = 0.0392
-------------+---------------------------------- Adj R-squared = 0.0166
Total | .471337362 87 .005417671 Root MSE = .07299
------------------------------------------------------------------------------
u2 | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
y | -1.709221 1.163334 -1.47 0.145 -4.022241 .6037986
y2 | .1451354 .1009925 1.44 0.154 -.0556647 .3459354
_cons | 5.046839 3.345002 1.51 0.135 -1.603921 11.6976
------------------------------------------------------------------------------
. display as text "LM = N*Rsq =" 88 * .0392
LM = N*Rsq =3.4496
. display chi2tail(2, 88*.0392)
.17820869
.*Example 8.6. Financial Wealth Equation
. u 401ksubs, clear
. keep if fsize==1
(7,258 observations deleted)
. g age25sq=(age-25)^2
. eststo OLS1: qui reg nettfa inc, r
. eststo WLS1: qui reg nettfa inc [aw=1/inc]
. eststo OLS2: qui reg nettfa inc age25sq male e401k, r
. eststo WLS2: qui reg nettfa inc age25sq male e401k [aw=1/inc]
. estout , cells(b(nostar fmt(5)) se(par fmt(5))) stats(r2 N, fmt(%9.3f %9.0g) labels(R-
> squared Adj-R-squared)) varlabels(_cons Constant) varwidth(20) ti(Table 8.1 Dependent Vari
> able: nettfa)
Table 8.1 Dependent Variable: nettfa
------------------------------------------------------------------------
OLS1 WLS1 OLS2 WLS2
b/se b/se b/se b/se
------------------------------------------------------------------------
inc 0.82068 0.78705 0.77058 0.74038
(0.10359) (0.06348) (0.09957) (0.06430)
age25sq 0.02513 0.01754
(0.00434) (0.00193)
male 2.47793 1.84053
(2.05836) (1.56359)
e401k 6.88622 5.18828
(2.28658) (1.70343)
Constant -10.57095 -9.58070 -20.98499 -16.70252
(2.53027) (1.65328) (3.49519) (1.95799)
------------------------------------------------------------------------
R-squared 0.083 0.071 0.128 0.112
Adj-R-squared 2017 2017 2017 2017
------------------------------------------------------------------------
. est clear
. *Example 8.7. Demand for Cigarettes
. u smoke, clear
. local x "lincome lcigpric educ age agesq restaurn"
. eststo OLS: reg cigs `x'
Source | SS df MS Number of obs = 807
-------------+---------------------------------- F(6, 800) = 7.42
Model | 8003.02506 6 1333.83751 Prob > F = 0.0000
Residual | 143750.658 800 179.688322 R-squared = 0.0527
-------------+---------------------------------- Adj R-squared = 0.0456
Total | 151753.683 806 188.280003 Root MSE = 13.405
------------------------------------------------------------------------------
cigs | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
lincome | .8802682 .7277832 1.21 0.227 -.548322 2.308858
lcigpric | -.7508586 5.773343 -0.13 0.897 -12.08355 10.58183
educ | -.5014982 .1670772 -3.00 0.003 -.8294597 -.1735368
age | .7706936 .1601223 4.81 0.000 .456384 1.085003
agesq | -.0090228 .001743 -5.18 0.000 -.0124443 -.0056013
restaurn | -2.825085 1.111794 -2.54 0.011 -5.007462 -.6427078
_cons | -3.639841 24.07866 -0.15 0.880 -50.90466 43.62497
------------------------------------------------------------------------------
. predict u, res
. gen lu2=ln(u^2)
. qui reg lu2 `x'
. predict lu2h, xb
. g e_lu2h=exp(lu2h)
. eststo GLS: reg cigs `x' [aw=1/e_lu2h]
(sum of wgt is 19.97738570454038)
Source | SS df MS Number of obs = 807
-------------+---------------------------------- F(6, 800) = 17.06
Model | 10302.646 6 1717.10767 Prob > F = 0.0000
Residual | 80542.159 800 100.677699 R-squared = 0.1134
-------------+---------------------------------- Adj R-squared = 0.1068
Total | 90844.805 806 112.710676 Root MSE = 10.034
------------------------------------------------------------------------------
cigs | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
lincome | 1.29524 .4370118 2.96 0.003 .4374148 2.153065
lcigpric | -2.940312 4.460144 -0.66 0.510 -11.69528 5.814656
educ | -.4634463 .1201587 -3.86 0.000 -.6993099 -.2275828
age | .4819479 .0968082 4.98 0.000 .2919197 .671976
agesq | -.0056272 .0009395 -5.99 0.000 -.0074713 -.0037831
restaurn | -3.461064 .795505 -4.35 0.000 -5.022588 -1.899541
_cons | 5.635463 17.80314 0.32 0.752 -29.31092 40.58184
------------------------------------------------------------------------------
. estout , cells(b(nostar fmt(5)) se(par fmt(5))) stats(r2 r2_a N, fmt(%9.3f %9.3f %9.0g)
> labels(R-squared Adj-R-squared)) varlabels(_cons Constant) varwidth(20)
----------------------------------------------
OLS GLS
b/se b/se
----------------------------------------------
lincome 0.88027 1.29524
(0.72778) (0.43701)
lcigpric -0.75086 -2.94031
(5.77334) (4.46014)
educ -0.50150 -0.46345
(0.16708) (0.12016)
age 0.77069 0.48195
(0.16012) (0.09681)
agesq -0.00902 -0.00563
(0.00174) (0.00094)
restaurn -2.82508 -3.46106
(1.11179) (0.79550)
Constant -3.63984 5.63546
(24.07866) (17.80314)
----------------------------------------------
R-squared 0.053 0.113
Adj-R-squared 0.046 0.107
N 807 807
----------------------------------------------
. est clear
. *Example 8.8. Labor Force Participation of Married Women
. u mroz, clear
. local x "nwifeinc educ exper* age kidslt6 kidsge6"
. eststo heterosked: qui reg inlf `x'
. eststo Robust: qui reg inlf `x', r
. estout , cells(b(nostar fmt(5)) se(par fmt(5))) stats(r2 N, fmt(%9.3f %9.0g) labels(R-sq
> uared Adj-R-squared)) varlabels(_cons Constant) varwidth(20)
----------------------------------------------
heterosked Robust
b/se b/se
----------------------------------------------
nwifeinc -0.00341 -0.00341
(0.00145) (0.00152)
educ 0.03800 0.03800
(0.00738) (0.00727)
exper 0.03949 0.03949
(0.00567) (0.00581)
expersq -0.00060 -0.00060
(0.00018) (0.00019)
age -0.01609 -0.01609
(0.00248) (0.00240)
kidslt6 -0.26181 -0.26181
(0.03351) (0.03178)
kidsge6 0.01301 0.01301
(0.01320) (0.01353)
Constant 0.58552 0.58552
(0.15418) (0.15226)
----------------------------------------------
R-squared 0.264 0.264
Adj-R-squared 753 753
----------------------------------------------
. est clear
. *Example 8.9. Determinants of Personal Computer Ownership
. u gpa1, clear
. g parcoll = ( fathcoll==1 | mothcoll==1)
. eststo heterosked: qui reg PC hsGPA ACT parcoll
. eststo heterosked: qui reg PC hsGPA ACT parcoll, r
. estout, cells(b(nostar fmt(5)) se(par fmt(5))) stats(r2 N, fmt(%9.3f %9.0g) labels(R-squ
> ared Adj-R-squared)) varlabels(_cons Constant) varwidth(20)
---------------------------------
heterosked
b/se
---------------------------------
hsGPA 0.06539
(0.14149)
ACT 0.00056
(0.01607)
parcoll 0.22105
(0.08804)
Constant -0.00043
(0.49588)
---------------------------------
R-squared 0.042
Adj-R-squared 141
---------------------------------
. est clear
. qui reg PC hsGPA ACT parcoll
. predict yhat, xb
. gen hhat = yhat*(1-yhat)
. reg PC hsGPA ACT parcoll [aw=1/hhat]
(sum of wgt is 628.1830743667747)
Source | SS df MS Number of obs = 141
-------------+---------------------------------- F(3, 137) = 2.22
Model | 1.54663033 3 .515543445 Prob > F = 0.0882
Residual | 31.7573194 137 .231805251 R-squared = 0.0464
-------------+---------------------------------- Adj R-squared = 0.0256
Total | 33.3039497 140 .237885355 Root MSE = .48146
------------------------------------------------------------------------------
PC | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
hsGPA | .0327029 .1298817 0.25 0.802 -.2241292 .289535
ACT | .004272 .0154527 0.28 0.783 -.0262847 .0348286
parcoll | .2151862 .0862918 2.49 0.014 .04455 .3858224
_cons | .0262099 .4766498 0.05 0.956 -.9163323 .9687521
------------------------------------------------------------------------------
. log close
name: SN
log: ~Wooldridge\intro-econx\iexample8.smcl
log type: smcl
closed on: 9 Jan 2019, 21:10:28
------------------------------------------------------------------------------------------