I'm trying to test and interpret the triple DDD results, but I'm not so sure whether I'm doing it correctly or not.
Here is brief information on the dataset.
I want to look at the different variations of a policy in age groups and states on outcome over multiple time points (monthly data). My variables are:
lnr(outcome variable, log-transformed, continuous), after(0=before policy, 1=after policy). agecut(0=not eligible to the policy, 1=eligibile to the policy), state(0=most affected by policy, 1=least affected by policy), I included several time-variant covariates in the model.
So, using the information, I tried to conduct DDD analysis and checked many resources online.
What I found useful is from threads answered by Clyde Schechter on statalist, especially: https://www.statalist.org/forums/for...ddd-using-areg
I was confused what to use among following commands: areg, reg, xtreg....
So, since my data is panel, it seems like I should use xtset, but still I'm not sure what to choose for the clustered unit.
So, what I did was
make a group egen group=group(agecut, state)
and then I run following commands
xtset group date
xtreg lnr after##agecut##state, fe vce(cluster group)
I got results as follows:
xtreg lnall after##agecut##state , fe vce(cluster group)
note: 1.agecut omitted because of collinearity.
note: 1.state omitted because of collinearity.
note: 1.agecut#1.state omitted because of collinearity.
Fixed-effects (within) regression Number of obs = 478
Group variable: group Number of groups = 4
R-squared: Obs per group:
Within = 0.2676 min = 119
Between = 0.5920 avg = 119.5
Overall = 0.0222 max = 120
F(3,3) = .
corr(u_i, Xb) = -0.3304 Prob > F = .
(Std. err. adjusted for 4 clusters in group)
Robust
lnall Coefficient std. err. t P>t [95% conf. interval]
1.after .2953712 .1775576 1.66 0.195 -.2696964 .8604388
1.agecut 0 (omitted)
after#agecut
1 1 -.2058707 .0000757 -2720.35 0.000 -.2061115 -.2056298
1.state 0 (omitted)
after#state
1 1 -.1969057 .0039654 -49.66 0.000 -.2095253 -.1842862
agecut#state
1 1 0 (omitted)
after#agecut#state
1 1 1 -.2337231 .0000769 -3040.10 0.000 -.2339678 -.2334785
_t -.0065143 .0030299 -2.15 0.121 -.0161567 .0031282
_cons 1.20883 .0824415 14.66 0.001 .9464647 1.471196
sigma_u .73399724
sigma_e .50681238
rho .6771552 (fraction of variance due to u_i)
margins, over (after) at(state=(0 1)) noestimcheck post, if agecut==1
Predictive margins Number of obs = 239
Model VCE: Robust
Expression: Linear prediction, predict()
Over: after
1._at: 0.after
state = 0
1.after
state = 0
2._at: 0.after
state = 1
1.after
state = 1
Delta-method
Margin std. err. z P>z [95% conf. interval]
_at#after
1 0 1.039387 .0000436 2.4e+04 0.000 1.039302 1.039473
1 1 .7335141 .001994 367.86 0.000 .7296059 .7374223
2 0 1.039387 .0000436 2.4e+04 0.000 1.039302 1.039473
2 1 .3028852 .0020336 148.94 0.000 .2988995 .306871
margins, over (after) at(state=(0 1)) noestimcheck post, if agecut==0
Predictive margins Number of obs = 239
Model VCE: Robust
Expression: Linear prediction, predict()
Over: after
1._at: 0.after
state = 0
1.after
state = 0
2._at: 0.after
state = 1
1.after
state = 1
Delta-method
Margin std. err. z P>z [95% conf. interval]
_at#after
1 0 1.0378 .0000273 3.8e+04 0.000 1.037747 1.037854
1 1 .9404007 .002019 465.77 0.000 .9364435 .944358
2 0 1.0378 .0000273 3.8e+04 0.000 1.037747 1.037854
2 1 .743495 .0019465 381.96 0.000 .7396799 .7473102
Did I correctly specify the model?
So here are my questions: 1) why are F (3,3) and Prob>F are dotted?
2) How should I interpret the results of margins commands?
3) When I reported it at a journal, what information should I report? Many studies I have read present findings exactly like table 9.3 in the following webpage: https://mixtape.scunning.com/differe...fferences.html
However, I can't have this kind of result with the margin commands I run. Did I do something wrong?
Thanks in advance for your interest.
Here is brief information on the dataset.
I want to look at the different variations of a policy in age groups and states on outcome over multiple time points (monthly data). My variables are:
lnr(outcome variable, log-transformed, continuous), after(0=before policy, 1=after policy). agecut(0=not eligible to the policy, 1=eligibile to the policy), state(0=most affected by policy, 1=least affected by policy), I included several time-variant covariates in the model.
So, using the information, I tried to conduct DDD analysis and checked many resources online.
What I found useful is from threads answered by Clyde Schechter on statalist, especially: https://www.statalist.org/forums/for...ddd-using-areg
I was confused what to use among following commands: areg, reg, xtreg....
So, since my data is panel, it seems like I should use xtset, but still I'm not sure what to choose for the clustered unit.
So, what I did was
make a group egen group=group(agecut, state)
and then I run following commands
xtset group date
xtreg lnr after##agecut##state, fe vce(cluster group)
I got results as follows:
xtreg lnall after##agecut##state , fe vce(cluster group)
note: 1.agecut omitted because of collinearity.
note: 1.state omitted because of collinearity.
note: 1.agecut#1.state omitted because of collinearity.
Fixed-effects (within) regression Number of obs = 478
Group variable: group Number of groups = 4
R-squared: Obs per group:
Within = 0.2676 min = 119
Between = 0.5920 avg = 119.5
Overall = 0.0222 max = 120
F(3,3) = .
corr(u_i, Xb) = -0.3304 Prob > F = .
(Std. err. adjusted for 4 clusters in group)
Robust
lnall Coefficient std. err. t P>t [95% conf. interval]
1.after .2953712 .1775576 1.66 0.195 -.2696964 .8604388
1.agecut 0 (omitted)
after#agecut
1 1 -.2058707 .0000757 -2720.35 0.000 -.2061115 -.2056298
1.state 0 (omitted)
after#state
1 1 -.1969057 .0039654 -49.66 0.000 -.2095253 -.1842862
agecut#state
1 1 0 (omitted)
after#agecut#state
1 1 1 -.2337231 .0000769 -3040.10 0.000 -.2339678 -.2334785
_t -.0065143 .0030299 -2.15 0.121 -.0161567 .0031282
_cons 1.20883 .0824415 14.66 0.001 .9464647 1.471196
sigma_u .73399724
sigma_e .50681238
rho .6771552 (fraction of variance due to u_i)
margins, over (after) at(state=(0 1)) noestimcheck post, if agecut==1
Predictive margins Number of obs = 239
Model VCE: Robust
Expression: Linear prediction, predict()
Over: after
1._at: 0.after
state = 0
1.after
state = 0
2._at: 0.after
state = 1
1.after
state = 1
Delta-method
Margin std. err. z P>z [95% conf. interval]
_at#after
1 0 1.039387 .0000436 2.4e+04 0.000 1.039302 1.039473
1 1 .7335141 .001994 367.86 0.000 .7296059 .7374223
2 0 1.039387 .0000436 2.4e+04 0.000 1.039302 1.039473
2 1 .3028852 .0020336 148.94 0.000 .2988995 .306871
margins, over (after) at(state=(0 1)) noestimcheck post, if agecut==0
Predictive margins Number of obs = 239
Model VCE: Robust
Expression: Linear prediction, predict()
Over: after
1._at: 0.after
state = 0
1.after
state = 0
2._at: 0.after
state = 1
1.after
state = 1
Delta-method
Margin std. err. z P>z [95% conf. interval]
_at#after
1 0 1.0378 .0000273 3.8e+04 0.000 1.037747 1.037854
1 1 .9404007 .002019 465.77 0.000 .9364435 .944358
2 0 1.0378 .0000273 3.8e+04 0.000 1.037747 1.037854
2 1 .743495 .0019465 381.96 0.000 .7396799 .7473102
Did I correctly specify the model?
So here are my questions: 1) why are F (3,3) and Prob>F are dotted?
2) How should I interpret the results of margins commands?
3) When I reported it at a journal, what information should I report? Many studies I have read present findings exactly like table 9.3 in the following webpage: https://mixtape.scunning.com/differe...fferences.html
However, I can't have this kind of result with the margin commands I run. Did I do something wrong?
Thanks in advance for your interest.
Comment