日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

stata 导出 相关系数表_Stata: 空间权重矩阵的构建

發布時間:2024/9/19 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stata 导出 相关系数表_Stata: 空间权重矩阵的构建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:潘星宇 (清華大學)

Stata 連享會:知乎?| 簡書 |?碼云 | CSDN

  • Stata連享會?計量專題??||?公眾號合集

連享會-內生性專題現場班-2019.11.14-17

特別說明

文中包含的鏈接在微信中無法生效。請點擊本文底部左下角的,請點擊【原文鏈接】。

空間計量方法已經成為了時下最為熱門和常用的計量方法之一,而空間權重矩陣的構建則是運用空間計量方法時必不可少的“標準動作”。但在實際研究過程中,我們往往會遇到很多問題。例如,目前網絡上能獲取到的矩陣與我研究的樣本不匹配;例如,做回歸時時需要剔除一些樣本單位,但如何構建與之對應的空間權重矩陣;再例如,如何構建一些廣義上的“空間”權重矩陣,等等。本期我們就來和大家一起了解一下權重矩陣的構建。

1. 空間權重矩陣原理簡介

通常定義一個二元對稱空間權重矩陣來表達 n 個位置的空間個體(例如區域)的鄰近關系:

理論上講,不存在最優的空間矩陣,即無法找到一個完全描述空間相關結構的空間矩陣。空間矩陣的構造必須滿足 「空間相關性隨著 ‘距離’ 的增加而減少」的原則。

需要注意的是。在空間計量中,“距離(counterfacutal) ” 的定義可以是廣義的,包含但不限于地理上的相鄰或者歐氏距離,也可以是經濟意義上合作關系的遠近,甚至可以是社會學意義上的人際關系的親疏。

1.1 簡單空間權重矩陣

最簡單的空間權重矩陣是所謂的「二進制空間權重矩陣」,使用 0 和 1 來標記個體之間的空間相鄰情況,屬于 定性 界定。

簡單二進制鄰接矩陣

簡單的二進制鄰接矩陣的第 i 行第 j 列元素為:

基于距離的二進制空間權重矩陣

這類空間權重矩陣的第 i 行第 j 列元素為:

廣義「相鄰」概念的二進制空間權重矩陣

如前文所述 “相鄰” 可以有不同的定義。一般來說從最基本的空間概念出發,有 Rook 相鄰Queen 相鄰 等。Rook 相鄰指的有一段共同的邊即認為兩個單位相鄰,Queen 相鄰認為只要存在頂點相接,就認為兩地區為 "鄰居" 關系。此外還可以定義成二者 是否有相同方言是否同屬于一個城市群 ,等等。

1.2 基于距離的空間權重矩陣形式

若考慮距離的相對大小,想要從「定量」角度刻畫空間相鄰性,可以使用如下權重定義方法:

其中:和分別表示某個省份(比如地理幾何中心,省會(首府)) 的緯度和經度;為兩個省份間經度之差;R 為地球半徑,等于 3958.761 英里。在實際應用中,常對空間權重矩陣進行行標準化,空間權重矩陣的對角元素設為 0。

2. 空間權重矩陣構建的準備工作

要構建自己 “定制的” 空間權重矩陣,首先需要獲得所研究空間單元的地理位置信息文件,以便于 Stata 判斷相對或者絕對地理位置。這些信息通常來自于對研究單元對象的 ESRI Shapefile 文件(也就是 Stata 繪制地圖時需要的所謂 “底圖” 文件)。中國的 shapefile 文件包括省級,市級和縣級等各個層面的數據,可以在國家基礎信息中心申請下載,或者從一些公開的網絡資源獲取。

本文采用中國省級行政區 shapefile 作為演示數據。

一個完整的 shapefile 文件由以下幾個文件組成:

  • 省級行政區.dbf

  • 省級行政區.shp

  • 省級行政區.shx

  • 省級行政區.prj

  • 省級行政區.shx

2.1 編輯 shapefile 文件

目前,Stata 中還沒有能對 shapefile 文件進行編輯的命令。這一步驟一般采用 ArcGISarcview 等軟件來進行。由于這一步非常重要,因此我們以 ArcGIS 軟件為例,做一個簡單的演示。

第一步:導入 shpefile 文件

ArcGIS 主界面中,點擊下圖中紅圈所示的圖標,然后按提示選擇硬盤上存儲的 shpefile 文件,即可將其導入 ArcGIS

第二步:編輯 shpefile 文件

這里假設我們的研究對象不含西藏自治區、香港特別行政區、澳門特別行政區以及臺灣省,我們就需要在編輯器當中把這四個要素刪除。

首先選中圖層,右鍵菜單中選擇 “開始編輯”

右鍵圖層打開屬性表,刪除上面提到的四個要素:

第三步:導出 shapefile 文件

再右鍵圖層,選擇 導出數據

這樣,我們就有了符合我們需要的空間權重矩陣構建的 shapefile 文件,下面就需要將其導入 Stata 以便做后續分析了。

2.2 在 Stata 中導入 shapefile 文件

若采用空間面板數據模型進行建模,則還需要找出這些省份的經緯度等地理信息。前文已經說明了如何下載 shapefile 文件,該文件中即包含了各個國家的地理信息。那么可以將研究單元數據和 shapefile 進行合并。這里需要用到 mif2dta 或 shp2dta ?命令來讀取 ?shapefile 文件。該命令為外部命令,安裝方式參考「 Stata: 外部命令的搜索、安裝與使用」 。需要注意的是, 只有經緯度信息的數據集不能用于二項式空間權重矩陣的構建 ,關于這一點我們將在下文中說明。

這一過程主要是將 .shp 格式的文件編譯成stata可以讀取的文件,主要采用 shp2dta 命令完成。

我們來看看 shp2dta 命令的基本語法:

. shp2dta using shpfilename, ///

database(filename) coordinates(filename) ///

genid(newvarname) gencentroids(stub)

其中,

  • coordinates(filename) 指定包含 .shp 文件數據的新 Stata 數據集的名稱。

  • database(filename) ?指定包含 .dbf 文件數據的新 Stata 數據集的名稱。

  • genid(newvarname) 指定新數值變量的名稱,該數字變量在文件 database.dta 中將唯一標識感興趣的不同地理區域。newvarname 采用的值將對應于文件 coordinates.dta 中變量 _ID 所采用的值。

  • gencentroids(stub) 選項可以計算出地理區域的質心的坐標,存儲在變量 x_stuby_stub 中,并添加到文件 database.dta 中。但我們還必須指定 genid(newvarname) 選項。

. shp2dta using "C:\Users\xypan\Desktop\連享會推文\空間權重矩陣的構建\空間權重矩陣底圖\30個省市自治區.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 文件后,可以發現有 ?x_stuby_stub 兩個變量,分別代表了對應省份的的地理坐標。

接下來將帶有地理坐標的 data_db.dta 文件和我們的數據文件匹配起來,命名為 spatialweight_province.dta

merge 1:m province using "C:\Users\xypan\Desktop\連享會推文\空間權重矩陣的構建\省級數據.dta"

keep if _merge==3

drop _merge

save "C:\Users\xypan\Desktop\連享會推文\空間權重矩陣的構建\spatialdata_province.dta", replace

到此我們完成了幾乎所有的準備工作,下一步開始正式構建空間權重矩陣。

3 空間權重矩陣的構建

3.1 命令說明

生成距離空間權重矩陣的命令語法為

spwmatrix gecon varlist [if] [in], ///

wname(wght_name) [wtype(inv) cart r(#) ///

dband(numlist) alpha(#) knn(#) ///

econvar(varname1) beta(#) Other_options]

主要選項的含義如下:

  • wname(wght_name) 表示要生成的空間權重矩陣的名稱

  • wtype(bin | inv | econ | invecon | socnet | socecon) 分別代表二進制,距離衰減,經濟距離,逆經濟距離,社會網絡或社會經濟空間權重

  • dta ?選擇該選項以從 .dta 文件導入空間權重

  • text 選擇該選項以從逗號或制表符分隔的文本文件導入空間權重

  • swm(idvar_name) 導入 ArcGIS 中生成的空間權重

  • knn(#) 請求最近鄰空間權重

  • econvar(varname1) 可用此選項構建經濟或逆經濟距離空間權重

  • beta(#) 指定指數函數的系數 β; 默認測試版 (1)

  • cart 表示緯度和經度采用笛卡爾坐標,這是默認選項 (一般我們也使用的是這個);如果采用球面坐標則只能選擇 r(#),此時不能同時選擇 cart,并且需要指定地球半徑距離(英里),一般默認填寫 r(3958.761);

  • dband(numlist) 表示最大的權重矩陣邊界,其中的 numlist 表示確定邊界的變量,一般是各省份代碼的最大值;

  • alpha(#) 表示參數限制范圍,默認為 alpha(1) ;

3.2 反距離空間權重矩陣

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 的權重矩陣

spmat import spatialweight_province using spatialdata_province.txt,replace \\導入 spatialweight_province 權重矩陣

spmat save spatialweight_province using spatialweight_pro.spmat,replace //將生成的 spmat 權重文件存儲為spatialweight_pro

spmat use spatialweight_pro using spatialweight_pro.spmat,replace //打開 spmat 權重文件

matrix list spatialweight_pro //查看 spatialweight_pro 權重矩陣

這樣,反距離空間權重矩陣就生成了,由于矩陣展開太大,囿于篇幅限制這里不做展示。

3.3 經濟距離空間權重矩陣

經濟距離矩陣的計算公式為

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(經濟反距離矩陣)因此需要聲明相應的經濟變量

spmat import spatialweight_province using spatialdata_province.txt,replace //生成以spatialweight_province 為名稱的 spmat 權重文件

其他導入、存儲和查看方法同上,不再贅述。

3.4 地理相鄰空間權重矩陣

構建地理相鄰空間權重矩陣時,之前計算的含有地理坐標的 spatialdata_province.dta 文件將不再適用,需要將我們編輯好的 .shp 文件導入 Geoda 軟件,再導出 .gal 文件,再使用 spwmatrix 命令進行編譯即可使用。導入過程非常簡單,故在此略過。

use spatialdata_province.dta,clear

spwmatrix import using C:\連享會推文\空間權重矩陣的構建\空間權重矩陣底圖\spatialdata_province.gal,wname(wcontig) xport(spatialdata_province, dat) \\.gal 只能導出 .dat (不是 .dta,.dat 是 R 語言中一種通用的文件格式)格式的文件

spmat import spatialweight_province using spatialdata_province.dat,replace

其他導入、存儲和查看方法同上。

3.5 廣義的 “相鄰” 空間權重矩陣

這里我們采用文章開頭提到過的二者是否有相同方言,我們采用徐現祥老師公布的方言數據,將方言賦值(因為 spmatrix 命令無法識別字符型變量),官話賦值為1,吳語賦值為2,以此類推。同屬于一個方言區的省份我們賦值為1,不同的我們賦值為0.

use fangyan.dta, clear

spwmatrix socio fangyan_id, wname(fangyan) wtype(socnet) idvar(provinceid) xport(spatialdata_province,txt) \\fangyan_id代表我們的方言代理啞變量

其他導入、存儲和查看方法同上。

4. 結語

  • 在完成了權重矩陣的構建后,就可以用它進行空間計量回歸了,具體的操作可以參考我們的推文「Stata: 空間面板數據模型及Stata實現」 。

  • 另外需要注意的是 ArcViewArcGIS軟件MATLAB 軟件也可以進行空間權重矩陣的構建,我們也看到了甚至一些關鍵步驟也必須經過這些個軟件的操作(也有其他軟件,在此不一一列舉)。對這方面有興趣的同學可以選擇性地學習一下。其中 ArcView 相對更加輕量,不像后兩種軟件動輒 10G 大小。

  • 目前 Stata 15.x 版本中發布的 xsmle 等命令可以也支持多個空間權重矩陣的回歸。

參考文獻

  • Jeanty, P.W., 2010. spwmatrix: Stata module to generate, import, and export spatial weights. Available from.

  • 相關推文

  • 游萬海,連玉君. Stata: 外部命令的搜索、安裝與使用.

  • 游萬海,連玉君. Stata: Stata: 空間面板數據模型及Stata實現.

  • Stata:空間計量之用 spmap 繪制地圖

  • Stata: 空間計量溢出效應的動態GIF演示

  • Stata:空間計量之 SP 系列命令

  • 往期精彩推文集錦

    • Stata連享會推文集錦

    • 連享會推文:Stata資源匯總

    • 連享會推文:數據處理與程序

    • 連享會推文:回歸分析-模型設定-內生性

    • 連享會推文:時間序列+面板數據

    • 連享會推文:繪圖

    關于我們

    • Stata連享會?由中山大學連玉君老師團隊創辦,定期分享實證分析經驗。

    • 公眾號推文同步發布于 CSDN 、簡書?和?知乎Stata專欄。可在百度中搜索關鍵詞 「Stata連享會」查看往期推文。

    • 歡迎賜稿:?歡迎賜稿。錄用稿件達?三篇?以上,即可?免費?獲得一期 Stata 現場培訓資格。

    • E-mail:?StataChina@163.com

    • 計量專題:因為專注,所以專業

    • 往期精彩推文:一網打盡

    與50位技術專家面對面20年技術見證,附贈技術全景圖

    總結

    以上是生活随笔為你收集整理的stata 导出 相关系数表_Stata: 空间权重矩阵的构建的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。