r - 地理加权逻辑回归不同维度
问题描述
我正在尝试进行地理加权逻辑回归来量化我的数据集中的空间变化。但是,在运行 gwr 模型时,我收到输入数据和坐标具有不同维度的错误。
这是我用于荷兰边境的代码:
unzip("ne_10m_admin_1_states_provinces.zip",exdir="NaturalEarth")
border <- shapefile("NaturalEarth/ne_10m_admin_1_states_provinces.shp")
#extract border netherlands
Netherlands1 <- border[paste(border$iso_a2)=="NL",]
我的数据有关于病原体流行的二元结果 (0/1)。
Data_coord <- data[,c(1:2)] #extract coordinates
sp.data <- SpatialPointsDataFrame(coords = data_coord, data = data_full3.p,
proj4string = CRS("+proj=longlat +datum=WGS84 +no_defs")) #convert to spatialpoint dataframe
接下来我进行了逻辑回归。这里没有问题。
m <- glm(glm(pathogen ~ Age_category,
family=binomial(link='logit'),data=sp.data))
summary(m)
我用平面 CRS 转换了空间 * 对象中的数据
alb <- CRS("+proj=utm +zone=31N +datum=WGS84")
sp <- sp.data
spt <- spTransform(sp, alb)
ctst <- spTransform(Netherlands1, alb)
#get optimal bandwidth
bw <- gwr.sel(A._phagocytophilum_qPCR1 ~ Age_Category, data=spt)
bw
但是一旦我运行这条线,我就会得到一个错误
#run gwr function
g <- gwr(pathogen ~ Age_Category, data=spt, bandwidth=bw, fit.points=newpts[, 1:2])
gwr(pathogen ~ Age_Category, data = spt, bandwidth = bw, 中的错误:输入数据和坐标具有不同的维度
有人知道如何解决这个问题吗?先感谢您!
解决方案
查看功能代码,看起来问题出在此处:
if (NROW(x) != NROW(coords))
stop("Input data and coordinates have different dimensions")
x
这里取自之前在代码中创建的 model.frame 对象,该对象将自动排除任何具有 NA 或 NaN 值的行,因此可能会提供与数据集不同的行数。
我无法解压缩您的文件,但我会检查是否有任何缺失值。我在 ggwr 上遇到了同样的问题,删除这些值解决了这个问题。
推荐阅读
- mule - 如何根据事件运行 mule 作业
- ruby-on-rails - 如何在 Rails 应用程序中显示我所在页面的名称
- android - android studio中string.xml的'did'属性有什么用?
- flutter - 颤振的 HTTP3 客户端
- javascript - Promisify 一个返回 null 的函数
- r - R 数据表中的部分字符串匹配
- python - 实现 2captcha,python selenium 的问题
- vue.js - VueX:意外的令牌,预期的“,”(axios)
- python - 关于在 Python 中创建 excel 文件的问题。关于语法的问题
- perl - 如何在 perl 上删除或更改最后一次打印的显示?