I working on a model that has different between and within effects, and each are of interest. So, I am utilizing a 'hybrid' model which explicitly includes both the mean and demeaned independent variables into a random effect model with the unaltered dependent variable. With my panel data I have some variables that are unit specific (industry a firm is in), thus no within variation and others that are time specific (recessionary quarters), thus no between unit variation. In this context, I want to understand how these time-specific events moderate an independent variable's association with the dependent variable. Said differently, are the within-effects of an independent variable different for these time periods compared to other periods in time. Using a standard fixed-effect model with this type of interaction does not appear to be answering this specific question, as I will highlight below.
I will use the Stata nlswork.dat data for ease of exposition and reproduction of my question.
First, let me code two years of the data to have some condition, such that I want to see if the effect from an independent variable is different for these periods in time. Then I will run a fixed effect regression looking at how the interaction of this variable with hours worked is associated with the wage; i.e., is there any difference in the relationship between hours and wage for these periods in time compared to the other periods in time. First only the main effects then with the interactions in a second model.
Following Schunck (2013), I will manually demean these variables before the interaction to see if I can replicate the above results, thus confirming they are not giving me the answer to the initial question. I will run a demeaned regression as well as a hybrid regression to verify how the fixed-effects model accounted for the interaction effect.
First the main effects, which are consistent with the xtreg,fe results.
Now with the interaction effects included, which yields very similar results, but clearly not how the fixed effects may be different for these two years compared to the rest.
How can I instead investigate the differential effect of an independent variable based on different periods in time that are measured with a binary indicator? For the above example, how years 1982 and 1983 (cond=1) may have had differential effects from hours on wages compared to all other years?
I will use the Stata nlswork.dat data for ease of exposition and reproduction of my question.
First, let me code two years of the data to have some condition, such that I want to see if the effect from an independent variable is different for these periods in time. Then I will run a fixed effect regression looking at how the interaction of this variable with hours worked is associated with the wage; i.e., is there any difference in the relationship between hours and wage for these periods in time compared to the other periods in time. First only the main effects then with the interactions in a second model.
Code:
.
. use https://www.stata-press.com/data/r18/nlswork.dta
(National Longitudinal Survey of Young Women, 14-24 years old in 1968)
.gen cond=0
. replace cond=1 if (year==82| year==83)
(4,072 real changes made)
. xtreg ln_wage hours cond, fe
Fixed-effects (within) regression Number of obs = 28,467
Group variable: idcode Number of groups = 4,710
R-squared: Obs per group:
Within = 0.0029 min = 1
Between = 0.0293 avg = 6.0
Overall = 0.0073 max = 15
F(2,23755) = 34.63
corr(u_i, Xb) = 0.0630 Prob > F = 0.0000
------------------------------------------------------------------------------
ln_wage | Coefficient Std. err. t P>|t| [95% conf. interval]
-------------+----------------------------------------------------------------
hours | .0005324 .0002524 2.11 0.035 .0000378 .0010271
cond | .0472563 .0058123 8.13 0.000 .0358638 .0586488
_cons | 1.649113 .0094893 173.79 0.000 1.630513 1.667712
-------------+----------------------------------------------------------------
sigma_u | .42210011
sigma_e | .31996525
rho | .63507708 (fraction of variance due to u_i)
------------------------------------------------------------------------------
F test that all u_i=0: F(4709, 23755) = 8.28 Prob > F = 0.0000
. xtreg ln_wage hours cond c.hours#c.cond, fe
Fixed-effects (within) regression Number of obs = 28,467
Group variable: idcode Number of groups = 4,710
R-squared: Obs per group:
Within = 0.0031 min = 1
Between = 0.0191 avg = 6.0
Overall = 0.0063 max = 15
F(3,23754) = 24.90
corr(u_i, Xb) = 0.0531 Prob > F = 0.0000
--------------------------------------------------------------------------------
ln_wage | Coefficient Std. err. t P>|t| [95% conf. interval]
---------------+----------------------------------------------------------------
hours | .0007287 .0002661 2.74 0.006 .0002072 .0012502
cond | .0971296 .0221872 4.38 0.000 .0536413 .1406178
|
c.hours#c.cond | -.001381 .0005929 -2.33 0.020 -.0025431 -.0002188
|
_cons | 1.641887 .0099827 164.47 0.000 1.62232 1.661453
---------------+----------------------------------------------------------------
sigma_u | .42228407
sigma_e | .31993546
rho | .63532217 (fraction of variance due to u_i)
--------------------------------------------------------------------------------
F test that all u_i=0: F(4709, 23754) = 8.29 Prob > F = 0.0000
Code:
. by idcode: egen m_hours =mean(hours) (1 missing value generated) . by idcode: egen m_cond =mean(cond) . by idcode: egen m_ln_wage =mean(ln_wage) . gen dm_hours = hours - m_hours (67 missing values generated) . gen dm_cond = cond - m_cond . gen dm_ln_wage = ln_wage - m_ln_wage . gen hoursXcond = hours * cond (67 missing values generated) . by idcode: egen m_hoursXcond =mean(hoursXcond) (1 missing value generated) . gen dm_hoursXcond = hoursXcond - m_hoursXcond (67 missing values generated)
Code:
. reg dm_ln_wage dm_hours dm_cond, nocons
Source | SS df MS Number of obs = 28,467
-------------+---------------------------------- F(2, 28465) = 41.34
Model | 7.06578076 2 3.53289038 Prob > F = 0.0000
Residual | 2432.78881 28,465 .085465969 R-squared = 0.0029
-------------+---------------------------------- Adj R-squared = 0.0028
Total | 2439.85459 28,467 .085708174 Root MSE = .29235
------------------------------------------------------------------------------
dm_ln_wage | Coefficient Std. err. t P>|t| [95% conf. interval]
-------------+----------------------------------------------------------------
dm_hours | .0005323 .0002306 2.31 0.021 .0000803 .0009842
dm_cond | .0471569 .0053088 8.88 0.000 .0367513 .0575625
------------------------------------------------------------------------------
. xtreg ln_wage dm_hours dm_cond, re
Random-effects GLS regression Number of obs = 28,467
Group variable: idcode Number of groups = 4,710
R-squared: Obs per group:
Within = 0.0029 min = 1
Between = 0.0001 avg = 6.0
Overall = 0.0011 max = 15
Wald chi2(2) = 69.45
corr(u_i, X) = 0 (assumed) Prob > chi2 = 0.0000
------------------------------------------------------------------------------
ln_wage | Coefficient Std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
dm_hours | .0005324 .0002518 2.11 0.035 .0000388 .001026
dm_cond | .0472209 .0057998 8.14 0.000 .0358534 .0585884
_cons | 1.656057 .0060933 271.78 0.000 1.644115 1.668
-------------+----------------------------------------------------------------
sigma_u | .38532981
sigma_e | .31996525
rho | .59188767 (fraction of variance due to u_i)
------------------------------------------------------------------------------
. xtreg ln_wage dm_hours dm_cond m_hours m_cond , re
Random-effects GLS regression Number of obs = 28,467
Group variable: idcode Number of groups = 4,710
R-squared: Obs per group:
Within = 0.0029 min = 1
Between = 0.0420 avg = 6.0
Overall = 0.0244 max = 15
Wald chi2(4) = 281.59
corr(u_i, X) = 0 (assumed) Prob > chi2 = 0.0000
------------------------------------------------------------------------------
ln_wage | Coefficient Std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
dm_hours | .0005324 .0002518 2.11 0.034 .0000389 .0010259
dm_cond | .0472306 .0057988 8.14 0.000 .0358652 .0585959
m_hours | .0099165 .000795 12.47 0.000 .0083583 .0114746
m_cond | .2925363 .0376106 7.78 0.000 .2188209 .3662518
_cons | 1.258369 .0299296 42.04 0.000 1.199708 1.31703
-------------+----------------------------------------------------------------
sigma_u | .37552855
sigma_e | .31996525
rho | .57938376 (fraction of variance due to u_i)
------------------------------------------------------------------------------
Code:
. reg dm_ln_wage dm_hours dm_cond dm_hoursXcond , nocons
Source | SS df MS Number of obs = 28,467
-------------+---------------------------------- F(3, 28464) = 29.60
Model | 7.58681931 3 2.52893977 Prob > F = 0.0000
Residual | 2432.26777 28,464 .085450666 R-squared = 0.0031
-------------+---------------------------------- Adj R-squared = 0.0030
Total | 2439.85459 28,467 .085708174 Root MSE = .29232
-------------------------------------------------------------------------------
dm_ln_wage | Coefficient Std. err. t P>|t| [95% conf. interval]
--------------+----------------------------------------------------------------
dm_hours | .0007215 .000243 2.97 0.003 .0002452 .0011977
dm_cond | .0952231 .0201762 4.72 0.000 .0556768 .1347695
dm_hoursXcond | -.0013318 .0005393 -2.47 0.014 -.002389 -.0002747
-------------------------------------------------------------------------------
. xtreg ln_wage dm_hours dm_cond dm_hoursXcond m_hours m_cond m_hoursXcond , re
Random-effects GLS regression Number of obs = 28,467
Group variable: idcode Number of groups = 4,710
R-squared: Obs per group:
Within = 0.0031 min = 1
Between = 0.0457 avg = 6.0
Overall = 0.0256 max = 15
Wald chi2(6) = 302.07
corr(u_i, X) = 0 (assumed) Prob > chi2 = 0.0000
-------------------------------------------------------------------------------
ln_wage | Coefficient Std. err. z P>|z| [95% conf. interval]
--------------+----------------------------------------------------------------
dm_hours | .0007253 .0002655 2.73 0.006 .0002051 .0012456
dm_cond | .0962418 .0221264 4.35 0.000 .0528749 .1396087
dm_hoursXcond | -.0013581 .0005913 -2.30 0.022 -.002517 -.0001992
m_hours | .0082031 .0009138 8.98 0.000 .006412 .0099941
m_cond | -.0703764 .1031531 -0.68 0.495 -.2725527 .1317999
m_hoursXcond | .0106746 .0028241 3.78 0.000 .0051394 .0162097
_cons | 1.318755 .0338768 38.93 0.000 1.252358 1.385152
--------------+----------------------------------------------------------------
sigma_u | .37463591
sigma_e | .31993546
rho | .57826882 (fraction of variance due to u_i)
-------------------------------------------------------------------------------
.

Comment