You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用spatstat包对多维时空点模式(ppx对象)建模?

解决spatstat中ppx对象无法用ppm建模的问题

ppm()函数仅支持二维空间点模式(ppp)、三维空间点模式(pp3)或正交方案(quad),不直接支持通用多维点模式ppx。针对你的时空标记点模式,提供两种可行方案:

方案1:转换为时空点模式对象,用stppm()建模

如果需要保留x、y(空间)和t(时间)作为坐标维度,age、size作为标记变量,可以将ppx转换为stpp时空点模式对象,使用专门的时空点过程建模函数stppm():

library(spatstat)
set.seed(2022)
df <- data.frame(x=runif(4),y=runif(4),t=runif(4),
                 age=rep(c("old", "new"), 2),
                 size=runif(4))
X <- ppx(data=df, coord.type=c("s","s","t","m","m"))

# 提取时空坐标与标记
st_coords <- coords(X)[, 1:3]
st_marks <- marks(X)

# 创建时空点模式对象
stX <- stpp(coords = st_coords, 
            marks = st_marks,
            window = owin(c(0, 1), c(0, 1)),  # 空间范围
            tlim = c(0, 1))                   # 时间范围

# 拟合时空点过程模型
model <- stppm(stX ~ age + size, family = "poisson")
summary(model)

方案2:将时间作为协变量,转换为ppp对象建模

如果不需要将时间作为坐标维度,而是作为协变量处理,可以把ppx转换为二维空间点模式ppp,将t、age、size作为协变量纳入模型:

library(spatstat)
set.seed(2022)
df <- data.frame(x=runif(4),y=runif(4),t=runif(4),
                 age=rep(c("old", "new"), 2),
                 size=runif(4))
X <- ppx(data=df, coord.type=c("s","s","t","m","m"))

# 提取空间坐标与协变量
spat_coords <- coords(X)[, 1:2]
cov_data <- df[, c("t", "age", "size")]

# 创建二维空间点模式对象
ppX <- ppp(x = spat_coords[,1], 
           y = spat_coords[,2],
           window = owin(c(0, 1), c(0, 1)),
           marks = cov_data)

# 拟合空间点过程模型
model_ppm <- ppm(ppX ~ t + age + size)
summary(model_ppm)

内容的提问来源于stack exchange,提问作者oespinozah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 20:25:29