楼主: jianhui80
4365 10

[区域经济学] R构建空间距离权重的说明,抛砖引玉 [推广有奖]

已卖:437份资源

学科带头人

4%

还不是VIP/贵宾

-

威望
1
论坛币
4428 个
通用积分
61.8219
学术水平
89 点
热心指数
97 点
信用等级
67 点
经验
1609 点
帖子
715
精华
1
在线时间
1963 小时
注册时间
2011-7-21
最后登录
2025-5-15

楼主
jianhui80 学生认证  发表于 2015-8-26 16:24:15 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在做空间计量的时候,经常碰到如何构建距离权重的问题,那么spdep包是如何实现的,跟你想的是不是一样呢,那么我试着根据我的理解展示一下,欢迎拍砖指正。
  1. > ##加载软件包
  2. > library(maptools)
  3. > library(spdep)
  4. > ##读取shp文件和权重文件(.gal)
  5. > columbus <-readShapePoly(system.file("etc/shapes/columbus.shp",package="spdep")[1])
  6. > col.gal.nb <- read.gal(system.file("etc/weights/columbus.gal",package="spdep")[1])
  7. > summary(col.gal.nb)
  8. Neighbour list object:
  9. Number of regions: 49
  10. Number of nonzero links: 230
  11. Percentage nonzero weights: 9.579342
  12. Average number of links: 4.693878
  13. Link number distribution:

  14. 2  3  4  5  6  7  8  9 10
  15. 7  7 13  4  9  6  1  1  1
  16. 7 least connected regions:
  17. 1 6 31 39 42 46 47 with 2 links
  18. 1 most connected region:
  19. 20 with 10 links
  20. > ##生成点对应的横纵坐标
  21. > coords <- coordinates(columbus)
  22. > ##nbdists计算的是两点间的欧式距离。
  23. > dlist <- nbdists(col.gal.nb, coords)
  24. > plot(col.gal.nb,coords)
  25. > text(coords,labels=attr(col.gal.nb,"region.id"),pos=4)
  26. > ##最后给出邻接关系中,两点距离的倒数
  27. > dlist1 <- lapply(dlist, function(x) 1/x)
复制代码
QQ截图20150826155842.jpg
   值得说明的是:1、nbdists命令实际算的仅是邻居的距离,最后也不是矩阵的形式。
                2、需要学会编写简单的函数和循环条件语句
     
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:抛砖引玉 distribution percentage connected neighbour 空间

区域经济学是经济学中还未开放的花骨朵。

沙发
Nelsh--Deng 发表于 2015-10-16 19:31:30
看看再说

藤椅
Nelsh--Deng 发表于 2015-10-16 19:39:06
怎么你前面两个包安装 不了呢

板凳
jianhui80 学生认证  发表于 2015-10-16 23:13:08
Nelsh--Deng 发表于 2015-10-16 19:39
怎么你前面两个包安装 不了呢
install.packages(c("maptools","spdep")

报纸
Nelsh--Deng 发表于 2015-10-17 09:17:33
jianhui80 发表于 2015-10-16 23:13
install.packages(c("maptools","spdep")
你好,你上面的程序都是对的,我刚刚已经演示了,请问你会做我国各个省市之间的空间距离倒数 的空间权重矩阵吗?希望如果你知道,可以教我一下,我现在有点急用,谢谢了

地板
Nelsh--Deng 发表于 2015-10-17 09:19:47
jianhui80 发表于 2015-10-16 23:13
install.packages(c("maptools","spdep")
你好,你上面的程序都是对的,我刚刚已经演示了,请问你会做我国各个省市之间的空间距离倒数的空间权重矩阵吗?希望如果你知道,可以教我一下,我现在有点急用,谢谢了

7
Nelsh--Deng 发表于 2015-10-17 09:34:55
能不能加一下你QQ ,谢谢了

8
langdao1688 发表于 2016-3-31 20:03:13
加上一条,通过nb2listw(col.gal.nb, glist=dlist1)转换,这样才能运用到空间计量模型中

9
edsioncjlu 发表于 2017-2-19 08:42:38
求问大神,R可以允许我自己用excel写空间权重矩阵吗?

是不是必须要像geoda一样,必须有个shp文件、然后软件自己做的空间权重矩阵才能使用?

其实用excel自己算空间矩阵,更灵活,可是不知如何导入R,在使用moran.test时就遇到了问题,提示
Error: unexpected input in "moran.test(morandata,nb2listw?

原程序如下:
data<-read.csv("F:/neizidiqu.csv",header=F)
juzhen<-read.csv("F:/linjie.csv",header=F)
morandata<-data[,1]
juzhenone<-as.matrix(juzhen)
moran.test(morandata,nb2listw(juzhenone))

10
jianhui80 学生认证  发表于 2017-2-19 20:51:50
edsioncjlu 发表于 2017-2-19 08:42
求问大神,R可以允许我自己用excel写空间权重矩阵吗?

是不是必须要像geoda一样,必须有个shp文件、然后 ...
nb listw matrix三者可以相互转换

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-25 05:14