*===============================
        *   空间计量经济学与STATA操作
        *===============================
             
        *   主讲人: 任建辉  博士研究生
        
        *   单  位: 暨南大学经济学院
        *   邮  箱: 
jianhui1986_love@126.com
        *   QQ群:regional study(234081931)
*--------------------------------------------------                
        
    *     ==内容目录==
        
    *  1.认识空间权重矩阵
    *  2.计算全域moran指数和局域moran指数
    *  3.空间滞后模型(SLM)和空间误差模型(SEM)
    *    混合萨拉尔模型(SARAR)
    *    广义空间二阶段最小二乘法(GS2SLS),工具变量
    *  4.空间面板数据的杜宾模型(SDM)的实现
    *  5.讨论和建议
        
        
        
    *    =涉及到的命令=
*===================================================
*spatwmt,matrix list,spatgsa,spatlsa,spatreg,spmat,
*spreg,spivreg,xsmle,hausman    
*===================================================
    *————————————————————————————————
    * 首次使用stata的一些基本设定
    clear all                 //清空内存
    set more off              //不停止执行命令
    cd D:\StataMP\mywork      //设置工作路径
    pwd                       //查看工作路径
       
    *------------------------
    *->1.认识空间权重矩阵
    *------------------------   
       *-安装sg162.pkg
       net install sg162.pkg   
       
       *-如果安装不了,可通过查找的方式获得
       findit spatwmat        
       
       *-导入权重矩                 
       use columbusswm.dta , clear 
       
       *-将权重矩阵命名为W   
       help spatwmat
       spatwmat using columbusswm.dta ,name(W)
       spatwmat using columbusswm.dta ,name(W) standardize //行标准化
       
       *-查看权重矩阵   
       matrix list W
       
    *——————————————————————————————————
    *2.1计算全域moran指数
      use columbusdata.dta ,clear
      spatgsa crime ,weights(W) moran  twotail
    
    *2.2计算局域moran指数
      spatlsa crime, weights(W) moran twotail
    
    *------------------------------------
    *->3.空间滞后模型和空间误差模型的操作 
    *--------------------------------------  
      *^—^空间模型诊断,判别使用那类模型    
       
       reg crime hoval income
       est store ols
       spatdiag , weights(W)
      
      *-计算空间权重矩阵的特征值
       spatwmat using columbusswm.dta , name(W) eigenval(E)
      
      *-空间滞后模型(SLM/SAR)
       help spatreg
       spatreg crime hoval income , weights(W) eigenval(E) model(lag) nolog
       est store slm
      
      *-空间误差模型(SEM)
       spatreg crime hoval income , weights(W) eigenval(E) model(error) nolog
       est store sem
      
      *-compare the result of ols , slm and sem
       esttab ols slm sem, r2 p
     
      *-----------------------------------------------
      *下面做混合SARAR和广义空间二阶段最小二乘法
      *-SARAR模型操作
      *-安装包sappack.pkg
        net install sappack.pkg
        findit spmat
      *-定义空间权重矩阵
        use columbusswm.dta , clear
        help spmat
        spmat dta w1 a1 - a49
        spmat graph w1
        spmat summarize w1
        spmat eigenvalues w1
        *-特别地,还可以求距离的权重矩阵,euclidean (default), 
        *-dhaversine, rhaversine 
        use pollute ,clear
        spmat idistance dobj longitude latitude, id(id) ///
            dfunction(dhaversine)
        spmat graph dobj
       
      *-SARAR 估计
        use columbusdata.dta , clear
        help spreg
        spreg ml crime hoval income,id(id) dlmat(w1) elmat(w1) nolog
        spreg ml crime hoval income,id(id) dlmat(w1) elmat(w1)
        spmat lag double crime_w w1 crime
      *-GS2SLS 估计
        spreg gs2sls crime hoval income , id(id) dlmat(w1) ///
        elmat(w1) het nolog
        spivreg crime (income = hoval), id(id) dlmat(w1) ///
        elmat(w1) het nolog
    
    *-----------------------------------
    *->4.空间面板杜宾模型
    *-----------------------------------
        use product.dta ,clear
        gen lngsp=log(gsp)
        gen lnpcap=log(pcap)
        gen lnpc=log(pc)
        gen lnemp=log(emp)
        spmat use usaww using usaww.spmat
        xsmle lngsp lnpcap lnpc lnemp unemp ,wmat(usaww) dlag///
        model(sdm) robust nolog
        
        xsmle lngsp lnpcap lnpc lnemp unemp ,wmat(usaww) ///
        model(sdm) durbin(lnemp) robust nolog
        
    *-豪斯曼检验
       quietly xsmle lngsp lnpcap lnpc lnemp unemp ,wmat(usaww) ///
               model(sdm) durbin(lnemp)   nolog noeffect
       est store re
       quietly xsmle lngsp lnpcap lnpc lnemp unemp ,wmat(usaww) ////
               model(sdm) durbin(lnemp)  nolog fe noeffect
       est store fe 
       hausman fe re
*-------------------------------------
*   5.讨论和建议
*--------------------------------------
    *-参考书目:陈强《高级计量经济学(第二版)》第29章
    
    *-多看help文档也是比较便捷的方式
    
    *-人大论坛【计量版】之【STATA专版】
    view browse "https://bbs.pinggu.org/forum-67-1.html"