stata经济距离矩阵怎么做
时间: 2023-09-12 15:10:20 浏览: 263
长三角空间权重矩阵,01矩阵 地理反距离矩阵 经济距离矩阵 经济地理嵌套矩阵,四种矩阵都有哦,资料都是本人制作,还有分地区矩阵
5星 · 资源好评率100%
Stata中可以使用`geodist`命令计算经济距离矩阵。其语法如下:
```
geodist [options] lat1 lon1 lat2 lon2 [unit(mile|km)]
```
其中,`lat1`和`lon1`是第一个地点的纬度和经度,`lat2`和`lon2`是第二个地点的纬度和经度。`unit`参数指定距离的单位,取值为`mile`或`km`。如果不指定该参数,则默认为英里。`geodist`命令会计算两个地点之间的经济距离,并将结果保存在新的变量中。
在计算经济距离矩阵时,需要首先准备好一张包含所有地点经纬度信息的数据集。假设这个数据集的名称为`locations`,其中包含了每个地点的经度和纬度信息。则可以按照以下步骤计算经济距离矩阵:
1. 生成一个空的数据集,存储经济距离矩阵。假设矩阵的名称为`distance_matrix`,其中包含了所有地点之间的经济距离信息。
```
clear
set obs `=_N(locations)*(_N(locations)-1)/2'
gen from = .
gen to = .
gen distance = .
reshape long from to distance, i(id) j(id)
drop if from >= to
```
2. 通过两层循环,计算每对地点之间的经济距离。
```
quietly {
local obs = 1
forvalues i = 1/`=_N(locations)' {
forvalues j = `i'+1/`=_N(locations)' {
geodist lat1 lon1 `locations'[`i'].lat `locations'[`i'].lon km
scalar distance = r(haversine)
replace from = `i' in `obs'
replace to = `j' in `obs'
replace distance = distance in `obs'
local obs = `obs' + 1
}
}
}
```
这里用到了`geodist`命令,计算两个地点之间的经济距离,并将结果保存在`distance`变量中。同时,将这两个地点的编号保存在`from`和`to`变量中。由于矩阵是对称的,因此只需要计算上三角部分(`from < to`)的距离。
3. 将结果存储在`distance_matrix`数据集中。
```
merge m:1 from to using distance_matrix
```
这里使用`merge`命令将新计算的距离信息与`distance_matrix`数据集合并。注意,这里使用的是多对一合并(`m:1`),因为`from`和`to`变量共同组成了唯一的一对地点。
阅读全文