1

所以我使用 R 中的spdep包来做到这一点。我需要使用其中的 localmoran 函数来获取研究区域中的热点/冷点集群。

在阅读了参考指南之后,我得到了它的工作。

但由于数据是时间序列,现在我不太确定。顺便说一下,我的数据是关于降雨量的,在 2006 年至 2016 年期间在 7 个城市进行了测量。

对于我能想到的最简单的例子,我将缩小这个问题。假设我有这个数据框,我们称之为test

           city1        city2        city3
day_1    1.09765      0.89634     37.09863
day_2   14.98641      0.97531      5.97451
day_3    1.97551     12.18713      7.97512

根据参考指南,我需要创建一个 listw 对象,我做到了。

coord <- read_csv("myCSV.csv") #this is just a matrix of the x and y coordinates of the cities
coordinates(coord) <- ~ y + x
proj4string(coord) <- CRS("+init=epsg:4326")
mapview(coord)
as.data.frame(coord)

knn <- knearneigh(coord, k=2, longlat = NULL, RANN = TRUE)

nb <- knn2nb(knn, row.names = NULL, sym = TRUE)

listw <- nb2listw(nb, style="W")

localmoran 函数至少接受 2 个参数,一个数字向量和一个 listw 对象。数字向量的长度必须与 listw 对象的长度相同(在这个按比例缩小的示例中,为 3)。

我现在的问题是,因为它接受一个数字向量,所以我只能像这样传递一行:

localmoran(as.numeric(test[1, ]), listw)

但这仅考虑了时间序列中的第一天。我必须遍历数据才能获得前几天的 localmoran 索引,就像这样。

for(i in c(1:3)) {
  final <- as.data.frame(localmoran(as.numeric(test[i, ]), listw))
}

现在我将通过讨论参考指南中的示例离开一点。该示例仅采用一个数字向量,可能只是该变量的一个实例。但由于我是在多个实例(天)中拍摄的,所以我与这个例子有很大的偏差,现在我既困惑又害怕。

再进一步讨论统计数据,因为我只需要一个跨越整个时间跨度的 localmoran 值,我如何将每天的 localmoran 值合并为一个?平均?费舍尔的转变?ETC?

spdep包是否甚至考虑时间?R中是否有一个确实使用时间的包?

我害怕。

感谢任何回复的人。

(请帮我)

4

0 回答 0