重矩陣到莫蘭指數(shù)與空間回歸)
簡介面向空間計量學(xué)入門學(xué)習(xí)者的GeoDa實操案例數(shù)據(jù)包涵蓋空間依賴性、空間異質(zhì)性、空間權(quán)重矩陣、Morans I全局與局部統(tǒng)計、空間滯后/誤差模型及地理加權(quán)回歸等方法的入門應(yīng)用。文件總計17個以GeoDa可直接加載的Shapefile.shp/.dbf/.shx為主配合sbn/sbx空間索引、HTML說明頁面與PDF補充文檔壓縮包僅1.13MB輕量便捷。已有437人瀏覽學(xué)習(xí)適合地理信息系統(tǒng)、區(qū)域科學(xué)及城市經(jīng)濟地理方向的學(xué)生和研究人員。借助圣路易斯、薩克拉門托等案例數(shù)據(jù)可練習(xí)數(shù)據(jù)整理、空間自相關(guān)檢驗、熱點識別、回歸建模與地圖可視化掌握從探索性分析到結(jié)果解讀的完整流程。1. 空間計量學(xué)入門先別啃公式讓 GeoDa 把數(shù)據(jù)跑給你看空間計量學(xué)入門最讓人頭疼的不是公式本身而是公式對應(yīng)的地圖直覺遲遲建立不起來。教材一上來就擺空間權(quán)重矩陣、空間滯后項、拉格朗日乘數(shù)檢驗術(shù)語密度太高很多人在第一步就放棄了。我見過不少同學(xué)卡在“為什么我算出的 Moran’s I 和教材不一樣”這種問題上其實多半不是算錯而是權(quán)重矩陣或數(shù)據(jù) ID 沒對齊。GeoDa 把這扇門撬開了一條縫它免費、圖形化空間權(quán)重矩陣、全局 Moran、LISA、空間回歸都能在一個界面里點出來不用寫代碼就能看到完整結(jié)果。這個空間計量學(xué)入門與 GeoDa 軟件應(yīng)用案例數(shù)據(jù) zip 包正好是圍繞這套工具組織的練習(xí)材料包含邊界數(shù)據(jù)、示例屬性和典型操作路徑適合第一次碰空間分析、正在寫論文的同學(xué)按順序復(fù)現(xiàn)。這篇筆記按實際操作順序展開解壓數(shù)據(jù)、建權(quán)重矩陣、跑莫蘭指數(shù)和 LISA、做空間回歸最后把踩過的坑集中列出來。你不需要提前掌握矩陣推導(dǎo)會裝 GeoDa、認(rèn)得清 shp 和 CSV 就夠了。2. 空間權(quán)重矩陣解壓后第一件事把數(shù)據(jù) ID 和鄰接關(guān)系對齊2.1 空間權(quán)重矩陣是骨不是可有可無的細(xì)節(jié)空間計量和普通回歸最大的區(qū)別就是多了一張空間權(quán)重矩陣 W。它 n 行 n 列n 是樣本區(qū)域個數(shù)第 i 行第 j 列表示 j 對 i 的空間影響。Moran 指數(shù)的分子要乘 W空間回歸里的空間滯后項 W·y 也要用到 W所以權(quán)重矩陣一旦建錯后面每一步都是錯的而且錯誤通常不報錯只輸出一個“看似合理但跟預(yù)期完全對不上”的結(jié)果。挑選權(quán)重類型的邏輯并不復(fù)雜。用省級面板、市轄區(qū)這類邊界整齊的行政區(qū)劃時Queen 鄰接最直觀共點或共邊都算鄰居網(wǎng)格狀或街區(qū)形態(tài)的數(shù)據(jù)用 Rook 鄰接更嚴(yán)謹(jǐn)只認(rèn)共邊點位型數(shù)據(jù)比如企業(yè)數(shù)據(jù)、氣象站數(shù)據(jù)用距離閾值或 K 近鄰更合理。四種常見類型對比如下權(quán)重類型構(gòu)建邏輯適用場景注意點Queen 鄰接共點或共邊都算鄰居省、市、區(qū)縣邊界數(shù)據(jù)可能出現(xiàn)孤島單元Rook 鄰接只共邊才算鄰居網(wǎng)格狀、街區(qū)型數(shù)據(jù)對角線接觸會被忽略距離閾值距離小于閾值算鄰居企業(yè)、采樣點等點位數(shù)據(jù)閾值選擇敏感K 近鄰每個區(qū)域取最近的 K 個形狀差異大、有孤島的數(shù)據(jù)K 太大會引入遠(yuǎn)距離關(guān)系對剛?cè)腴T的人我先建議只記住一條先用 Queen 一階鄰接 行標(biāo)準(zhǔn)化把全流程跑通等理解了結(jié)果再回來試 K 近鄰和距離閾值。不要一開始就同時比較十幾種權(quán)重那是穩(wěn)健性檢驗階段才做的事。2.2 解壓 zip 包并確認(rèn)數(shù)據(jù)文件無論案例包從哪里下載第一步永遠(yuǎn)是完整解壓到一個獨立目錄。我習(xí)慣在用戶目錄下建一個 spatial_lab 之類的英文目錄而不是直接解壓到桌面因為 GeoDa 對全角空格、中文路徑和深層嵌套目錄的兼容性不穩(wěn)定Windows 上遇到中文目錄容易直接打不開 shapefile。解壓命令如下mkdir -p ~/spatial_lab unzip 空間計量學(xué)入門與GeoDa軟件應(yīng)用案例數(shù)據(jù).zip -d ~/spatial_lab/ cd ~/spatial_lab ls -la-d 參數(shù)把文件統(tǒng)一釋放到指定目錄避免 zip 內(nèi)部的多級目錄把項目拆得七零八落mkdir -p 保證目標(biāo)目錄存在。解壓后不要急著啟動 GeoDa先檢查解壓出來的文件結(jié)構(gòu)。一個典型的空間計量案例包至少包含四部分.shp 邊界幾何文件、.dbf 屬性表、.shx 索引文件以及 .csv 或 .dbf 格式的統(tǒng)計指標(biāo)整理得完整的還會帶權(quán)重文件 .gal/.gwt 和工程文件 .gda。用 ls 看得不放心可以再用 file 命令確認(rèn)文件不是空殼file *.shp *.dbf *.csv如果輸出里出現(xiàn) empty file 或 broken說明 zip 包在傳輸或解壓過程中出了問題換一個解壓工具重新解壓即可。這里還有個常見的理解誤差GeoDa 里的“打開數(shù)據(jù)”并不等于“打開 Excel 表格”它必須有一份帶空間位置的邊界文件兜底光有 CSV 是畫不出地圖的。如果壓縮包里帶 .gda 工程文件直接雙擊它進 GeoDa 即可沒有的話就按下面的 Shapefile 流程走。2.3 在 GeoDa 里創(chuàng)建一份可用的 Queen 鄰接權(quán)重打開 GeoDa 后通過 File → Open → Shapefile 選中剛才解壓的 .shp。打開后左側(cè)是地圖窗口右側(cè)是屬性表窗口這時候先別急著做分析先確認(rèn)屬性表里有沒有一個唯一且無空值的 ID 字段。省/縣代碼、統(tǒng)計代碼都行但必須是整數(shù)類型。隨后從菜單打開 Tools → Weights Manager在權(quán)重管理器中點 Create按下面幾步設(shè)置權(quán)重類型選擇 Contiguity Weight階數(shù) Order 寫 1鄰接規(guī)則選 Queen ContiguityID 變量選擇剛才確認(rèn)好的整數(shù)代碼字段保存路徑保持默認(rèn)權(quán)重文件會以 .gal 后綴寫到磁盤點擊 Create回到 Weights Manager 主面板確認(rèn)總樣本數(shù)與屬性表行數(shù)一致。完成后最重要的一件事是打開權(quán)重文件看一眼別直接進入分析。.gal 文件是純文本用文本編輯器就能看到province_weight.GAL 31 31 1 3 2 3 4 2 3 1 4 5 3 4 1 2 5 6第一行是文件名第二行前半是區(qū)域總數(shù)從第三行開始每一行第一個數(shù)字是區(qū)域 ID第二個數(shù)字是鄰居個數(shù)后面跟著的就是鄰居 ID 列表。我一般會重點檢查有沒有“第二個數(shù)字是 0”的行那意味著某個區(qū)域在 Queen 鄰接下沒有鄰居也就是孤島單元后續(xù)分析會因此出問題。權(quán)重矩陣的對齊檢查應(yīng)該像做數(shù)據(jù)清洗一樣固定下來。2.4 行標(biāo)準(zhǔn)化默認(rèn)勾選別關(guān)掉創(chuàng)建權(quán)重時GeoDa 會默認(rèn)勾上 Row-standardize。不要手癢關(guān)掉它。行標(biāo)準(zhǔn)化的意思是把權(quán)重矩陣每一行的值除以該行總和讓每個區(qū)域的鄰居影響權(quán)重之和等于 1。這樣做最大的好處是空間滯后項 W·y 從“鄰居的總和”變成“鄰居的平均值”參數(shù)的可解釋性好很多。如果不做行標(biāo)準(zhǔn)化一個被 8 個鄰居包圍的區(qū)域和一個只有 2 個鄰居的區(qū)域即使鄰居取值完全相同算出來的 W·y 也差好幾倍回歸系數(shù)會因此失真。GeoDa 的 Moran’s I 和回歸面板都會讀取權(quán)重文件的標(biāo)準(zhǔn)化屬性如果你用 .gwt 格式的距離權(quán)重更要在權(quán)重創(chuàng)建時就確認(rèn)行標(biāo)準(zhǔn)化被勾選。我個人的習(xí)慣是不管用什么權(quán)重類型全部統(tǒng)一行標(biāo)準(zhǔn)化如果為了穩(wěn)健性比較不同權(quán)重也會把標(biāo)準(zhǔn)化方式固定為同一種避免把“權(quán)重類型不同”和“標(biāo)準(zhǔn)化方式不同”兩個因素混在一起。空間計量里很多令人困惑的差異追到根上都是這種細(xì)節(jié)沒固定住。3. Moran’s I 與 LISA全局自相關(guān)的顯著性檢驗和散點圖讀法3.1 全局 Moran’s I一個數(shù)衡量全域空間自相關(guān)空間自相關(guān)檢驗的核心工具就是全局 Moran’s I。它衡量同一個變量在相鄰區(qū)域之間是趨向于相似、相反還是完全隨機。公式寫出來是這個樣子I (n / S0) * [∑∑ w_ij (x_i - x?)(x_j - x?)] / [∑ (x_i - x?)2]其中 S0 是所有 w_ij 之和如果權(quán)重做了行標(biāo)準(zhǔn)化S0 就等于 n公式會簡化不少??粗鴱?fù)雜但它做的事就是“把相鄰區(qū)域之間的協(xié)方差歸一化”。這里有一個非常值得說的細(xì)節(jié)在原假設(shè)“空間隨機分布”下Moran 指數(shù)的數(shù)學(xué)期望是 -1/(n-1)不是 0。只有當(dāng)區(qū)域個數(shù)特別大時這個期望才趨近于 0。所以你看到結(jié)果里 Moran0.02、p0.3不代表分析沒意義而是變量在當(dāng)前權(quán)重定義下沒有顯著的空間自相關(guān)。如果 Moran 指數(shù)顯著為正說明相鄰區(qū)域取值傾向相似也就是存在正空間自相關(guān)熱點和冷點會成片出現(xiàn)。顯著為負(fù)則說明相鄰區(qū)域取值傾向相反比如高值被低值包圍這種情況在現(xiàn)實中多見于行政邊界跨界的污染或稅收競爭數(shù)據(jù)。要判斷顯著與否不是看指數(shù)絕對值大小而是看基于置換的偽 p 值。3.2 在 GeoDa 里運行全局 Moran 并讀懂四個象限操作路徑是 Space → Univariate Moran’s I中文界面會顯示“單變量莫蘭指數(shù)”。在彈出的對話框里選擇要分析的變量下面的權(quán)重文件選 2.3 節(jié)生成的那份 .gal點擊 OK 后會同時出現(xiàn)兩個窗口Moran 散點圖和統(tǒng)計報告。散點圖的橫軸是變量標(biāo)準(zhǔn)化值縱軸是空間滯后值 W·y四個象限分別對應(yīng)四種局部格局右上角的 HH 表示高值區(qū)和相鄰高值區(qū)聚集左下角 LL 是低值與低值相鄰左上角 LH 表示低值被高值包圍右下角 HL 表示高值被低值包圍。散點圖回歸線的斜率就是全局 Moran 指數(shù)本身。有一點必須提醒散點圖里的點越分散回歸線斜率越受異常點影響所以報告里要同時看 p 值和剔除明顯離群點后的結(jié)果。在統(tǒng)計報告窗口里重點看三個字段Moran’s I 值、pseudo p-value偽 p 值、permutations置換次數(shù)。GeoDa 默認(rèn)使用隨機置換檢驗一般默認(rèn) 999 次。我做論文時會拉到 9999 次并且把置換次數(shù)直接寫在結(jié)果描述里因為 9999 次得到的偽 p 值穩(wěn)定得多審稿人也不會問“為什么換個隨機種子結(jié)果就變了”。這里穿插一個解釋偽 p 值的含義是把變量取值隨機打亂后再計算 Moran 指數(shù)重復(fù)上千次后看真實觀察到的 Moran 在隨機分布中的位置。如果只有 2% 的隨機結(jié)果比真實值更大那 p 值就是 0.02。所以置換次數(shù)越少p 值本身的隨機性越大。3.3 LISA從“一個數(shù)”到“一張分布地圖”全局 Moran 只給你一個總體數(shù)值。如果全局檢驗顯著你自然會追問哪些區(qū)域是真正的高值集聚區(qū)這就是局部 Moran LISA 要解決的問題。在 GeoDa 里運行 Space → Univariate LISA選擇同樣的變量和權(quán)重文件置換次數(shù)同樣建議設(shè)為 9999。運行結(jié)果會同時打開集聚圖、顯著性地圖、散點圖等多個窗口。集聚圖的每個區(qū)域按局部自相關(guān)類型著色集聚類型含義常見解讀高-高HH該區(qū)域本身高值鄰居也高值熱點區(qū)帶動效應(yīng)強低-低LL該區(qū)域和鄰居都低值冷點區(qū)容易被忽視高-低HL該區(qū)域高值鄰居低值極化點虹吸或統(tǒng)計離群低-高LH該區(qū)域低值鄰居高值凹陷點統(tǒng)計離群需要理解的是集聚圖里所有有顏色的區(qū)域都是局部 Moran 指數(shù)對應(yīng)的偽 p 值小于設(shè)定水平通常是 0.05。LISA 分析本質(zhì)上涉及多次檢驗所以不應(yīng)該把 0.1 這種寬松水平拿來做結(jié)論。如果樣本量很大反而要更嚴(yán)格。這里有兩個判斷標(biāo)準(zhǔn)供參考全局 Moran 顯著 LISA 圖能看出來成片的熱點和冷點基本可以判定變量有可靠的空間結(jié)構(gòu)如果全局顯著但 LISA 全是散點、沒有一個像樣的集聚區(qū)就回去檢查權(quán)重矩陣或數(shù)據(jù)里的離群值大概率是某個異常區(qū)域在拖著全體結(jié)果。3.4 用 PySAL 復(fù)核 GeoDa 算出的數(shù)GeoDa 是個圖形界面很多同學(xué)在論文里被追問“這個 p 值是怎么算出來的”回答不上來。其實 GeoDa 的結(jié)果完全可以用 Python 的 PySAL 復(fù)核。下面是復(fù)核全局 Moran 和 LISA 的最小腳本import geopandas as gpd import libpysal as lp from esda.moran import Moran, Moran_Local # 讀取邊界和權(quán)重 gdf gpd.read_file(province.shp, encodingutf-8) w lp.io.open(province_weight.gal).read() w.transform r # 行標(biāo)準(zhǔn)化對應(yīng) GeoDa 里的 Row-standardize # 全局 Moran y gdf[gdp_percap] moran Moran(y, w, permutations9999) print(fMorans I {moran.I:.4f}, pseudo p {moran.p_sim:.4f}) # 局部 LISA lisa Moran_Local(y, w, permutations9999) print(lisa.q) # 四個象限分類結(jié)果 print(lisa.p_sim) # 每個區(qū)域的偽 p 值說明三點一是 geopandas 的 read_file 需要正確指定編碼中文屬性表建議先做編碼檢查二是 w.transform r 必須和 GeoDa 里創(chuàng)建權(quán)重時的行標(biāo)準(zhǔn)化保持一致三是 permutations 指定 9999這個參數(shù)直接影響偽 p 值穩(wěn)定性。如果 GeoDa 和 PySAL 的結(jié)果差異在小數(shù)點后兩位以內(nèi)說明分析沒跑偏如果對不上先檢查權(quán)重的樣本數(shù)是否一致再檢查 ID 是否對齊。4. 空間回歸模型從 OLS 到空間滯后/空間誤差模型的選擇邏輯4.1 為什么 OLS 在空間數(shù)據(jù)上不靠譜回歸分析的第一步永遠(yuǎn)是 OLS??臻g數(shù)據(jù)里經(jīng)常出現(xiàn)兩個問題殘差存在空間自相關(guān)或者解釋變量存在空間溢出。只要有一個出現(xiàn)OLS 的系數(shù)標(biāo)準(zhǔn)誤就是錯的顯著性檢驗也失去意義。所以空間回歸不是“換個高級模型”而是讓回歸結(jié)果在空間依賴存在時依然可信。空間依賴的兩種典型結(jié)構(gòu)對應(yīng)兩種模型。第一種是空間滯后模型SAR被解釋變量 y 本身會受到相鄰區(qū)域 y 的影響寫成 y ρW·y Xβ ε。ρ 是空間自回歸系數(shù)它刻畫的是“鄰居的結(jié)果會傳染到本地”。第二種是空間誤差模型SEM空間依賴進入擾動項寫成帶 λ 的誤差結(jié)構(gòu)它刻畫的是“鄰居那邊未觀測到的因素傳導(dǎo)到了本地”。選擇哪一種不能靠拍腦袋要靠檢驗。GeoDa 的 OLS 輸出里有一個專門的板塊報告 LM 檢驗拉格朗日乘數(shù)檢驗及穩(wěn)健版判斷該用哪種空間結(jié)構(gòu)。經(jīng)驗上如果被解釋變量有明顯的擴散、傳染、示范效應(yīng)比如房價、技術(shù)采用率、犯罪率優(yōu)先懷疑 SAR如果主要是遺漏變量或區(qū)域沖擊導(dǎo)致的空間關(guān)聯(lián)優(yōu)先懷疑 SEM。4.2 先跑 OLS再看 LM 檢驗決定后一步在 GeoDa 里跑 OLS 的操作Methods → Regression部分版本菜單位置略有差異但名稱不變在回歸對話框中把 Y 變量選為被解釋變量加入若干 X 解釋變量運行后先看回歸結(jié)果和殘差同時把 LM 檢驗數(shù)據(jù)留好。LM 檢驗輸出四行關(guān)鍵結(jié)果LM-Lag、LM-Err、Robust LM-Lag、Robust LM-Err。它們是兩兩配對的決策規(guī)則歸納如下LM-LagLM-Err選型建議顯著不顯著空間滯后模型 SAR不顯著顯著空間誤差模型 SEM兩者都顯著兩者都顯著看穩(wěn)健版中更顯著的那個兩者都不顯著兩者都不顯著維持 OLS不必強加空間項這條規(guī)則是空間計量里公認(rèn)的操作順序不是玄學(xué)。要注意的是若 LM-Lag 和 LM-Err 都顯著而各版本也分不出高下就需要考慮空間杜賓模型SDM做進一步檢驗。GeoDa 的標(biāo)準(zhǔn)面板里沒有 SDM通常轉(zhuǎn)入 R 的 spdep 包或 Python 處理入門階段先掌握 SAR 和 SEM 就夠了。4.3 在 GeoDa 里運行空間滯后/空間誤差模型明確了選型之后回到回歸對話框把模型從 OLS 切換為 Spatial Lag 或 Spatial Error并在空間權(quán)重欄選擇 2.3 節(jié)生成的權(quán)重文件。GeoDa 在這個面板里會顯示權(quán)重文件名稱和具體模型設(shè)置。運行前再確認(rèn)三件事一是權(quán)重文件已經(jīng)行標(biāo)準(zhǔn)化二是樣本量與權(quán)重矩陣一致三是解釋變量不要包含因變量的線性組合比如 Y 和 Y 的滯后項不能同時放。GeoDa 對這三項沒有強制報錯但它們都會讓輸出出現(xiàn)奇怪的不可讀結(jié)果。運行結(jié)束后輸出會多出幾項關(guān)鍵統(tǒng)計量對空間滯后模型直接看 ρ對空間誤差模型直接看 λ。如果 ρ 或 λ 不顯著說明加入空間結(jié)構(gòu)后并未改進模型這時應(yīng)該回到 LM 檢驗重新審視選型而不是強行保留一個不顯著的空間項??臻g回歸模型的 R2 也不能直接和 OLS 的 R2 對比因為空間模型用極大似然估計MLE提供的是偽 R2。真正用于比較的是 log-likelihood 和 AIC/SC哪個數(shù)值更優(yōu)說明模型解釋力更強。很多新手拿 OLS 的 R2 和空間模型的偽 R2 直接比較得出“空間模型不如 OLS”的結(jié)論這是錯誤比較。4.4 讀懂輸出里的“直接效應(yīng)”和“間接效應(yīng)”空間滯后模型里ρ 顯著不為零時解釋變量的系數(shù) β 不能再按普通線性回歸的語氣解釋。以房價數(shù)據(jù)為例解釋變量就業(yè)密度提高 1 個單位不僅直接抬升本地區(qū)房價還會通過空間滯后項把影響傳導(dǎo)到鄰居鄰居又反過來影響本地區(qū)形成反饋循環(huán)。所以嚴(yán)格意義上要把效應(yīng)分解成直接效應(yīng)和間接效應(yīng)空間溢出效應(yīng)。GeoDa 的回歸輸出本身不直接給分解表但很多研究者會把 ρ 和 β 代入公式用 R 的 spatialreg 包求均值。入門階段至少要做到不把 β 孤立地念成“每增加一個單位Y 增加多少”而是說“在 ρ 顯著的情況下存在空間反饋”??臻g誤差模型則不同雖然 λ 顯著但解釋變量的系數(shù)解釋與 OLS 基本相同因為空間結(jié)構(gòu)在誤差項里不改變 X 對 Y 的邊際效應(yīng)。寫論文時SAR 模型談溢出SEM 模型談濾波后的關(guān)系二者解釋方式不一樣?;乜匆槐?4.2 的選型規(guī)則比直接在結(jié)果里挑一個好看的 ρ 靠譜得多。5. 避坑清單GeoDa 數(shù)據(jù)分析和 zip 解壓里最常翻車的五個細(xì)節(jié)5.1 中文路徑與 zip 解壓亂碼GeoDa 直接打不開 shp現(xiàn)象zip 解壓后雙擊或用 File → Open 選路徑GeoDa 報錯或地圖窗口空白同一個文件在 QGIS 里卻能正常打開。原因壓縮包里的中文目錄名在 Windows 默認(rèn)解壓后可能變成亂碼GeoDa 對路徑中的中文、全角空格、特殊字符兼容性不好老的壓縮包用 GBK 編碼打包在 macOS 或 Linux 上解壓后目錄名也可能亂掉。解決把解壓目標(biāo)目錄改成純英文比如 C:\geo_lab 或 ~/spatial_lab內(nèi)部文件名也盡量改成 province.shp 這種短名稱。命名的第一原則就是路徑中不要出現(xiàn)中文zip 包本身是中文名沒關(guān)系解壓后的頂層目錄一定要重命名為英文。5.2 屬性表中文亂碼CSV/DBF 編碼不一致現(xiàn)象在 GeoDa 屬性表窗口看到的省名、市名全是亂碼用 CSV 做表連接時連接鍵明明一樣卻匹配不上。原因?qū)傩詳?shù)據(jù)是 GBK/GB2312 編碼保存的GeoDa 默認(rèn)按 UTF-8 讀取或者反過來文件是 UTF-8但舊的編輯工具保存時落了 BOM 標(biāo)記導(dǎo)致第一列名稱異常。解決用 VS Code 或 Notepad 打開 CSV重新編碼為 UTF-8 后保存注意保存時帶 BOM 而不是純 UTF-8GeoDa 對帶 BOM 的 UTF-8 識別更穩(wěn)定。DBF 文件則盡量用數(shù)據(jù)管理工具轉(zhuǎn)存為 CSV 再做關(guān)聯(lián)。每次拿到新數(shù)據(jù)先花半分鐘檢查編碼能省下后面一個小時的排查時間。5.3 ID 不匹配權(quán)重矩陣對不上數(shù)據(jù)現(xiàn)象創(chuàng)建權(quán)重時一切正常但做 Moran 或回歸時GeoDa 提示權(quán)重與數(shù)據(jù)觀測數(shù)不一致或者結(jié)果窗口里全是缺失值。原因shapefile 屬性表里的 ID 字段和權(quán)重文件里的 ID 編號不是同一套比如數(shù)據(jù)里用省名“北京”權(quán)重里卻用代碼 11或者 CSV 合并時兩個表的連接字段類型不一致一個是整數(shù)一個是字符串。解決先統(tǒng)一 ID。推薦做法是創(chuàng)建一個整數(shù)型 ID 列比如行政區(qū)劃代碼讓 shp 和 CSV 都用這個字段做主鍵。在 GeoDa 的表窗口可以右鍵新增變量并重新編碼導(dǎo)入 CSV 后用 Table → Merge 合并再檢查唯一性和缺失值。權(quán)重文件里的 ID 順序必須與主表一致這是所有空間分析能跑通的前提。5.4 孤島單元鄰接權(quán)重整行是零現(xiàn)象Weights Manager 里創(chuàng)建權(quán)重后顯示連通性異常Moran 結(jié)果出現(xiàn) NaN空間回歸里某個區(qū)域的擬合值空掉。原因某個多邊形與其他區(qū)域不共邊比如海島縣、飛地在 Queen 鄰接下鄰居數(shù)為 0權(quán)重矩陣中這一行全為 0局部自相關(guān)無法計算。解決先識別孤島——在 Weights Manager 里打開權(quán)重編輯器GeoDa 會把沒有鄰居的單元高亮顯示。然后改用 K 近鄰比如 K4或距離閾值權(quán)重保證每個區(qū)域至少有一個鄰居也可以在分析中剔除這個區(qū)域。對面板數(shù)據(jù)要格外小心不同年份行政區(qū)劃若有變動一個穩(wěn)定存在的島縣會持續(xù)影響模型。5.5 莫蘭 p 值兩次不一樣置換次數(shù)太少現(xiàn)象今天跑全局 Moranp0.04明天同一份數(shù)據(jù)重跑變成 p0.06LISA 圖上顯著區(qū)域也略有變化。原因GeoDa 的顯著性是基于隨機置換得到的偽 p 值。默認(rèn)置換次數(shù)較少時隨機波動會直接影響結(jié)果不同版本對隨機種子處理也不一致所以重復(fù)運行會得到細(xì)微差異。解決把置換次數(shù)固定下來一般設(shè) 9999論文里寫明“基于 9999 次隨機置換”。如果對可復(fù)現(xiàn)性要求更高就在同一次會話內(nèi)完成所有核心分析并記錄 GeoDa 的版本號和隨機種子設(shè)置。從那以后我每次輸出莫蘭結(jié)果都會同時寫下置換次數(shù)避免過幾天自己都說不清這個 p 值是怎么來的。6. 復(fù)核與收尾技巧三個數(shù)字確認(rèn)你跑的不是黑匣子6.1 用統(tǒng)計量本身驗證分析結(jié)果跑完空間回歸和莫蘭指數(shù)后先核對三個地方。第一Moran 指數(shù)是否落在合理范圍內(nèi)一般情況下取值在 -1 到 1 之間如果出現(xiàn) 0.8 以上的極端值先懷疑離群值再懷疑權(quán)重矩陣而不是急著宣布“強空間自相關(guān)”。第二偽 p 值和置換次數(shù)要成對記錄一份結(jié)果里寫了 p0.02就必須寫著 9999 permutations缺一個都不完整。第三LISA 顯著單元的數(shù)量和 Moran 散點圖四個象限的落點數(shù)量要能對上如果集聚圖標(biāo)出十幾個 HH 區(qū)域散點圖右上角卻只有兩三個點多半是權(quán)重文件或者數(shù)據(jù)版本選錯了。6.2 一個固定下來的檢查流程我每次拿到新的案例數(shù)據(jù)都會強制走一遍這套流程解壓到英文路徑 → 打開 shp 和 CSV 檢查字段類型與編碼 → 創(chuàng)建權(quán)重并打開 .gal 看孤島和鄰居數(shù) → 跑全局 Moran設(shè) 9999 次置換并記錄偽 p 值 → 跑 LISA 對照集聚圖 → 最后做 LM 檢驗并選型空間回歸。整個流程在 GeoDa 里不會超過半小時但它能過濾掉絕大多數(shù)“結(jié)果看著正常換個數(shù)據(jù)就崩”的隱患。有一次我跳過權(quán)重文件檢查直接跑空間回歸出來的 ρ 顯著得漂亮后來發(fā)現(xiàn) ID 字段在 CSV 里被讀成了字符串整體匹配錯位整個結(jié)果作廢重來。從那以后權(quán)重矩陣的鄰居數(shù)和 ID 唯一性檢查就成了我雷打不動的第一步。如果你也在入門空間計量希望這套流程幫到你少走一段我走過的彎路。本文還有配套的精品資源點擊獲取