【实用案例】R语言gdm函数实现地理探测器分析
R語(yǔ)言實(shí)現(xiàn)地理探測(cè)器分析
- 碎碎念
- 查看官網(wǎng)例子
- 代碼
碎碎念
最近由于學(xué)習(xí)需要,接觸了地理探測(cè)器。地理探測(cè)器有Excel版和R語(yǔ)言版,起初我是用Excel試著做,地理探測(cè)器分析都需要先將數(shù)據(jù)離散化,而不同的離散化方法又會(huì)產(chǎn)生不同的分析結(jié)果,到底哪個(gè)才最優(yōu)不得而知,一個(gè)個(gè)去調(diào)試也太麻煩了,而且Excel版不適合數(shù)據(jù)量大的情況下分析,會(huì)出現(xiàn)卡頓、閃退的情況(也許是我的電腦太垃圾),所以我就摸索了一下R語(yǔ)言實(shí)現(xiàn)地理探測(cè)器分析的方法。
查看官網(wǎng)例子
地理探測(cè)器有4個(gè)部分:factor detector、interaction detector、risk detector、ecological detector,官網(wǎng)上有對(duì)這四個(gè)探測(cè)器分別用代碼實(shí)現(xiàn)的語(yǔ)句,這里不做介紹。
GD包還提供了一個(gè)一步到位的函數(shù)gdm,實(shí)現(xiàn)數(shù)據(jù)最優(yōu)離散化選擇方案,不用自己一個(gè)調(diào)試了。
輸入上述語(yǔ)句就彈出gdm的使用方法頁(yè)面,有兩種:(其實(shí)官方給的代碼已經(jīng)非常詳細(xì)、好懂了)
根據(jù)提供的具體案例進(jìn)行嘗試,發(fā)現(xiàn)案例中使用的數(shù)據(jù)集,有一列這樣類型的值。
在我自己后續(xù)的嘗試中,發(fā)現(xiàn)如果不添加這一種類型的數(shù)據(jù),就會(huì)報(bào)錯(cuò):
> aging <- gdm(Y ~ ., continuous_variable = continuous_variable, data = data4, discmethod = discmethod, discitv = discitv) Error in if (qv12 < min(qv1, qv2)) { : 需要TRUE/FALSE值的地方不可以用缺少值所以我也加了一列類似的數(shù)據(jù),后面就成功了。要根據(jù)自己數(shù)據(jù)的實(shí)際情況哦。我的是統(tǒng)計(jì)年鑒數(shù)據(jù),所以我添加的那一列就是各省的分區(qū),用字母表示。順便將代碼分享給大家
代碼
#安裝“GD”包 #Load GD package install.packages("GD") library(GD) #讀取文件 testdata <- read.csv("E:/geodetector/data.csv", header = TRUE, sep = ",") #GD包里有提供五種監(jiān)督離散化方法,這行代碼對(duì)空間數(shù)據(jù)進(jìn)行離散化處理 discmethod <- c("equal","natural","quantile","geometric","sd") #空間數(shù)據(jù)離散化分成3~7類,當(dāng)然可以自己根據(jù)實(shí)際情況修改 discitv <- c(3:7) #定義連續(xù)變量 #因?yàn)槲业膖estdata都是統(tǒng)計(jì)年鑒上的數(shù)據(jù),所以都都需要進(jìn)行空間數(shù)據(jù)離散化處理 continuous_variable <- colnames(testdata)[-c(1,17)] #調(diào)用gdm函數(shù) testgdm <- gdm(Y ~ ., continuous_variable = continuous_variable, data = testdata, discmethod = discmethod, discitv = discitv) #顯示分析結(jié)果 testgdm #顯示分析圖表 plot(testgdm)拜拜!
總結(jié)
以上是生活随笔為你收集整理的【实用案例】R语言gdm函数实现地理探测器分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 5 html 根据手机转动而转动_手机安
- 下一篇: 计算机工程与应用单像素成像,2011计算