【问题标题】:Geographically weighted logistic regression different dimensions地理加权逻辑回归不同维度
【发布时间】:2020-07-15 12:58:58
【问题描述】:

我正在尝试进行地理加权逻辑回归来量化我的数据集中的空间变化。然而,在运行 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 中的错误(病原体 ~ Age_Category,数据 = spt,带宽 = bw,: 输入数据和坐标有不同的维度

有人知道如何解决这个问题吗?提前谢谢!

【问题讨论】:

    标签: r gwr gwmodel spgwr


    【解决方案1】:

    查看function code,看来问题出在这里:

    if (NROW(x) != NROW(coords)) 
    stop("Input data and coordinates have different dimensions") 
    

    x 此处取自之前在代码中创建的 model.frame 对象,该对象将自动排除任何具有 NA 或 NaN 值的行,因此可能会提供与数据集不同的行数。

    我无法解压缩您的文件,但我会检查是否有任何缺失值。我在 ggwr 上遇到了同样的问题,删除这些值解决了问题。

    【讨论】:

      猜你喜欢
      • 2017-03-02
      • 2012-10-04
      • 2011-11-22
      • 1970-01-01
      • 2017-08-16
      • 1970-01-01
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多