地理探测器GeoDetector

今天看到一篇文章使用的方法名称是地理探测器,介绍说比常用的回归方法要有优势,查询了一下方法也容易理解,而且确有其优势,关键是作者专门做了一个page介绍他的软件和方法,中英文的介绍文章也都有,真是十分方便了,做空间异质性分析的同学不妨一试,而且操作起来真是太简单了,哈哈哈。

1.地理探测器介绍

地理探测器主要包括4种,分别是Factor_detector、Risk_detector、Ecological_detector、Interaction_detector。

1.1 Factor_detector

首先,根据自变量X进行分层,自变量需要是离散的,如果是连续的需要使用聚类等方式进行离散化。然后根据下述公式计算q值。其实公式反应的就是聚在一起的那些点或区域,如果方差和总方差相比很小的话,就说明有明显的空间集聚现象,也就是空间异质性或者说文章中的叫法空间分异,计算完q值还可以对q值进行统计推断,判断其显不显著,当然这就不展开介绍了,具体的可以看王劲峰老师的论文《地理探测器_原理与展望》,中文的也容易看懂。
在这里插入图片描述
这个探测器在软件中的输出结果如下图所示,其中type,region和level就是三个自变量或者叫factor,q值就是因变量Y分别对这三个自变量的q值了。
在这里插入图片描述

1.2 Risk_detector

Risk_detector其实就是判断两个子区域间的属性均值是否有显著的差别,用t统计量来检验,这个容易理解,不多解释了。软件结果如下,第一张表是各个type类别的均值,第二张表就是对应factor的两个类别间有没有显著性差异。

在这里插入图片描述

1.3 Ecological_detector

生态检测用于比较两因子 X1和 X2对属性 Y的空间分布的影响是否有显著的差异,以F统计量来衡量,软件运行结果如下图所示,If Y(X1) (risk factor names in row) was significantly bigger than Y(X2) (risk factor names in column), the associated value is “Y”, while “N” expresses the opposite meaning.首先,表格中没有Y或N的话就是没有显著性差异了,也就是X对Y的影响一样,Y的话就是比如region对Y的影响要大于type对Y的影响。
在这里插入图片描述

1.4 Interaction_detector

交互探测器是用来识别不同风险因子 Xs之间的交互作用,即评估因子 X1和 X2共同作用时是否会增加或减弱对因变量 Y 的解释力,或这些因子对 Y的影响是相互独立的。思路也很简单,就是将X1和X2对应的地块取交集,分别看单独情况和取交集情况的q值如何。可以分成下面这几种情况。
在这里插入图片描述
软件输出结果如下所示:
在这里插入图片描述
以上就是地理探测器全部内容了,很有意思。

参考文献

[1]王劲峰, & 徐成东. (2017). 地理探测器:原理与展望. 地理学报, 72(001), 116-134.
[2]http://www.geodetector.cn/#_How_to_Use
[3]Feng Gao, Shaoying Li*, Zhangzhi Tan, Zhifeng Wu, Xiaoming Zhang, Guanping Huang, Ziwei Huang. Understanding the modifiable areal unit problem in dockless bike sharing usage and exploring the interactive effects of built environment factors. International Journal of Geographical Information Science,2021,
https://doi.org/10.1080/13658816.2020.1863410
[4]基于共享单车骑行GPS记录数据的研究成果丨城市数据派

  • 16
    点赞
  • 151
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
detector是探测器,它把探测任务交给具体的探测实现类的实例完成。 cpDetector内置了一些常用的探测实现类,这些探测实现类的实例可以通过add方法 加进来,如ParsingDetector、 JChardetFacade、ASCIIDetector、UnicodeDetector。 detector按照“谁最先返回非空的探测结果,就以该结果为准”的原则返回探测到的 字符集编码。 cpdetector.io.CodepageDetectorProxy detector = cpdetector.io.CodepageDetectorProxy.getInstance(); /*------------------------------------------------------------------------- ParsingDetector可用于检查HTML、XML等文件或字符流的编码,构造方法中的参数用于 指示是否显示探测过程的详细信息,为false不显示。 ---------------------------------------------------------------------------*/ detector.add(new cpdetector.io.ParsingDetector(false)); /*-------------------------------------------------------------------------- JChardetFacade封装了由Mozilla组织提供的JChardet,它可以完成大多数文件的编码 测定。所以,一般有了这个探测器就可满足大多数项目的要求,如果你还不放心,可以 再多加几个探测器,比如下面的ASCIIDetector、UnicodeDetector等。 ---------------------------------------------------------------------------*/ detector.add(cpdetector.io.JChardetFacade.getInstance()); //ASCIIDetector用于ASCII编码测定 detector.add(cpdetector.io.ASCIIDetector.getInstance()); //UnicodeDetector用于Unicode家族编码的测定 detector.add(cpdetector.io.UnicodeDetector.getInstance()); JAVA.nio.charset.Charset charset = null; File f=new File("待测的文本文件名"); try { charset = detector.detectCodepage(f.toURL()); } catch (Exception ex) {ex.printStackTrace();} if(charset!=null){ System.out.println(f.getName()+"编码是:"+charset.name()); }else System.out.println(f.getName()+"未知"); 上面代码中的detector不仅可以用于探测文件的编码,也可以探测任意输入的文本流的编码,方法是调用其重载形式: Java代码 charset=detector.detectCodepage(待测的文本输入流,测量该流所需的读入字节数);

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值