----------------------------------------------------------------------
      name:  <unnamed>
       log:  analysis.log
  log type:  text
 opened on:  01 Dec 2023, 10:00:00

. ****************************************************
. * Spatial Panel Regression in Stata:
. * Cigarette Demand Across US States
. ****************************************************

. clear all

. macro drop _all

. set more off

. version 12

.
. *---------------------------------------------------
. * Section 3: Setup and data loading
. *---------------------------------------------------

. * 3.1 Spatial weight matrix
. use "https://github.com/quarcs-lab/data-open/raw/master/cigar/Wct_bin.dta", replace

. spmat dta Wst m1-m46, norm(row) replace

.
. * 3.2 Panel data setup
. use "https://github.com/quarcs-lab/data-open/raw/master/cigar/baltagi_cigar.dta", clear

. sort year state

. xtset state year
Panel variable: state (strongly balanced)
 Time variable: year, 1963 to 1992
         Delta: 1 unit

.
. * 3.3 Panel summary statistics
. xtsum

Variable         |      Mean   Std. dev.       Min        Max |    Observations
-----------------+--------------------------------------------+----------------
logc     overall |  4.625563   .2538233   3.736352   5.399758 |     N =    1380
         between |              .225498   4.057739    5.19628 |     n =      46
         within  |             .1254968   4.110718   5.070093 |     T =      30
                 |                                            |
logp     overall |  3.648067   .3364439   2.579455   4.588055 |     N =    1380
         between |             .1927783    3.22723   4.021831 |     n =      46
         within  |             .2798008   2.780289   4.372397 |     T =      30
                 |                                            |
logy     overall |  1.615786    .248717   .8676362   2.253795 |     N =    1380
         between |             .1363281   1.294913   2.063736 |     n =      46
         within  |             .2098697   1.035539   2.106283 |     T =      30

.
. *---------------------------------------------------
. * Section 4: Non-spatial panel models
. *---------------------------------------------------

. * 4.1 Pooled OLS
. reg logc logp logy

      Source |       SS           df       MS      Number of obs   =     1,380
-------------+----------------------------------   F(2, 1377)      =    199.28
       Model |  21.564818         2  10.7824090   Prob > F        =    0.0000
    Residual |  74.518523     1,377  .054116576   R-squared       =    0.2244
-------------+----------------------------------   Adj R-squared   =    0.2233
       Total |  96.083341     1,379  .069676098   Root MSE        =    .23284

------------------------------------------------------------------------------
        logc | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
-------------+----------------------------------------------------------------
        logp |  -.3857227   .0309752   -12.45   0.000    -.4464987   -.3249467
        logy |   .3724439   .0264568    14.08   0.000     .3205328    .4243551
       _cons |   4.396312   .0531992    82.64   0.000     4.291951    4.500674
------------------------------------------------------------------------------

. estimates store pool

.
. * 4.2 Region fixed effects
. xtreg logc logp logy, fe

Fixed-effects (within) regression               Number of obs     =      1,380
Group variable: state                            Number of groups  =         46

R-squared:                                       Obs per group:
     Within  = 0.4059                                         min =         30
     Between = 0.0681                                         avg =       30.0
     Overall = 0.1050                                         max =         30

                                                 F(2,1332)         =     455.52
corr(u_i, Xb) = -0.8072                         Prob > F          =     0.0000

------------------------------------------------------------------------------
        logc | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
-------------+----------------------------------------------------------------
        logp |  -.2307217   .0276419    -8.35   0.000    -.2849426   -.1765008
        logy |  -.0145419   .0389849    -0.37   0.709    -.0910300    .0619462
       _cons |   4.619736   .0542965    85.09   0.000     4.513180    4.726293
------------------------------------------------------------------------------
     sigma_u |  .21834832
     sigma_e |  .09498463
         rho |  .84090063   (fraction of variance due to u_i)
------------------------------------------------------------------------------
F test that all u_i=0: F(45, 1332) = 85.78                  Prob > F = 0.0000

. estimates store rfe

.
. * 4.3 Time fixed effects
. reg logc logp logy i.year

      Source |       SS           df       MS      Number of obs   =     1,380
-------------+----------------------------------   F(31, 1348)     =     41.04
       Model |  48.7107267        31  1.57131054   Prob > F        =    0.0000
    Residual |  47.3726143     1,348  .03514290   R-squared       =    0.5070
-------------+----------------------------------   Adj R-squared   =    0.4957
       Total |  96.083341     1,379  .069676098   Root MSE        =    .18747

------------------------------------------------------------------------------
        logc | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
-------------+----------------------------------------------------------------
        logp |  -.8612867   .0389729   -22.10   0.000    -.9377676   -.7848058
        logy |   .8045032   .0466019    17.26   0.000     .7130647    .8959417
       _cons |   3.958816   .0638297    62.02   0.000     3.833551    4.084081
------------------------------------------------------------------------------

. estimates store tfe

.
. * 4.4 Two-way fixed effects
. xtreg logc logp logy i.year, fe

Fixed-effects (within) regression               Number of obs     =      1,380
Group variable: state                            Number of groups  =         46

R-squared:                                       Obs per group:
     Within  = 0.7891                                         min =         30
     Between = 0.0121                                         avg =       30.0
     Overall = 0.0456                                         max =         30

                                                 F(31,1303)        =     157.60
corr(u_i, Xb) = -0.5688                         Prob > F          =     0.0000

------------------------------------------------------------------------------
        logc | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
-------------+----------------------------------------------------------------
        logp |  -.4020279   .0272553   -14.75   0.000    -.4555018   -.3485541
        logy |   .1193476   .0478095     2.50   0.013     .0255202    .2131749
       _cons |   4.515994   .0533810    84.59   0.000     4.411254    4.620733
------------------------------------------------------------------------------
     sigma_u |  .21428785
     sigma_e |  .05601281
         rho |  .93607854   (fraction of variance due to u_i)
------------------------------------------------------------------------------

. estimates store rtfe

.
. * 4.5 Comparison table
. estimates table pool rfe tfe rtfe, b(%7.2f) star(0.1 0.05 0.01) stf(%9.0f)

------------------------------------------------------
    Variable |   pool       rfe        tfe       rtfe
-------------+----------------------------------------
        logp |   -0.39***   -0.23***   -0.86***  -0.40***
        logy |    0.37***   -0.01       0.80***   0.12**
       _cons |    4.40***    4.62***    3.96***   4.52***
------------------------------------------------------
                                    Legend: * p<.1; ** p<.05; *** p<.01

.
. *---------------------------------------------------
. * Section 6: Spatial Durbin Model (SDM)
. *---------------------------------------------------

. * 6.1 SDM with two-way fixed effects
. xsmle logc logp logy, fe type(both) wmat(Wst) mod(sdm) effects nsim(999) nolog

Spatial Durbin model with fixed-effects                Number of obs  =  1,380
Group variable: state                                  Number of groups =   46
Time variable: year
                                                       Obs per group:
                                                                  min =    30
                                                                  avg =  30.0
                                                                  max =    30

                                                       Wald chi2(4)   = 379.19
Log-likelihood = 1971.5204                             Prob > chi2    = 0.0000

------------------------------------------------------------------------------
        logc | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
-------------+----------------------------------------------------------------
Main         |
        logp |  -.3068973   .0282114   -10.88   0.000    -.3621907   -.2516039
        logy |   .0781427   .0481269     1.62   0.104    -.0161843    .1724697
-------------+----------------------------------------------------------------
Wx           |
        logp |  -.2060671   .0649703    -3.17   0.002    -.3334065   -.0787277
        logy |   .1803542   .0885162     2.04   0.042     .0068656    .3538428
-------------+----------------------------------------------------------------
Spatial      |
         rho |   .2649571   .0327948     8.08   0.000     .2006804    .3292339
-------------+----------------------------------------------------------------
     sigma2_e|   .0027866
------------------------------------------------------------------------------

Direct       |  -.3131508   .0285649   -10.96   0.000    -.3691370   -.2571645
Indirect     |  -.3138174   .0812337    -3.86   0.000    -.4730325   -.1546023
Total        |  -.6269682   .0866710    -7.23   0.000    -.7968403   -.4570961
             |
Direct       |   .0941302   .0488720     1.93   0.054    -.0016572    .1899176
Indirect     |   .2683417   .1099814     2.44   0.015     .0527821    .4839013
Total        |   .3624719   .1216523     2.98   0.003     .1240378    .6009060

. estimates store sdm1

.
. * 6.2 SDM with Lee-Yu bias correction
. xsmle logc logp logy, fe type(both) leeyu wmat(Wst) mod(sdm) effects nsim(999) nolog

Spatial Durbin model with fixed-effects (Lee-Yu)       Number of obs  =  1,334
Group variable: state                                  Number of groups =   46
Time variable: year
                                                       Obs per group:
                                                                  min =    29
                                                                  avg =  29.0
                                                                  max =    29

                                                       Wald chi2(4)   = 392.50
Log-likelihood = 1932.4681                             Prob > chi2    = 0.0000

------------------------------------------------------------------------------
        logc | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
-------------+----------------------------------------------------------------
Main         |
        logp |  -.3044782   .0283901   -10.72   0.000    -.3601218   -.2488346
        logy |   .0770150   .0486311     1.58   0.113    -.0183001    .1723301
-------------+----------------------------------------------------------------
Wx           |
        logp |  -.2083124   .0654876    -3.18   0.001    -.3366657   -.0799591
        logy |   .1869831   .0894718     2.09   0.037     .0116216    .3623446
-------------+----------------------------------------------------------------
Spatial      |
         rho |   .2596348   .0332441     7.81   0.000     .1944776    .3247920
-------------+----------------------------------------------------------------
     sigma2_e|   .0027512
------------------------------------------------------------------------------

Direct       |  -.3104271   .0287814   -10.79   0.000    -.3668377   -.2540166
Indirect     |  -.3122946   .0825781    -3.78   0.000    -.4741447   -.1504446
Total        |  -.6227218   .0878439    -7.09   0.000    -.7948927   -.4505509
             |
Direct       |   .0935487   .0494610     1.89   0.059    -.0033931    .1904905
Indirect     |   .2739264   .1115282     2.46   0.014     .0553351    .4925177
Total        |   .3674751   .1235608     2.97   0.003     .1253004    .6096498

. estimates store sdm2

.
. * 6.3 Comparison
. estimates table sdm1 sdm2, b(%7.3f) star(0.1 0.05 0.01) stf(%9.0f)

----------------------------------------------
    Variable |    sdm1         sdm2
-------------+--------------------------------
Main         |
        logp |   -0.307***    -0.304***
        logy |    0.078        0.077
Wx           |
        logp |   -0.206***    -0.208***
        logy |    0.180**      0.187**
Spatial      |
         rho |    0.265***     0.260***
----------------------------------------------
                                    Legend: * p<.1; ** p<.05; *** p<.01

.
. *---------------------------------------------------
. * Section 7: Wald specification tests
. *---------------------------------------------------

. quietly xsmle logc logp logy, fe type(both) leeyu wmat(Wst) mod(sdm) effects nsim(999) nolog

.
. * Wald test: Reduce to SAR? (NO if p < 0.05)
. test ([Wx]logp = 0) ([Wx]logy = 0)

 ( 1)  [Wx]logp = 0
 ( 2)  [Wx]logy = 0

           chi2(  2) =   12.87
         Prob > chi2 =    0.0016

.
. * Wald test: Reduce to SLX? (NO if p < 0.05)
. test ([Spatial]rho = 0)

 ( 1)  [Spatial]rho = 0

           chi2(  1) =   61.04
         Prob > chi2 =    0.0000

.
. * Wald test: Reduce to SEM? (NO if p < 0.05)
. testnl ([Wx]logp = -[Spatial]rho*[Main]logp) ([Wx]logy = -[Spatial]rho*[Main]logy)

  (1)  [Wx]logp = -[Spatial]rho*[Main]logp
  (2)  [Wx]logy = -[Spatial]rho*[Main]logy

           chi2(  2) =    8.49
         Prob > chi2 =    0.0143

.
. *---------------------------------------------------
. * Section 8: Dynamic spatial panel models
. *---------------------------------------------------

. * 8.1 Non-dynamic SDM (baseline)
. xsmle logc logp logy, fe type(both) wmat(Wst) mod(sdm) effects nsim(999) nolog

Spatial Durbin model with fixed-effects                Number of obs  =  1,380

------------------------------------------------------------------------------
        logc | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
-------------+----------------------------------------------------------------
Main         |
        logp |  -.3068973   .0282114   -10.88   0.000    -.3621907   -.2516039
        logy |   .0781427   .0481269     1.62   0.104    -.0161843    .1724697
Wx           |
        logp |  -.2060671   .0649703    -3.17   0.002    -.3334065   -.0787277
        logy |   .1803542   .0885162     2.04   0.042     .0068656    .3538428
Spatial      |
         rho |   .2649571   .0327948     8.08   0.000     .2006804    .3292339
------------------------------------------------------------------------------

. eststo SDM0

.
. * 8.2 Dynamic: tau * y_it-1
. xsmle logc logp logy, dlag(1) fe type(both) wmat(Wst) mod(sdm) effects nsim(999) nolog

Dynamic Spatial Durbin model with fixed-effects        Number of obs  =  1,334

------------------------------------------------------------------------------
        logc | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
-------------+----------------------------------------------------------------
Main         |
        logp |  -.1516305   .0226714    -6.69   0.000    -.1960657   -.1071954
        logy |   .0285493   .0376124     0.76   0.448    -.0451697    .1022683
Wx           |
        logp |  -.0714289   .0521683    -1.37   0.171    -.1736769    .0308190
        logy |   .0592735   .0706984     0.84   0.402    -.0792929    .1978399
Spatial      |
         rho |   .1021753   .0307624     3.32   0.001     .0418821    .1624685
Temporal     |
         tau |   .6543218   .0196285    33.33   0.000     .6158507    .6927928
------------------------------------------------------------------------------

. eststo dySDM1

.
. * 8.3 Dynamic: psi * W * y_it-1
. xsmle logc logp logy, dlag(2) fe type(both) wmat(Wst) mod(sdm) effects nsim(999) nolog

Dynamic Spatial Durbin model with fixed-effects        Number of obs  =  1,334

------------------------------------------------------------------------------
        logc | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
-------------+----------------------------------------------------------------
Main         |
        logp |  -.2981475   .0280193   -10.64   0.000    -.3530643   -.2432307
        logy |   .0637218   .0478561     1.33   0.183    -.0300745    .1575181
Wx           |
        logp |  -.1425379   .0647518    -2.20   0.028    -.2694490   -.0156268
        logy |   .1320869   .0888243     1.49   0.137    -.0420055    .3061793
Spatial      |
         rho |   .1523264   .0369871     4.12   0.000     .0798330    .2248199
Temporal     |
         psi |   .2712508   .0339714     7.98   0.000     .2046680    .3378335
------------------------------------------------------------------------------

. eststo dySDM2

.
. * 8.4 Dynamic: tau * y_it-1 + psi * W * y_it-1
. xsmle logc logp logy, dlag(3) fe type(both) wmat(Wst) mod(sdm) effects nsim(999) nolog

Dynamic Spatial Durbin model with fixed-effects        Number of obs  =  1,334

------------------------------------------------------------------------------
        logc | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
-------------+----------------------------------------------------------------
Main         |
        logp |  -.1498627   .0226523    -6.62   0.000    -.1942603   -.1054651
        logy |   .0271398   .0376004     0.72   0.470    -.0465556    .1008351
Wx           |
        logp |  -.0636842   .0524156    -1.21   0.224    -.1664169    .0390485
        logy |   .0471982   .0712803     0.66   0.508    -.0925087    .1869052
Spatial      |
         rho |   .0803516   .0322458     2.49   0.013     .0171509    .1435524
Temporal     |
         tau |   .6389621   .0208541    30.64   0.000     .5980889    .6798353
         psi |   .0494172   .0325896     1.52   0.130    -.0144571    .1132915
------------------------------------------------------------------------------

. eststo dySDM3

.
. * 8.5 Comparison table
. esttab SDM0 dySDM1 dySDM2 dySDM3, mtitle("SDM" "dySDM1" "dySDM2" "dySDM3")

--------------------------------------------------------------------
                      (1)          (2)          (3)          (4)
                      SDM        dySDM1       dySDM2       dySDM3
--------------------------------------------------------------------
Main
logp              -0.307***    -0.152***    -0.298***    -0.150***
                 (-10.88)      (-6.69)     (-10.64)      (-6.62)
logy               0.078        0.029        0.064        0.027
                  (1.62)       (0.76)       (1.33)       (0.72)
Wx
logp              -0.206***    -0.071       -0.143**     -0.064
                 (-3.17)      (-1.37)      (-2.20)      (-1.21)
logy               0.180**      0.059        0.132        0.047
                  (2.04)       (0.84)       (1.49)       (0.66)
Spatial
rho                0.265***     0.102***     0.152***     0.080**
                  (8.08)       (3.32)       (4.12)       (2.49)
Temporal
tau                             0.654***                  0.639***
                              (33.33)                   (30.64)
psi                                          0.271***     0.049
                                            (7.98)       (1.52)
--------------------------------------------------------------------
N                   1380         1334         1334         1334
--------------------------------------------------------------------
t statistics in parentheses
* p<0.1, ** p<0.05, *** p<0.01

.
. log close
      name:  <unnamed>
       log:  analysis.log
  log type:  text
 closed on:  01 Dec 2023, 10:15:00
----------------------------------------------------------------------
