【实用案例】R语言gdm函数实现地理探测器分析

R语言实现地理探测器分析

碎碎念

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

查看官网例子

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

#查询gdm函数使用方法
help("gdm")

输入上述语句就弹出gdm的使用方法页面,有两种:(其实官方给的代码已经非常详细、好懂了)
在这里插入图片描述
根据提供的具体案例进行尝试,发现案例中使用的数据集,有一列这样类型的值。
在这里插入图片描述

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

> aging <- gdm(Y ~ ., continuous_variable = continuous_variable, data = data4, discmethod = discmethod, discitv = discitv)
Error in if (qv12 < min(qv1, qv2)) { : 
  需要TRUE/FALSE值的地方不可以用缺少值

所以我也加了一列类似的数据,后面就成功了。要根据自己数据的实际情况哦。我的是统计年鉴数据,所以我添加的那一列就是各省的分区,用字母表示。顺便将代码分享给大家

代码

#安装“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)

拜拜!

  • 25
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 87
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 87
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值