
簡介面向經(jīng)濟學、區(qū)域科學及社會科學領域需要開展空間計量分析的師生與研究人員這份命令文檔系統(tǒng)梳理了利用STATA構建空間權重矩陣與估計空間杜賓模型的全流程操作。內(nèi)容涵蓋shp2dta讀取地圖數(shù)據(jù)并生成坐標數(shù)據(jù)集、spmap繪制空間分布圖、spmat生成逆距離與鄰接權重矩陣、行標準化處理以及Morans I指數(shù)計算并配有清晰命令注釋便于直接套用與移植。文檔還詳細展示了如何將生成的權重矩陣保存為spmat和txt格式為后續(xù)空間杜賓模型等空間回歸分析打下基礎。資源包共1個docx文件大小43KB文本形式保存了完整命令與參數(shù)說明輕量易讀無需復雜環(huán)境即可快速查閱。目前已有395人學習下載適合作為空間計量入門與進階的速查手冊可有效減少編寫命令時的試錯成本。 這幾年空間計量在經(jīng)管類、社科類論文里幾乎成了標配空間權重矩陣加空間杜賓模型SDM是出現(xiàn)頻率最高的一套組合。我自己幫學生處理數(shù)據(jù)、改論文遇到最多的問題就是權重矩陣不會構建、模型命令報錯、跑完結(jié)果不會解讀。這篇就把整套流程串起來講清楚從空間權重矩陣的生成原理、STATA里的具體命令寫法到空間杜賓模型的估計、檢驗、效應分解再到實際踩過的一些坑一次性整理出來。適合剛接觸空間計量的研究生也適合照著教程跑通過一遍、但回頭不知道每一步在干什么的同行。1. 空間計量研究框架與STATA使用策略1.1 為什么我推薦用STATA處理空間杜賓模型STATA的空間計量生態(tài)這些年已經(jīng)非常成熟。橫截面數(shù)據(jù)有早期的spatreg、spreg面板數(shù)據(jù)有xsmle這個幾乎人手一個的外部命令矩陣處理有spmat和STATA 15之后內(nèi)置的spmatrix。相比Matlab需要自己寫極大似然函數(shù)R雖然語法靈活但學習成本偏高GeoDa圖形化點擊方便但只能做基礎的空間回歸——STATA的優(yōu)勢在于你可以在同一個環(huán)境里完成面板數(shù)據(jù)清理、權重矩陣構建、模型估計、偏偏效應分解全部流程命令可復現(xiàn)性也最強。這對需要反復調(diào)模型、換矩陣、做穩(wěn)健性檢驗的科研場景來說省下的時間非??捎^。1.2 從原始數(shù)據(jù)到論文結(jié)果的完整工作流我建議動手之前先把整個流程在心里過一遍。空間計量研究其實套路很固定大致可以分成七步準備數(shù)據(jù)包括核心變量面板數(shù)據(jù)、每個個體的坐標或鄰接關系文件構建空間權重矩陣并做標準化用Morans I檢驗被解釋變量的空間自相關性跑普通OLS做LM和Robust LM檢驗判斷空間效應應該放在誤差項還是滯后項用LR或Wald檢驗判斷模型是否可以簡化為SAR或SEM據(jù)此確定用SDM還是其他模型用xsmle估計模型并對結(jié)果做直接效應、間接效應分解更換權重矩陣類型做穩(wěn)健性檢驗。這七步里第2步和第5步是新手最容易卡住的地方也是下面兩節(jié)重點展開的內(nèi)容。2. 空間權重矩陣模型的核心別在這步偷懶2.1 空間權重矩陣究竟是什么空間權重矩陣的本質(zhì)是把區(qū)域之間如何互相影響這個抽象問題轉(zhuǎn)化成一張具體的數(shù)值表。舉個例子假設研究30個省份的碳排放如果不考慮空間性每個省的碳排放只由本省變量解釋。但實際情況是鄰近省份的產(chǎn)業(yè)結(jié)構、減排政策、技術溢出都會影響本省的碳排放??臻g權重矩陣W就是用來刻畫這種鄰居效應的矩陣的每個元素wij代表第j個區(qū)域?qū)Φ趇個區(qū)域的影響強度。常見的權重矩陣類型用一張表來對比類型構建邏輯適用場景數(shù)據(jù)需求鄰接權重Queen有公共邊界或公共頂點視為鄰居行政區(qū)劃數(shù)據(jù)地圖shapefile鄰接權重Rook只有公共邊界視為鄰居行政區(qū)劃數(shù)據(jù)地圖shapefile逆距離權重wij1/dij地理距離越近影響越大有經(jīng)緯度坐標坐標數(shù)據(jù)距離閾值權重距離小于閾值取1否則取0有坐標且存在影響半徑坐標數(shù)據(jù)K近鄰權重每個區(qū)域只取最近的K個鄰居區(qū)域密度不均時坐標數(shù)據(jù)經(jīng)濟距離權重用GDP、貿(mào)易流等經(jīng)濟距離替代地理距離經(jīng)濟溢出研究經(jīng)濟指標鄰接權重在區(qū)域經(jīng)濟研究里最常用但前提是能拿到準確的地圖文件。如果只有經(jīng)緯度坐標用逆距離權重或K近鄰權重會更方便。經(jīng)濟距離權重適合研究貿(mào)易溢出、資本流動這類問題不過因為不是純地理關系審稿時可能被追問構造依據(jù)需要提前想好怎么解釋。2.2 STATA生成權重矩陣的實操命令STATA里構建空間權重矩陣核心就是兩條路老一點的spmat命令以及STATA 15之后內(nèi)置的spmatrix命令。兩者功能基本對應但語法不同混用會報錯所以建議不要在一套代碼里來回切換兩種命令。先說最省事的場景用經(jīng)緯度坐標直接生成逆距離權重矩陣。* 假設數(shù)據(jù)里已經(jīng)有l(wèi)ong和lat兩個變量id變量是省份代碼 ssc install spmat * spmat的逆距離權重命令 spmat idistance W long lat, id(province)spmatrix的寫法稍微不同* 使用spmatrix前先聲明面板結(jié)構 xtset province year * 用坐標生成逆距離權重矩陣id()里寫面板的橫截面維度 spmatrix create idistance W, id(province)如果你的坐標數(shù)據(jù)缺失或者研究區(qū)域是不規(guī)則的行政區(qū)劃最穩(wěn)妥的辦法是先把shapefile讀進STATA再用鄰接方式生成權重矩陣。讀取shapefile常用shp2dta命令把地圖的數(shù)據(jù)庫和坐標分開存成dta文件然后合并到主數(shù)據(jù)里。這一步雖然有點繞但勝在可靠之后生成鄰接矩陣時不會出現(xiàn)坐標對不上號的問題。如果權重矩陣已經(jīng)在外部算好了不管是Excel、csv還是其他軟件導出的格式直接導入更省事* csv格式的權重矩陣導入 import delimited using W.csv, clear * 用spmatrix導入csv里必須含id列且是數(shù)字格式 spmatrix import W using W.csv, id(province) * 如果是從GeoDa導出的gal文件 spmat import W from weights.gal, id(province)2.3 權重矩陣標準化與常見坑點權重矩陣生成后一般都要做行標準化。行標準化的意思是每一行所有元素之和等于1這樣處理后WY的計算結(jié)果可以解釋為鄰居變量的加權平均值模型里的空間滯后項系數(shù)也更容易解讀。STATA里標準化的命令不復雜spmatrix normalize W, normalize(row) spmat normalize W, row我在這一步踩過兩次坑。第一次是生成矩陣后忘記標準化直接拿去跑xsmle結(jié)果估計參數(shù)不收斂檢查之后發(fā)現(xiàn)權重矩陣的行和差異太大有的行是0.5有的行是8.7極大似然估計自然不會穩(wěn)定。第二次是標準化之前沒有保留原始矩陣后來想換一種標準化方式只能重新生成。所以我的建議是原始矩陣和標準化矩陣分開存命名上用W_raw和W區(qū)分做穩(wěn)健性檢驗的時候能快速切換。還有一個容易被忽略的問題權重矩陣的對角元素必須為0。空間權重矩陣刻畫的是別人對自己的影響自己不能是自己的鄰居。如果構建過程有誤矩陣對角元素不為0xsmle跑出來的空間自回歸參數(shù)會異常偏大看起來顯著得一塌糊涂實際上完全是錯的。檢查方法不復雜跑模型前先查看一下矩陣的對角線即可。3. 空間杜賓模型從原理到STATA命令落地3.1 SDM模型在講什么空間杜賓模型Spatial Durbin Model的常見面板形式是Y_it ρ * ΣW_ij Y_jt X_itβ ΣW_ij X_jtθ μ_i λ_t ε_it這個公式看著嚇人逐項拆開其實很直白。第一項ρΣWijYjt是空間滯后項意思是本省的Y會被鄰居省的Y影響ρ就是這個溢出效應的強度。第三項ΣWijXjtθ是解釋變量的空間滯后項它捕捉的是鄰居省的解釋變量對本地Y的影響這也是SDM和SAR模型的核心區(qū)別——SAR只考慮Y之間的互相依賴SDM還考慮了X的跨區(qū)域效應。最后μi和λt分別是個體固定效應和時間固定效應。順著這個思路SDM的優(yōu)勢就出來了它同時包含Y的溢出和X的溢出不像SAR和SEM那樣只刻畫其中一種。實際研究里你不確定空間交互是通過被解釋變量還是解釋變量傳導的直接用SDM是一個相對安全的起點。但這里要強調(diào)一句SDM不是萬能藥如果真實模型是空間誤差相關貿(mào)然用SDM反而會得到有偏的估計所以模型選擇檢驗是必須做的。3.2 模型選擇檢驗先別急著跑SDM比較規(guī)范的流程是先用普通面板OLS然后做LM檢驗判斷空間效應的形式。* 第一步跑普通OLS reg y x1 x2 * 第二步安裝并運行空間診斷命令 ssc install spatdiag spatdiag, weights(W)spatdiag的輸出里有兩個關鍵指標空間滯后項的LM檢驗和空間誤差項的LM檢驗同時各自帶一個Robust版本。判斷邏輯不復雜只有空間滯后的LM顯著優(yōu)先考慮SAR只有空間誤差的LM顯著優(yōu)先考慮SEM兩個都顯著存在雙重空間依賴SDM是合適的選擇兩個都不顯著空間效應可能真的不顯著或者權重矩陣構造有問題。如果LM結(jié)果顯示空間效應確實存在而且你打算用SDM強烈建議再跑一下LR/Wald檢驗驗證SDM能否簡化為SAR或SEM。原假設分別是θ0SDM退化為SAR和θρβ0SDM退化為SEM。xsmle結(jié)果基礎上可以用lrtest這樣操作* 比較SDM與SAR、SDM與SEM xsmle y x1 x2, wmat(W) model(sdm) fe nolog est store m_sdm xsmle y x1 x2, wmat(W) model(sar) fe nolog est store m_sar lrtest m_sdm m_sar xsmle y x1 x2, wmat(W) model(sem) fe nolog est store m_sem lrtest m_sdm m_sem如果兩個LR檢驗都拒絕原假設說明SDM相對SAR和SEM都有顯著改進可以理直氣壯用SDM。如果某一個不能拒絕選更簡潔的那個模型就夠了沒必要為了顯得自己會用SDM就硬上。3.3 xsmle命令實操與效應分解模型定了之后估計的部分基本交給xsmle。這個命令要先從SSC安裝ssc install xsmle最基礎的SDM固定效應寫法xtset province year xsmle y x1 x2, wmat(W) model(sdm) fe type(both) nolog幾個選項必須說明白。model(sdm)指定模型類型可選sar、sem、sdm、sac等wmat(W)指定權重矩陣注意這里用的是標準化后的矩陣fe是固定效應type(both)表示個體和時間雙向固定效應如果只需要個體固定效應寫成type(ind)就行。隨機效應則用re選項。結(jié)果表里最先看的是rho即空間自回歸系數(shù)衡量的是鄰居Y的整體影響。如果rho顯著為正說明存在正向的空間溢出效應。然后是各解釋變量的系數(shù)β以及WX那部分的系數(shù)θ。這里特別提醒在SDM里解釋變量對Y的總影響不能只看β因為鄰居的X和Y都會反哺回來所以必須做效應分解。xsmle提供了現(xiàn)成的分解方式xsmle y x1 x2, wmat(W) model(sdm) fe type(both) nolog dydx加dydx之后的結(jié)果表會多出Direct、Indirect和Total三組。Direct是直接效應即本省X對本省Y的總影響它包含了空間反饋效應Indirect是間接效應也叫空間溢出效應即本省X通過空間交互對鄰居省Y的影響Total是兩者之和。論文里最經(jīng)常報告的就是這幾列尤其間接效應是否顯著往往直接決定了能不能得出存在空間溢出的結(jié)論。4. 常見問題與排查思路4.1 權重矩陣報錯matrix not found、維度對不上這是被問得最多的一類問題。常見報錯信息是matrix W not found或W has wrong dimension。前者多半是權重矩陣不在當前數(shù)據(jù)環(huán)境中——比如換了另一個dta文件或者存了矩陣但沒有讀取后者則和面板的橫截面?zhèn)€體數(shù)量不匹配有關。排查思路很簡單先確認當前樣本里的province數(shù)量再確認矩陣的行列數(shù)。我踩過一次很典型的坑原始數(shù)據(jù)里有31個省份清理缺失值后只剩29個但權重矩陣還是31×31跑xsmle直接報錯。解決方法是先對數(shù)據(jù)進行完整清理用xtset確認后再重新生成或篩選權重矩陣別指望STATA能自動對齊。4.2 面板數(shù)據(jù)設定與缺失值處理xsmle對面板結(jié)構的要求很嚴格。使用之前務必先xtset橫截面維度要和權重矩陣的id保持一致。如果你的數(shù)據(jù)是非平衡面板xsmle有時候會不兼容穩(wěn)妥的做法是先決定是保留完整觀測樣本還是用插補方法把面板補平衡。另一種常見問題是核心變量有少數(shù)缺失值直接刪除后模型報observation dropped結(jié)果權重矩陣對不上。我的習慣是生成一個analysis樣本并同時生成對應的權重矩陣保證每次跑的樣本是完全匹配的。如果數(shù)據(jù)是從Excel導入的還容易遇到中文變量名亂碼可以在import excel時指定encoding(UTF-8)或先轉(zhuǎn)換為dta格式再讀入能省掉不少麻煩。4.3 固定效應與隨機效應的選擇細節(jié)面板SDM的固定效應設置我見過最多的誤操作是把fe和re都跑一遍哪個結(jié)果好看就報哪個這樣審稿人一眼就能看出問題。規(guī)范做法是先用Hausman檢驗判斷。STATA里xtreg加上hausman可以處理無空間項的基準模型有空間項的模型一般會參考同類檢驗或者同時報告SAR、SDM的FE和RE結(jié)果。xsmle的re估計在小樣本下表現(xiàn)不太穩(wěn)定個人經(jīng)驗是樣本量不夠大的時候優(yōu)先用雙向固定效應但也要配合LM檢驗的結(jié)果一起匯報這樣經(jīng)得起追問。4.4 權重矩陣的保存與復用研究過程中要跑很多輪每次都重新生成權重矩陣既浪費時間也容易出錯。spmat和spmatrix都支持保存和讀取。spmatrix用spmatrix export把矩陣導出到文件下次用spmatrix import讀回來spmat可以用spmat save和spmat use。我的習慣是把所有權重矩陣和對應說明統(tǒng)一放在一個weights文件夾里命名類似W_queen_binary.dta、W_queen_row.dta、W_dist_binary.dta跑模型時按需讀取。這樣整個研究過程的矩陣來源清晰寫methodology部分時也不用翻聊天記錄。最后分享一點個人體會空間計量最容易出問題的往往不是模型選擇而是數(shù)據(jù)環(huán)節(jié)。權重矩陣和樣本不匹配、邊界坐標有誤、標準化方式混亂這些問題一旦出現(xiàn)后期結(jié)果解讀就全部失真。所以我建議寧可在準備階段多花兩天把矩陣和樣本的對應關系理得清清楚楚也不要急著跑回歸跑出一堆漂亮數(shù)字最后發(fā)現(xiàn)是錯誤矩陣的產(chǎn)物那才是真正的浪費功夫。本文還有配套的精品資源點擊獲取