本文介绍基于
R
语言中的
GD
包,依据
栅格影像
数据,实现自变量
最优离散化方法
选取与执行,并进行
地理探测器

Geodetector
)操作的方法。

首先,在
R
语言中进行
地理探测器
操作,可通过
geodetector
包、
GD
包等
2
个包实现。其中,
geodetector
包是
地理探测器模型
的原作者团队开发的,其需要保证输入的
自变量数据
已经全部为
类别数据
;其具体操作方法大家可以参考
地理探测器R语言实现:geodetector
。而
GD
包则是另一位学者开发的,其可自动实现
自变量数据

最优离散化方法
选取与执行;本文介绍的就是基于
GD
包实现
地理探测器
的具体操作。此外,如果希望基于
Excel
实现
地理探测器
,大家可以参考
地理探测器Geodetector下载、使用、结果分析方法

1 包的安装与导入

首先,我们可以先到
GD
包在
R
语言中的
官方网站
,大致了解一下该包的简要介绍、开发团队等基本信息。

随后,我们开始
GD
包的下载与安装。输入如下所示的代码,即可开始包的下载与安装过程。

install.packages("GD")

输入代码后,按下
回车
键,运行代码;如下图所示。在安装
GD
包时,会自动将其所需依赖的其他包(如果在此之前没有配置过)都一并配置好,非常方便。

image

接下来,输入如下的代码,将
GD
包导入。

library("GD")

输入代码后,按下
回车
键,运行代码;如下图所示。

2 数据读取与预处理

接下来,我们需要读取栅格图像数据,并将其转为
GD
包可以识别的
数据框

Data Frames
)格式。

其中,读取栅格数据的方法,大家参考
基于R语言的raster包读取遥感影像
即可;关于数据格式的转换,大家参考
地理探测器R语言实现:geodetector
即可。这一部分的内容本文就不再赘述。

3 地理探测器执行

接下来,我们就可以开始地理探测器的具体分析;强烈建议大家基于
GD
包中的
gdm()
函数,实现一步到位的地理探测器分析操作。

首先,如果大家输入数据中的
自变量
数据具有
连续变量
,需要将其转换为
类别变量

gdm()
函数可以实现
连续变量

离散化方式寻优

自动执行
。其中,我们可以选择的
离散化方式
包括
相等间隔法

自然间断点法

分位数分类法

几何间隔法

标准差法

5
种不同的方法,分别对应以下第一句代码中的
"equal"

"natural"

"quantile"

"geometric"

"sd"

5
个选项。此外,我们还可以依据数据的特征,对自变量离散化的类别数量加以限定,具体代码如下所示。

discmethod <- c("equal", "natural", "quantile", "geometric", "sd")
discitv <- c(4:10)

其中,上述第一句代码表示,我们后续将从
相等间隔法

自然间断点法

分位数分类法

几何间隔法

标准差法

5
种不同的方法中,找到
每一个连续变量
对应的
最优离散化方法
;第二句代码则表示,在后续寻找最优离散化方法的同时,还需要对每一个变量的
分类数量
加以寻优——
c(4:10)
就表示我们分别将
每一个连续变量
分为
4
类、
5
类、
6
类,以此类推,一直到
10
类,从其中找到最优结果对应的
类别数量

接下来,我们即可调用
gdm()
函数,执行
地理探测器
分析的具体操作;其中,
my_gd
为保存地理探测器结果的变量;函数的第一个参数,表示因变量与自变量的关系,
~
前的变量即为
因变量

~
后的变量即为
自变量
,多个
自变量
之间通过
+
相连接;第二个参数表示
自变量
中的
连续变量
,程序将自动对这些
连续变量
加以
离散化方法寻优与执行
;第三个参数表示存储自变量与因变量数据的
数据框

Data Frames
)格式的变量;最后两个变量,即为前面我们选择的
离散化方法

类别数量

my_gd <- gdm(A_LCCS0 ~ C_SlopeS0 + D_AspectS0 + DEM_Reclass + F_LCS0,
                        continuous_variable = c("C_SlopeS0", "D_AspectS0"),
                        data = tif_frame,
                        discmethod = discmethod,
                        discitv = discitv)

这里需要注意,如果大家不是通过脚本运行的
R
语言,而是每次写一句代码然后按下
回车
键运行一下,那么上述代码中的换行就需要通过同时按下
Shift
键与
回车
键实现。输入上述代码后,如下图所示。

随后,即可运行代码。稍等片刻(具体时长与数据量有关),即可得到地理探测器的结果
my_gd
。这一变量的具体结构、内容如下图所示。

我们可以输入如下的代码,将变量
my_gd
打印出来。

my_gd

所得结果如下图所示。

可以看到,
my_gd
变量包含了
每一个连续变量
在离散化后,对应的最优
离散化方法

类别数量
,以及
地理探测器
的各个分析结果。具体结果的含义与研读方法,大家参考
地理探测器Geodetector下载、使用、结果分析方法
,以及
地理探测器R语言实现:geodetector
这两篇文章即可,这里就不再赘述。

此外,我们可以通过如下的代码,将上述结果加以可视化。

plot(my_gd)

运行上述代码,结果如下图所示。

此时,在
RStudio
软件的右下方“
Plots
”中,即可看到可视化结果,如下图所示。其中,我们可以通过下图中红色方框内的箭头,实现不同图片的切换显示。

上述结果包含
7
张图像,其分别与
上上图
中的
7
项输出内容对应——第一张图是
最优离散化方法
的选取过程,第二张图则是所选出的最优离散化方法对应的
分类情况
;后
5
张图就是地理探测器的分析结果图,即上上图中最后
5

plot
分别对应的结果。

至此,我们就完成了基于
R
语言中的
GD
包,依据多张
栅格图像
数据,实现类别变量的自动离散化,并进行
地理探测器

Geodetector
)操作的完整流程。

标签: none

添加新评论