前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ArcGIS与地理加权回归GWR【一】「建议收藏」

ArcGIS与地理加权回归GWR【一】「建议收藏」

作者头像
全栈程序员站长
发布于 2022-11-08 09:58:49
发布于 2022-11-08 09:58:49
1.3K0
举报

公众号原文

ArcGIS与地理加权回归GWR【一】

https://mp.weixin.qq.com/s/fMPYxO3G7ff2192ZQICN-A

开个新坑啊,写一写关于地理加权回归基础的东西(深了我也不会啊),希望也能用通俗的语言来记录一下我以前学习空间统计过程中的理解。

1. 传统线性回归

不管你有没有系统学习过,对于线性回归,相信多少都有那么点了解。回归分析实质上就是研究一个或多个自变量X对一个因变量Y的影响关系情况,如研究各地房价影响因素。X1-Xn是n个自变量,β0-βn是未知参数,可以使用最小二乘法进行估计,即β0-βn的最小二乘估计(那个β尖符号)。当自变量为1个时,是一元线性回归,自变量为2个及以上时,称为多元线性回归。

我也不会去深入巴拉一堆我也不专业的数学问题,地理加权回归正是在线性回归的基础上扩展而来,所谓青出于蓝而胜于蓝,那地理加权回归比传统的线性回归蓝在哪啊

一般线性回归都是全局的,由于空间自相关(地理学第一定律)和空间异质性(地理学第二定律)的存在,传统的回归模型不适用于处理地理空间数据。而GWR是在多元线性回归的基础上将数据的地理位置引入到回归系数之中。

2. 全局和局部

然后说明一下”全局回归“”局部回归“

线性回归可分为全局回归和局部回归,全局回归假定估计系数在全局内是平稳的,回归系数并不随着空间位置的改变而改变,如多元线性回归模型。好比经常说我们疫情防控整体稳中向好(WinWinWin);局部回归认为回归系数是局部光滑的,在全局内回归系数是不同的,有多个值的,好比稳中向好中也有个别地方爆发。如地理加权回归。简单的理解如下图,左边就是全局,右边就是局部。

外地想起四川便是标志性的熊猫与火锅,但在各地市眼里都很有特色

3. 地理篇

来看看地理加权回归中的“地理”,地理位置,没错,地理学第二定律登场:空间异质性,地理现象的空间变化以及变化的差异性,即不可控的空间变化规律。

单纯的举个例子,房价。在一个城市影响房价的因素是多样的,比如在A处,因为紧邻CBD房子卖的贵,在B处的老破小因为旁边有个好学校卖的也贵,在C因为依山傍水环境好所以房子卖的还贵,所以在A处,紧邻CBD这个因素对房价解释度就很强,环境或者学校在A处反而没太有什么关系。

(可能会有人想到对房价产生影响的某些社会经济因素在一个区域的影响力是一样的或者变化非常小可以忽略不计,而某些因素又是变化,这就属于混合地理加权回归模型了,在此请不要想太多)。

因此,在实际问题研究中我们经常发现回归参数在不同地理位置上往往表现为不同,也就是说回归参数随地理位置变化,这时如果仍然采用全局空间回归模型(全局假设β是不会变得),得到的回归参数估计将是回归参数在整个研究区域内的平均值,如上所说某一个因素在ABC等不同的地理位置对房价的影响是不同的,假如采用全局空间回归模型,便忽略了数据的空间位置属性,只反映平均意义下因变量与自变量的相关关系,而不能有效反映回归关系的空间非平稳性的特征。

如果两个变量之间的关系(可用回归系数表达)存在空间异质性,也就是在不同的地方有不同的回归系数,统计学将这种变量关系的空间异质性称之为空间非平稳性

所以地理加权回归应运而生,它考虑了空间关系的影响。

其中(ui,vi)为第i个采样点的坐标;βk(ui,vi)是第i个采样点上第k个回归参数,为空间地理位置函数,通过房价例子来看,加入地理位置函数可以反映房屋价格随地理位置的变化而变化的规律。

4. 加权篇

根据地理学第一定律,”所有事物之间都有关系,但是相近的事物关联更紧密“。

因为地理加权回归中的回归参数在每个数据采样点上都是不同的,所以不能直接利用参数回归方法估计其中的未知参数,我们需要对每个采样点都进行一个估计,有多少采样点就估计多少个β。100个点就估计100个β,β1-βn的估计便是加权最小二乘,这个权重便是W(u0, v0),为什么要考虑空间权重呢,它的作用就是衡量回归点要借用周围哪些样本点去进行估计,换句话说,空间权重决定了(如下图底部蓝色的圆圈)圈的大小。这个圈范围大了,那就变得与传统线性回归一样了,范围小了呢样本点太少就没有意义了。

传统的线性回归估计是没有上式中W(u0, v0)这个空间权重矩阵的,所以没有考虑到距离对于采样点之间的相互影响,也就是没有体现地理学第一定律。

图中红圈的两个点本来就很近,假如被划分到两个不同的局部区域中,这样的话他们两个之间的相互影响关系都没有被考虑进去。图片来源是基于地理加权回归算法的中国台风设计风速区划图文章

所以根据数据所处空间位置,以不同数据点和回归点的空间距离为基础,对各数据点赋予不同的权重,离得近得样点在计算时候占的权重更大,离得远的样点占的权重小而后建立局部区域的加权回归方程。

根据地理学第一定律,GWR模型计算权重的基本原则为“距离越近,赋予的权重值越高;反之,权重值越低”。然后权重的具体计算(就是上图中的锥形),是通过关于空间距离的单调减函数实现,称之为核函数。有全局(Global)函数,距离阈值(Box-Car)函数,指数(Exponential)函数,高斯(Gaussian)函数,双重平方(Bi-square)函数(一般都是这两种),三次立方(Tri-cube)函数。

5. 带宽篇

带宽与核函数紧密相关。带宽(就是上图中的那个θ)变大,锥形就比较平缓,权重衰减的就慢,带宽变小,锥形就比较陡峭,权重衰减的很快。如何确定带宽下次再说啦。

水平有限,有些过程没有表达很清楚,特别是加权,如有错误欢迎指正和补充。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/185078.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月7日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
圆周率两千万亿位_圆周率后3000万亿位
那么如果继续计算圆周率,到100位、1万位,其实已经不是实用价值,而是数学研究价值了。
全栈程序员站长
2022/09/30
5080
圆周率1千亿位_圆周率十亿位
3.141592653589793238462643383279502884197169399375105820974944 59230 781640628620899 86280 34825 34211 70679 82148 08651 32823 06647 09384 46095 50582 23172 53594 08128 48111 74502 84102 70193 85211 05559 64462 29489 54930 3819644288 10975 66593 34461 28475 64823 37867 83165 27120 19091 45648 56692 34603 48610 45432 66482 13393 60726 02491 4127372458 70066 06315 58817 48815 20920 96282 92540 91715 36436 78925 90360 01133 05305 48820 46652 13841 46951 94151 16094 33057 27036 57595 91953 09218 61173 81932 61179 31051 18548 07446 23799 62749 56735 18857 52724 89122 79381 83011 9491298336 73362 44065 66430 86021 39494 63952 24737 19070 21798 60943 70277 05392 17176 29317 67523 84674 81846 76694 0513200056 81271 45263 56082 77857 71342 75778 96091 73637 17872 14684 40901 22495 34301 46549 58537 10507 92279 68925 89235 42019 95611 21290 21960 86403 44181 59813 62977 47713 09960 51870 72113 49999 99837 29780 49951 05973 17328 16096 31859 50244 59455 34690 83026 42522 30825 33446 85035 26193 11881 71010 00313 78387 52886 58753 32083 81420 61717 76691 47303 59825 34904 28755 46873 11595 62863 88235 37875 93751 95778 18577 80532 17122 68066 13001 92787 66111 95909 21642 01989 38095 25720 10654 85863 27886 59361 53381 82796
全栈程序员站长
2022/09/30
4970
圆周率1千亿位_圆周率十亿位
脑洞 | 把圆周率π用钢琴弹出来,是种什么体验?
从未想过,数字与音乐结合,竟如此美妙 说起圆周率π,谁都不陌生,但你能记到小数点后面的多少位?3.1415926……然后呢? 1609年德国的鲁道夫·范·科伊伦(Ludolphvan Ceulen)几乎耗尽了一生的时间,算出了圆周率的35位精度值,以至于圆周率在德国被称为Ludolphine number。 1874年英国的威廉·山克斯(WilliamShanks)耗费了15年的光阴,在1874年算出了圆周率的小数点后707位,并将其刻在了墓碑上作为一生的荣誉。可惜,后人发现,他从第528位开始就算错了。
大数据文摘
2018/05/24
7500
圆周率π是怎么算出来的,用程序怎么算
下午在看一个算法的时候,突然看到了一个关于圆周率的问题,如果问你圆的周长怎么算,你肯定毫不犹豫是2πR,但是π是怎么算出来的呢?估计我们都没有想过,所以我们看很多算法的时候,其实只是给了我们一个公式,其实和不懂差不多不是很大。
jeanron100
2018/07/26
3.7K1
圆周率π是怎么算出来的,用程序怎么算
谷歌破世界纪录!圆周率计算到小数点后 31.4 万亿位
她叫 Emma Haruka Iwao,来自日本,她利用谷歌云计算资源,花了 121 天,成功将圆周率 π 计算到小数点后 31.4 万亿位,准确地说,是小数点后 31415926535897 位,刷新了世界纪录。
新智元
2019/05/08
2.6K0
谷歌破世界纪录!圆周率计算到小数点后 31.4 万亿位
python中如何输入派_用phython语言求圆周率
v11 = (v1 × (m1 - m2) + 2 × m2 × v2) ÷ (m1 + m2)
全栈程序员站长
2022/10/03
5240
比物理学不存在更恐怖的,是圆周率|Happy Pi Day
我仔细看了看,发现这份苹果派,是一个很完美的三角形切片,而它的俯视图,和下面这个式子的轮廓完美重合:
magic2728
2023/07/12
3070
比物理学不存在更恐怖的,是圆周率|Happy Pi Day
C语言递归求圆周率,python中的递归问题,求圆周率[通俗易懂]
return np.power(-1,n)*(1.0/(2*n+1))+getPi(n-1)
全栈程序员站长
2022/10/02
1.1K0
C语言递归求圆周率,python中的递归问题,求圆周率[通俗易懂]
62.8万亿位!一个源自高中生的算法「y-cruncher」让圆周率的精度再破世界纪录
目前的吉尼斯世界纪录是50万亿位,于2020年1月29日由搭载了Chudnovsky算法的y-cruncher程序,计算时间长达8个多月。
新智元
2021/08/25
8050
使用一对32核AMD EPYC CPU、1TB内存和510TB磁盘,将圆周率π计算到62.8万亿位:打破了世界纪录
前后历时108天零9个小时后,瑞士大学打破了世界纪录。 瑞士格劳宾登应用科学大学创造了计算圆周率π的世界纪录,它声称已计算到小数点后62.8万亿位。 该大学昨天宣布了这一记录,声称它比之前的尝试多出12.8万亿位数字,而且在计算这个非理性比率方面比之前的尝试快3.5倍。 该大学还公布了实现这一壮举的硬件的详细信息。 一对32核AMD EPYC 7542 CPU为该大学的计算装备提供动力。AMD表示,CPU大部分时间在2.9GHz下运行,可以提速至3.4GHz,搭载28MB三级缓存,每个CPU可轻松运行64
云头条
2022/03/18
4950
什么是CPU密集型、IO密集型?「建议收藏」
CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPU Loading 100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可以完成,而CPU还有许多运算要处理,CPU Loading很高。
全栈程序员站长
2022/09/30
1.3K0
java float四舍五入保留两位小数,java四舍五入float保留两位小数
摘要 腾兴网为您分享:java四舍五入float保留两位小数,远离手机,相机美颜,未来屋,微视等软件知识,以及流光,证券从业随身学,老a工具箱,polarr,特斯拉app,ae插件合集,福奈特,app名称,哈士奇表情,电视台直播源,思兔,门海,电子台账软件,3c电池,smartflashrecovery等软件it资讯,欢迎关注腾兴网。四舍五入我们大家都知道是什么但在java中四舍五入函数是什么如何实现float保留指定位数?具体我们来看小编整理的一些例子。 例子1 float f = 34.237323f; BigDecimal b = new BigDecimal(f); float f…
全栈程序员站长
2022/08/31
8640
java 四舍五入保留小数点后两位
源码解读: public BigDecimal setScale(int newScale, int roundingMode) //int newScale 为小数点后保留的位数, int roundingMode 为变量进行取舍的方式; BigDecimal.ROUND_HALF_UP 属性含义为为四舍五入
全栈程序员站长
2022/08/31
2.6K0
string类型保留两位小数_js保留4位小数
第一种,先把小数边整数:Math.floor(15.7784514000 * 100) / 100
全栈程序员站长
2022/09/23
9.1K0
bigdecimal保留2位小数_bigdecimal保留两位小数显示00
同理若是保留一位小数DecimalFormat df = new DecimalFormat(“0.0”);其他以此类推
全栈程序员站长
2022/11/09
4K0
bigdecimal保留2位小数_bigdecimal保留两位小数显示00
python把数字转换为字符串_python中将列表转化为字符串
要将数字转换为字符串的方法有三个;第一是使用str()函数直接转换,然后用加号来连接前后的字符串;二是使用字符串的格式说明符;三是使用字符串的格式化函数.format( )。
全栈程序员站长
2022/11/04
2.2K0
python把数字转换为字符串_python中将列表转化为字符串
C / C++ 保留两位小数(setprecision(n)的一些用法总结)「建议收藏」
做题遇到保留两位小数的题目,课本上写的又多又杂,网上查来的也是一堆内容需要筛选,눈_눈还是自己总结一下吧。
全栈程序员站长
2022/08/11
8.2K0
C / C++ 保留两位小数(setprecision(n)的一些用法总结)「建议收藏」
bigdecimal保留两位小数,不够两位补0_如何保留两位小数
/* * BigDecimal.setScale()方法用于格式化小数点 setScale(1)表示保留一位小数,默认用四舍五入方式 * setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3 * setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4 * setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4 * setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍 */
全栈程序员站长
2022/09/30
3.2K0
bigdecimal保留最多小数位_bigdecimal四舍五入保留两位小数
参考:https://www.cnblogs.com/jpfss/p/8072379.html
全栈程序员站长
2022/11/09
9370
mysql format不要逗号_笔记:number_format() 函数去掉数字千分位的逗号
最近有朋友找我仿站,为了实现某些效果,要去掉访问次数千分位的逗号,说真的,倡萌没有系统学习过PHP,所以只好求教 露兜老大,得知可以通过 number_format() 函数通过千位分组来格式化数字。自己折腾下,还真实现了,记录一下。
全栈程序员站长
2022/11/01
3.8K0
推荐阅读
相关推荐
圆周率两千万亿位_圆周率后3000万亿位
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档