【空间计量经济学】中国31省省会地理距离矩阵

跑回归的时候发现网上的资源都要钱了,所以手搓了一份。

PS:不含港澳台。(主要是我跑数据的时候没用到)

预览:

省会地理距离矩阵

省会地理距离矩阵(取倒数)

省会地理距离矩阵(取平方倒数)

链接(蓝奏云):https://wwf.lanzout.com/idNFg0ezcsrc

密码:duht

代码虽然没什么技术含量但姑且贴一下:

import pandas as pd
import numpy as np
import math

loc = {'山东':[117.000923, 36.675807],
          '河北':[115.48333,38.03333],
          '吉林':[125.35000,43.88333],
          '黑龙江':[127.63333,47.75000],
          '辽宁':[123.38333,41.80000],
          '内蒙古':[111.670801, 41.818311],
          '新疆':[87.68333,43.76667],
          '甘肃':[103.73333,36.03333],
          '宁夏':[106.26667,37.46667],
          '山西':[112.53333,37.86667],
          '陕西':[108.95000,34.26667],
          '河南':[113.65000,34.76667],
          '安徽':[117.283042, 31.86119],
          '江苏':[119.78333,32.05000],
          '浙江':[120.20000,30.26667],
          '福建':[118.30000,26.08333],
          '广东':[113.23333,23.16667],
          '江西':[115.90000,28.68333],
          '海南':[110.35000,20.01667],
          '广西':[108.320004, 22.82402],
          '贵州':[106.71667,26.56667],
          '湖南':[113.00000,28.21667],
          '湖北':[114.298572, 30.584355],
          '四川':[104.06667,30.66667],
          '云南':[102.73333,25.05000],
          '西藏':[91.00000,30.60000],
          '青海':[96.75000,36.56667],
          '天津':[117.20000,39.13333],
          '上海':[121.55333,31.20000],
          '重庆':[106.45000, 29.56667],
          '北京': [116.41667,39.91667],
          '台湾': [121.30, 25.03],
          '香港': [114.10000,22.20000],
          '澳门': [113.50000,22.20000],
}    #拿到的坐标原始数据就长这样,换成读表格也差不多
df = pd.read_excel("金融指数.xlsx",sheet_name="2020")    #按需要顺序排列省份名称
lis = df.iloc[0:,0:1].values
mat1 = np.zeros((31,31))    #存放地理距离
mat2 = np.zeros((31,31))    #存放地理距离倒数

for i in range(31):
    for j in range(31):
        if i == j:
            continue
        else:
            ja = loc[lis[i][0]][0] / 180 * math.pi
            jb = loc[lis[j][0]][0] / 180 * math.pi
            wa = loc[lis[i][0]][1] / 180 * math.pi
            wb = loc[lis[j][0]][1] / 180 * math.pi
            mat1[i][j] = 6371 * math.acos(math.cos(wa)*math.cos(wb)*math.cos(jb-ja)+math.sin(wa)*math.sin(wb))
            mat2[i][j] = 1 / mat1[i][j]

mat3 = pd.DataFrame(mat1)
mat4 = pd.DataFrame(mat2)
writer = pd.ExcelWriter("矩阵.xlsx")
tar3.to_excel(writer, 'geom', float_format='%.6f')
tar4.to_excel(writer, 'igeom', float_format='%.6f')
writer.save()
writer.close()

### 回答1: Stata是一种非常流行的统计分析软件,可以用于处理各种数据类型,包括面板数据。面板数据通常包含多个实体(如个人、公司、份等)和多个时间点(如年、季度、月份等)的观测数据。 在Stata中,处理面板数据需要使用到面板数据分析的相关命令和函数。在进行面板数据分析时,有时需要考虑实体之间的异质性和相关性。为了解决这个问题,可以引入级权重矩阵来进行调整。 级权重矩阵是一种用于调整面板数据的工具,用于反映不同份在总体中的相对重要性和影响力。它可以对面板数据进行加权处理,使得不同份的观测数据在分析中所占的权重不同。 要使用级权重矩阵进行面板数据分析,可以先将级权重矩阵导入到Stata中,并与原始数据进行合并。合并后,可以使用相应的面板数据命令和函数进行分析,加入相应的权重参数,以便正确地处理面板数据的异质性和相关性。 总之,Stata可以通过引入级权重矩阵,对面板数据进行加权调整,以更准确地反映不同份在面板数据分析中的相对重要性和影响力。这样可以更准确地分析面板数据,并针对不同份的特点得出更有实际意义的结论。 ### 回答2: 在Stata中,对于面板数据的级权重矩阵的构建过程可分为以下几个步骤。 首先,我们需要导入面板数据集,并确保数据集按照份和时间进行排序。可以使用命令“sort province time”来实现。 然后,我们需要创建一个新的变量来存储级权重。可以使用命令“gen prov_weight = 1”来为每个观测点设置初始权重为1。 接下来,我们可以使用系统命令“xtset province time”来指定数据集的面板结构。 然后,我们需要使用命令“xtreg dependent_var independent_var, fe”来进行面板数据的固定效应模型估计。在这个过程中,Stata会自动应用面板数据集的级固定效应,即控制级间的固定差异。 最后,我们可以使用命令“predict prov_fitted”来生成模型拟合值,并使用命令“replace prov_weight = dependent_var / prov_fitted”来更新级权重矩阵。这样,我们可以根据模型拟合值与实际观测值之间的差异来调整级权重。 需要注意的是,以上步骤中的命令仅仅作为一个示例,具体的命令可能因研究问题和数据集的特点而有所不同。因此,在使用Stata构建面板数据的级权重矩阵时,需要根据实际情况进行调整和修改。
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值