stata 导出 相关系数表_Stata: 空间权重矩阵的构建
作者:潘星宇 (清華大學(xué))
Stata 連享會(huì):知乎?| 簡書 |?碼云 | CSDN
Stata連享會(huì)?計(jì)量專題??||?公眾號(hào)合集
特別說明
文中包含的鏈接在微信中無法生效。請(qǐng)點(diǎn)擊本文底部左下角的,請(qǐng)點(diǎn)擊【原文鏈接】。
空間計(jì)量方法已經(jīng)成為了時(shí)下最為熱門和常用的計(jì)量方法之一,而空間權(quán)重矩陣的構(gòu)建則是運(yùn)用空間計(jì)量方法時(shí)必不可少的“標(biāo)準(zhǔn)動(dòng)作”。但在實(shí)際研究過程中,我們往往會(huì)遇到很多問題。例如,目前網(wǎng)絡(luò)上能獲取到的矩陣與我研究的樣本不匹配;例如,做回歸時(shí)時(shí)需要剔除一些樣本單位,但如何構(gòu)建與之對(duì)應(yīng)的空間權(quán)重矩陣;再例如,如何構(gòu)建一些廣義上的“空間”權(quán)重矩陣,等等。本期我們就來和大家一起了解一下權(quán)重矩陣的構(gòu)建。
1. 空間權(quán)重矩陣原理簡介
通常定義一個(gè)二元對(duì)稱空間權(quán)重矩陣來表達(dá) n 個(gè)位置的空間個(gè)體(例如區(qū)域)的鄰近關(guān)系:
理論上講,不存在最優(yōu)的空間矩陣,即無法找到一個(gè)完全描述空間相關(guān)結(jié)構(gòu)的空間矩陣。空間矩陣的構(gòu)造必須滿足 「空間相關(guān)性隨著 ‘距離’ 的增加而減少」的原則。
需要注意的是。在空間計(jì)量中,“距離(counterfacutal) ” 的定義可以是廣義的,包含但不限于地理上的相鄰或者歐氏距離,也可以是經(jīng)濟(jì)意義上合作關(guān)系的遠(yuǎn)近,甚至可以是社會(huì)學(xué)意義上的人際關(guān)系的親疏。
1.1 簡單空間權(quán)重矩陣
最簡單的空間權(quán)重矩陣是所謂的「二進(jìn)制空間權(quán)重矩陣」,使用 0 和 1 來標(biāo)記個(gè)體之間的空間相鄰情況,屬于 定性 界定。
簡單二進(jìn)制鄰接矩陣
簡單的二進(jìn)制鄰接矩陣的第 i 行第 j 列元素為:
基于距離的二進(jìn)制空間權(quán)重矩陣
這類空間權(quán)重矩陣的第 i 行第 j 列元素為:
廣義「相鄰」概念的二進(jìn)制空間權(quán)重矩陣
如前文所述 “相鄰” 可以有不同的定義。一般來說從最基本的空間概念出發(fā),有 Rook 相鄰 、Queen 相鄰 等。Rook 相鄰指的有一段共同的邊即認(rèn)為兩個(gè)單位相鄰,Queen 相鄰認(rèn)為只要存在頂點(diǎn)相接,就認(rèn)為兩地區(qū)為 "鄰居" 關(guān)系。此外還可以定義成二者 是否有相同方言 、是否同屬于一個(gè)城市群 ,等等。
1.2 基于距離的空間權(quán)重矩陣形式
若考慮距離的相對(duì)大小,想要從「定量」角度刻畫空間相鄰性,可以使用如下權(quán)重定義方法:
其中:和分別表示某個(gè)省份(比如地理幾何中心,省會(huì)(首府)) 的緯度和經(jīng)度;為兩個(gè)省份間經(jīng)度之差;R 為地球半徑,等于 3958.761 英里。在實(shí)際應(yīng)用中,常對(duì)空間權(quán)重矩陣進(jìn)行行標(biāo)準(zhǔn)化,空間權(quán)重矩陣的對(duì)角元素設(shè)為 0。
2. 空間權(quán)重矩陣構(gòu)建的準(zhǔn)備工作
要構(gòu)建自己 “定制的” 空間權(quán)重矩陣,首先需要獲得所研究空間單元的地理位置信息文件,以便于 Stata 判斷相對(duì)或者絕對(duì)地理位置。這些信息通常來自于對(duì)研究單元對(duì)象的 ESRI Shapefile 文件(也就是 Stata 繪制地圖時(shí)需要的所謂 “底圖” 文件)。中國的 shapefile 文件包括省級(jí),市級(jí)和縣級(jí)等各個(gè)層面的數(shù)據(jù),可以在國家基礎(chǔ)信息中心申請(qǐng)下載,或者從一些公開的網(wǎng)絡(luò)資源獲取。
本文采用中國省級(jí)行政區(qū) shapefile 作為演示數(shù)據(jù)。
一個(gè)完整的 shapefile 文件由以下幾個(gè)文件組成:
省級(jí)行政區(qū).dbf
省級(jí)行政區(qū).shp
省級(jí)行政區(qū).shx
省級(jí)行政區(qū).prj
省級(jí)行政區(qū).shx
2.1 編輯 shapefile 文件
目前,Stata 中還沒有能對(duì) shapefile 文件進(jìn)行編輯的命令。這一步驟一般采用 ArcGIS 或 arcview 等軟件來進(jìn)行。由于這一步非常重要,因此我們以 ArcGIS 軟件為例,做一個(gè)簡單的演示。
第一步:導(dǎo)入 shpefile 文件
在 ArcGIS 主界面中,點(diǎn)擊下圖中紅圈所示的圖標(biāo),然后按提示選擇硬盤上存儲(chǔ)的 shpefile 文件,即可將其導(dǎo)入 ArcGIS。
第二步:編輯 shpefile 文件
這里假設(shè)我們的研究對(duì)象不含西藏自治區(qū)、香港特別行政區(qū)、澳門特別行政區(qū)以及臺(tái)灣省,我們就需要在編輯器當(dāng)中把這四個(gè)要素刪除。
首先選中圖層,右鍵菜單中選擇 “開始編輯”,
右鍵圖層打開屬性表,刪除上面提到的四個(gè)要素:
第三步:導(dǎo)出 shapefile 文件
再右鍵圖層,選擇 導(dǎo)出數(shù)據(jù) :
這樣,我們就有了符合我們需要的空間權(quán)重矩陣構(gòu)建的 shapefile 文件,下面就需要將其導(dǎo)入 Stata 以便做后續(xù)分析了。
2.2 在 Stata 中導(dǎo)入 shapefile 文件
若采用空間面板數(shù)據(jù)模型進(jìn)行建模,則還需要找出這些省份的經(jīng)緯度等地理信息。前文已經(jīng)說明了如何下載 shapefile 文件,該文件中即包含了各個(gè)國家的地理信息。那么可以將研究單元數(shù)據(jù)和 shapefile 進(jìn)行合并。這里需要用到 mif2dta 或 shp2dta ?命令來讀取 ?shapefile 文件。該命令為外部命令,安裝方式參考「 Stata: 外部命令的搜索、安裝與使用」 。需要注意的是, 只有經(jīng)緯度信息的數(shù)據(jù)集不能用于二項(xiàng)式空間權(quán)重矩陣的構(gòu)建 ,關(guān)于這一點(diǎn)我們將在下文中說明。
這一過程主要是將 .shp 格式的文件編譯成stata可以讀取的文件,主要采用 shp2dta 命令完成。
我們來看看 shp2dta 命令的基本語法:
. shp2dta using shpfilename, ///
database(filename) coordinates(filename) ///
genid(newvarname) gencentroids(stub)
其中,
coordinates(filename) 指定包含 .shp 文件數(shù)據(jù)的新 Stata 數(shù)據(jù)集的名稱。
database(filename) ?指定包含 .dbf 文件數(shù)據(jù)的新 Stata 數(shù)據(jù)集的名稱。
genid(newvarname) 指定新數(shù)值變量的名稱,該數(shù)字變量在文件 database.dta 中將唯一標(biāo)識(shí)感興趣的不同地理區(qū)域。newvarname 采用的值將對(duì)應(yīng)于文件 coordinates.dta 中變量 _ID 所采用的值。
gencentroids(stub) 選項(xiàng)可以計(jì)算出地理區(qū)域的質(zhì)心的坐標(biāo),存儲(chǔ)在變量 x_stub 和 y_stub 中,并添加到文件 database.dta 中。但我們還必須指定 genid(newvarname) 選項(xiàng)。
. shp2dta using "C:\Users\xypan\Desktop\連享會(huì)推文\空間權(quán)重矩陣的構(gòu)建\空間權(quán)重矩陣底圖\30個(gè)省市自治區(qū).shp", ///
database(data_db) coordinates(data_xy) ///
genid(weightid) gencentroids(stub) replace
. use data_db, clear
. rename NAME province
. list province x_stub y_stub in 1/10
+------------------------------+
| province x_stub y_stub |
|------------------------------|
1. | 黑龍江 47.8418 127.725 |
2. | 新疆 41.112 85.2009 |
3. | 山西 37.5698 112.263 |
4. | 寧夏 37.2681 106.158 |
5. | 山東 36.3217 118.107 |
6. | 河南 33.8743 113.581 |
7. | 江蘇 32.9807 119.42 |
8. | 安徽 31.8229 117.197 |
9. | 湖北 30.9677 112.239 |
10. | 浙江 29.1659 120.023 |
+------------------------------+
讀取 shapefile 文件后,可以發(fā)現(xiàn)有 ?x_stub 和 y_stub 兩個(gè)變量,分別代表了對(duì)應(yīng)省份的的地理坐標(biāo)。
接下來將帶有地理坐標(biāo)的 data_db.dta 文件和我們的數(shù)據(jù)文件匹配起來,命名為 spatialweight_province.dta:
merge 1:m province using "C:\Users\xypan\Desktop\連享會(huì)推文\空間權(quán)重矩陣的構(gòu)建\省級(jí)數(shù)據(jù).dta"
keep if _merge==3
drop _merge
save "C:\Users\xypan\Desktop\連享會(huì)推文\空間權(quán)重矩陣的構(gòu)建\spatialdata_province.dta", replace
到此我們完成了幾乎所有的準(zhǔn)備工作,下一步開始正式構(gòu)建空間權(quán)重矩陣。
3 空間權(quán)重矩陣的構(gòu)建
3.1 命令說明
生成距離空間權(quán)重矩陣的命令語法為
spwmatrix gecon varlist [if] [in], ///
wname(wght_name) [wtype(inv) cart r(#) ///
dband(numlist) alpha(#) knn(#) ///
econvar(varname1) beta(#) Other_options]
主要選項(xiàng)的含義如下:
wname(wght_name) 表示要生成的空間權(quán)重矩陣的名稱
wtype(bin | inv | econ | invecon | socnet | socecon) 分別代表二進(jìn)制,距離衰減,經(jīng)濟(jì)距離,逆經(jīng)濟(jì)距離,社會(huì)網(wǎng)絡(luò)或社會(huì)經(jīng)濟(jì)空間權(quán)重
dta ?選擇該選項(xiàng)以從 .dta 文件導(dǎo)入空間權(quán)重
text 選擇該選項(xiàng)以從逗號(hào)或制表符分隔的文本文件導(dǎo)入空間權(quán)重
swm(idvar_name) 導(dǎo)入 ArcGIS 中生成的空間權(quán)重
knn(#) 請(qǐng)求最近鄰空間權(quán)重
econvar(varname1) 可用此選項(xiàng)構(gòu)建經(jīng)濟(jì)或逆經(jīng)濟(jì)距離空間權(quán)重
beta(#) 指定指數(shù)函數(shù)的系數(shù) β; 默認(rèn)測(cè)試版 (1)
cart 表示緯度和經(jīng)度采用笛卡爾坐標(biāo),這是默認(rèn)選項(xiàng) (一般我們也使用的是這個(gè));如果采用球面坐標(biāo)則只能選擇 r(#),此時(shí)不能同時(shí)選擇 cart,并且需要指定地球半徑距離(英里),一般默認(rèn)填寫 r(3958.761);
dband(numlist) 表示最大的權(quán)重矩陣邊界,其中的 numlist 表示確定邊界的變量,一般是各省份代碼的最大值;
alpha(#) 表示參數(shù)限制范圍,默認(rèn)為 alpha(1) ;
3.2 反距離空間權(quán)重矩陣
use spatialdata_province.dta,clear
spwmatrix gecon x_stub y_stub , wn(spatialweight_province) wtype(inv) cart alpha(1)
xport(spatialweight_province,txt) row replace \\生成名為 spatialweight_province 的權(quán)重矩陣
spmat import spatialweight_province using spatialdata_province.txt,replace \\導(dǎo)入 spatialweight_province 權(quán)重矩陣
spmat save spatialweight_province using spatialweight_pro.spmat,replace //將生成的 spmat 權(quán)重文件存儲(chǔ)為spatialweight_pro
spmat use spatialweight_pro using spatialweight_pro.spmat,replace //打開 spmat 權(quán)重文件
matrix list spatialweight_pro //查看 spatialweight_pro 權(quán)重矩陣
這樣,反距離空間權(quán)重矩陣就生成了,由于矩陣展開太大,囿于篇幅限制這里不做展示。
3.3 經(jīng)濟(jì)距離空間權(quán)重矩陣
經(jīng)濟(jì)距離矩陣的計(jì)算公式為
use spatialdata_province.dta,clear
spwmatrix gecon x_c y_c, wn(province) wtype(invecon) cart econvar(GDP_2000) rowstand xport(spatialdata_province,txt) replace\\由于選擇的是 invecon(經(jīng)濟(jì)反距離矩陣)因此需要聲明相應(yīng)的經(jīng)濟(jì)變量
spmat import spatialweight_province using spatialdata_province.txt,replace //生成以spatialweight_province 為名稱的 spmat 權(quán)重文件
其他導(dǎo)入、存儲(chǔ)和查看方法同上,不再贅述。
3.4 地理相鄰空間權(quán)重矩陣
構(gòu)建地理相鄰空間權(quán)重矩陣時(shí),之前計(jì)算的含有地理坐標(biāo)的 spatialdata_province.dta 文件將不再適用,需要將我們編輯好的 .shp 文件導(dǎo)入 Geoda 軟件,再導(dǎo)出 .gal 文件,再使用 spwmatrix 命令進(jìn)行編譯即可使用。導(dǎo)入過程非常簡單,故在此略過。
use spatialdata_province.dta,clear
spwmatrix import using C:\連享會(huì)推文\空間權(quán)重矩陣的構(gòu)建\空間權(quán)重矩陣底圖\spatialdata_province.gal,wname(wcontig) xport(spatialdata_province, dat) \\.gal 只能導(dǎo)出 .dat (不是 .dta,.dat 是 R 語言中一種通用的文件格式)格式的文件
spmat import spatialweight_province using spatialdata_province.dat,replace
其他導(dǎo)入、存儲(chǔ)和查看方法同上。
3.5 廣義的 “相鄰” 空間權(quán)重矩陣
這里我們采用文章開頭提到過的二者是否有相同方言,我們采用徐現(xiàn)祥老師公布的方言數(shù)據(jù),將方言賦值(因?yàn)?spmatrix 命令無法識(shí)別字符型變量),官話賦值為1,吳語賦值為2,以此類推。同屬于一個(gè)方言區(qū)的省份我們賦值為1,不同的我們賦值為0.
use fangyan.dta, clear
spwmatrix socio fangyan_id, wname(fangyan) wtype(socnet) idvar(provinceid) xport(spatialdata_province,txt) \\fangyan_id代表我們的方言代理啞變量
其他導(dǎo)入、存儲(chǔ)和查看方法同上。
4. 結(jié)語
在完成了權(quán)重矩陣的構(gòu)建后,就可以用它進(jìn)行空間計(jì)量回歸了,具體的操作可以參考我們的推文「Stata: 空間面板數(shù)據(jù)模型及Stata實(shí)現(xiàn)」 。
另外需要注意的是 ArcView 、 ArcGIS軟件 和 MATLAB 軟件也可以進(jìn)行空間權(quán)重矩陣的構(gòu)建,我們也看到了甚至一些關(guān)鍵步驟也必須經(jīng)過這些個(gè)軟件的操作(也有其他軟件,在此不一一列舉)。對(duì)這方面有興趣的同學(xué)可以選擇性地學(xué)習(xí)一下。其中 ArcView 相對(duì)更加輕量,不像后兩種軟件動(dòng)輒 10G 大小。
目前 Stata 15.x 版本中發(fā)布的 xsmle 等命令可以也支持多個(gè)空間權(quán)重矩陣的回歸。
參考文獻(xiàn)
Jeanty, P.W., 2010. spwmatrix: Stata module to generate, import, and export spatial weights. Available from.
相關(guān)推文
游萬海,連玉君. Stata: 外部命令的搜索、安裝與使用.
游萬海,連玉君. Stata: Stata: 空間面板數(shù)據(jù)模型及Stata實(shí)現(xiàn).
Stata:空間計(jì)量之用 spmap 繪制地圖
Stata: 空間計(jì)量溢出效應(yīng)的動(dòng)態(tài)GIF演示
Stata:空間計(jì)量之 SP 系列命令
往期精彩推文集錦
Stata連享會(huì)推文集錦
連享會(huì)推文:Stata資源匯總
連享會(huì)推文:數(shù)據(jù)處理與程序
連享會(huì)推文:回歸分析-模型設(shè)定-內(nèi)生性
連享會(huì)推文:時(shí)間序列+面板數(shù)據(jù)
連享會(huì)推文:繪圖
關(guān)于我們
Stata連享會(huì)?由中山大學(xué)連玉君老師團(tuán)隊(duì)創(chuàng)辦,定期分享實(shí)證分析經(jīng)驗(yàn)。
公眾號(hào)推文同步發(fā)布于 CSDN 、簡書?和?知乎Stata專欄。可在百度中搜索關(guān)鍵詞 「Stata連享會(huì)」查看往期推文。
歡迎賜稿:?歡迎賜稿。錄用稿件達(dá)?三篇?以上,即可?免費(fèi)?獲得一期 Stata 現(xiàn)場(chǎng)培訓(xùn)資格。
E-mail:?StataChina@163.com
計(jì)量專題:因?yàn)閷W?#xff0c;所以專業(yè)
往期精彩推文:一網(wǎng)打盡
總結(jié)
以上是生活随笔為你收集整理的stata 导出 相关系数表_Stata: 空间权重矩阵的构建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 拔丝香蕉怎么做 手把手教你制作拔丝香蕉?
- 下一篇: kl3面筋锚入1-a轴柱内水平短长度不小