失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > spgwr | R语言与地理加权回归(Ⅰ-1):线性地理加权回归

spgwr | R语言与地理加权回归(Ⅰ-1):线性地理加权回归

时间:2022-05-31 13:12:05

相关推荐

spgwr | R语言与地理加权回归(Ⅰ-1):线性地理加权回归

地理加权回归(Geographically Weighted Regression, GWR)经过多年发展,已经具备了多种形式,在R语言中也对应着多个工具包,其中spgwr是一个开发较早、比较经典的工具包,功能也相对基础。

library(spgwr)

在该包中,运行线性地理加权回归的函数是gwr()。语法结构如下:

gwr(formula,data=list(),coords,bandwidth,gweight=gwr.Gauss,adapt=NULL,hatmatrix=FALSE,fit.points,longlat=NULL,se.fit=FALSE,weights,cl=NULL,predictions=FALSE,fittedGWRobject=NULL,T=TRUE)

本篇先介绍它的几个主要的参数:

该包目前的版本号是0.6-34,还不支持sf格式的矢量对象。

数据源

library(rgdal)NY8<-readOGR(system.file("shapes/NY8_utm18.shp",package="spData"))

模型形式

form<-Z~PEXPOSURE+PCTAGE65P+PCTOWNHOME

带宽

带宽(bandwidth)确定了局部的范围,该包的gwr.sel()函数提供了两种确定带宽的方法:交叉验证法和AIC信息准则法。语法结构如下:

gwr.sel(formula,data=list(),coords,adapt=FALSE,gweight=gwr.Gauss,method="cv",verbose=TRUE,longlat=NULL,RMSE=FALSE,weights,tol=.Machine$double.eps^0.25,show.error.messages=FALSE)

method:可选项有cv(交叉验证)、aic(AIC准则)。

bw<-gwr.sel(formula=form,data=NY8,gweight=gwr.Gauss,method="cv")bw##[1]179942.6

formuladatagweight参数需要与gwr()函数的对应参数保持一致。

距离加权函数

距离加权函数是一个随距离增加而逐渐衰减的函数,该包提供了4种地理加权函数:gwr.gaussgwr.Gauss(默认)、gwr.bisquaregwr.tricube

b表示带宽,d表示距离。以d = 100为例:

完整形式

线性回归:

model.lm<-lm(formula=form,data=NY8@data)summary(model.lm)####Call:##lm(formula=form,data=NY8@data)####Residuals:##Min1QMedian3QMax##-1.7417-0.3957-0.03260.33534.1398####Coefficients:##EstimateStd.ErrortvaluePr(>|t|)##(Intercept)-0.517280.15856-3.2620.00124**##PEXPOSURE0.048840.035061.3930.16480##PCTAGE65P3.950890.605506.5253.22e-10***##PCTOWNHOME-0.560040.17031-3.2880.00114**##---##Signif.codes:0'***'0.001'**'0.01'*'0.05'.'0.1''1####Residualstandarderror:0.6571on277degreesoffreedom##MultipleR-squared:0.1932,AdjustedR-squared:0.1844##F-statistic:22.1on3and277DF,p-value:7.306e-13

线性地理加权回归:

library(rgdal)NY8<-readOGR(system.file("shapes/NY8_utm18.shp",package="spData"))form<-Z~PEXPOSURE+PCTAGE65P+PCTOWNHOMEbw<-gwr.sel(formula=form,data=NY8,gweight=gwr.Gauss,method="cv")model<-gwr(formula=form,data=NY8,bandwidth=bw,gweight=gwr.Gauss)model##Call:##gwr(formula=form,data=NY8,bandwidth=bw,gweight=gwr.Gauss)##Kernelfunction:gwr.Gauss##Fixedbandwidth:179942.6##SummaryofGWRcoefficientestimatesatdatapoints:##Min.1stQu.Median3rdQu.Max.Global##X.Intercept.-0.522172-0.520740-0.54-0.514439-0.511092-0.5173##PEXPOSURE0.0471760.0480320.0495270.0497220.0504770.0488##PCTAGE65P3.9115263.9338323.9591923.9623343.9795523.9509##PCTOWNHOME-0.559358-0.557968-0.557682-0.555498-0.554563-0.5600

模型结果的数据结构是list,模型的主要结果在下图红框所示的位置:

以截距为例进行可视化:

library(sf)NY8_sf<-st_as_sf(NY8)NY8_sf$Intercept<-model$SDF@data$X.Intercept.plot(NY8_sf["Intercept"])

参考文献:

https://mirrors.tuna./CRAN/web/packages/spgwr/spgwr.pdf

如果觉得《spgwr | R语言与地理加权回归(Ⅰ-1):线性地理加权回归》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。