R语言GD包基于栅格图像实现地理探测器与连续参数的自动离散化

简介: R语言GD包基于栅格图像实现地理探测器与连续参数的自动离散化

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

  首先,在R语言中进行地理探测器操作,可通过geodetector包、GD包等2个包实现。其中,geodetector包是地理探测器模型的原作者团队开发的,其需要保证输入的自变量数据已经全部为类别数据;其具体操作方法大家可以参考R语言geodetector包基于栅格图像实现地理探测器操作https://blog.csdn.net/zhebushibiaoshifu/article/details/128484786)。而GD包则是另一位学者开发的,其可自动实现自变量数据最优离散化方法选取与执行;本文介绍的就是基于GD包实现地理探测器的具体操作。此外,如果希望基于Excel实现地理探测器,大家可以参考Geodetector软件下载、地理探测器的应用实践与结果解读https://blog.csdn.net/zhebushibiaoshifu/article/details/124526189)。

1 包的安装与导入

  首先,我们可以先到GD包在R语言中的官方网站https://cran.r-project.org/web/packages/GD/index.html),大致了解一下该包的简要介绍、开发团队等基本信息。

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

install.packages("GD")

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

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

library("GD")

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

2 数据读取与预处理

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

  其中,读取栅格数据的方法,大家参考R语言raster包批量读取单一或大量栅格图像https://blog.csdn.net/zhebushibiaoshifu/article/details/128485386)即可;关于数据格式的转换,大家参考R语言geodetector包基于栅格图像实现地理探测器操作https://blog.csdn.net/zhebushibiaoshifu/article/details/128484786)即可。这一部分的内容本文就不再赘述。

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软件下载、地理探测器的应用实践与结果解读https://blog.csdn.net/zhebushibiaoshifu/article/details/124526189)、R语言geodetector包基于栅格图像实现地理探测器操作https://blog.csdn.net/zhebushibiaoshifu/article/details/128484786)这两篇文章即可,这里就不再赘述。

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

plot(my_gd)

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

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

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

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

欢迎关注:疯狂学习GIS

相关文章
|
5月前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
93 3
|
7月前
|
存储 数据采集 数据处理
R语言数据变换:使用tidyr包进行高效数据整形的探索
【8月更文挑战第29天】`tidyr`包为R语言的数据整形提供了强大的工具。通过`pivot_longer()`、`pivot_wider()`、`separate()`和`unite()`等函数,我们可以轻松地将数据从一种格式转换为另一种格式,以满足不同的分析需求。掌握这些函数的使用,将大大提高我们处理和分析数据的效率。
【R语言实战】——fGARCH包在金融时序上的模拟应用
【R语言实战】——fGARCH包在金融时序上的模拟应用
|
10月前
|
存储 算法 Windows
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例(下)
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例
|
8天前
|
数据采集 机器学习/深度学习 数据可视化
探索大数据分析的无限可能:R语言的应用与实践
探索大数据分析的无限可能:R语言的应用与实践
49 9
|
6月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
6月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
7月前
|
机器学习/深度学习 数据采集 数据可视化
R语言在数据科学中的应用实例:探索与预测分析
【8月更文挑战第31天】通过上述实例,我们展示了R语言在数据科学中的强大应用。从数据准备、探索、预处理到建模与预测,R语言提供了完整的解决方案和丰富的工具集。当然,数据科学远不止于此,随着技术的不断发展和业务需求的不断变化,我们需要不断学习和探索新的方法和工具,以更好地应对挑战,挖掘数据的潜在价值。 未来,随着大数据和人工智能技术的普及,R语言在数据科学领域的应用将更加广泛和深入。我们期待看到更多创新的应用实例,为各行各业的发展注入新的动力。
|
7月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
7月前
|
资源调度 数据挖掘
R语言回归分析:线性回归模型的构建与评估
【8月更文挑战第31天】线性回归模型是统计分析中一种重要且实用的工具,能够帮助我们理解和预测自变量与因变量之间的线性关系。在R语言中,我们可以轻松地构建和评估线性回归模型,从而对数据背后的关系进行深入的探索和分析。