绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
【实用案例】R语言gdm函数实现地理探测器分析
2022-05-26 16:27:06

R语言实现地理探测器分析
碎碎念
查看官网例子
代码
碎碎念
近由于学习需要,接触了地理探测器。地理探测器有Excel版和R语言版,起初我是用Excel试着做,地理探测器分析都需要先将数据离散化,而不同的离散化方法又会产生不同的分析结果,到底哪个才优不得而知,一个个去调试也太麻烦了,而且Excel版不适合数据量大的情况下分析,会出现卡顿、闪退的情况(也许是我的电脑太垃圾),所以我就摸索了一下R语言实现地理探测器分析的方法。

查看官网例子
地理探测器有4个部分:factor detector、interaction detector、risk detector、ecological detector,官网上有对这四个探测器分别用代码实现的语句,这里不做介绍。
GD包还提供了一个一步到位的函数gdm,实现数据优离散化选择方案,不用自己一个调试了。

#查询gdm函数使用方法
help("gdm")
1
2
输入上述语句就弹出gdm的使用方法页面,有两种:(其实官方给的代码已经非常详细、好懂了)


根据提供的具体案例进行尝试,发现案例中使用的数据集,有一列这样类型的值。


在我自己后续的尝试中,发现如果不添加这一种类型的数据,就会报错:

> aging <- gdm(Y ~ ., continuous_variable = continuous_variable, data = data4, discmethod = discmethod, discitv = discitv)
Error in if (qv12 < min(qv1, qv2)) { :
需要TRUE/FALSE值的地方不可以用缺少值
1
2
3
所以我也加了一列类似的数据,后面就成功了。要根据自己数据的实际情况哦。我的是统计年鉴数据,所以我添加的那一列就是各省的分区,用字母表示。顺便将代码分享给大家

代码
#安装“GD”包
#Load GD package
install.packages("GD")
library(GD)
#读取文件
testdata <- read.csv("E:/geodetector/data.csv", header = TRUE, sep = ",")
#GD包里有提供五种监督离散化方法,这行代码对空间数据进行离散化处理
discmethod <- c("equal","natural","quantile","geometric","sd")
#空间数据离散化分成3~7类,当然可以自己根据实际情况修改
discitv <- c(3:7)
#定义连续变量
#因为我的testdata都是统计年鉴上的数据,所以都都需要进行空间数据离散化处理
continuous_variable <- colnames(testdata)[-c(1,17)]
#调用gdm函数
testgdm <- gdm(Y ~ ., continuous_variable = continuous_variable, data = testdata, discmethod = discmethod, discitv = discitv)
#显示分析结果
testgdm
#显示分析图表
plot(testgdm)
————————————————
版权声明:本文为CSDN博主「_超快的闪电」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_41608080/article/details/114048972

分享好友

分享这个小栈给你的朋友们,一起进步吧。

GDM
创建时间:2022-04-19 11:12:50
GDM
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 飘絮絮絮丶
    专家
戳我,来吐槽~