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

关于spatstat中markcrosscorr标记相关组合创建包络的技术咨询

问题1:为markcrosscorr生成的标记交叉相关结果创建包络

markcrosscorr返回的是fasp类对象(本质是多组fv对象的数组),而envelope默认要求输入函数返回单个fv对象,因此需要通过自定义函数适配,以下是两种可行方案:

方案1:针对特定标记对计算包络

如果仅关注某一对标记的交叉相关,可写一个包装函数,只返回该标记对对应的fv对象:

# 假设标记为分类型,目标标记对为"typeA"和"typeB"
mc_single_pair <- function(X) {
  mcc_result <- markcrosscorr(X, i = "typeA", j = "typeB")
  # 提取对应标记对的fv对象
  return(mcc_result[[1, 1]])
}

# 计算包络(替换X为你的点模式对象,nsim为模拟次数)
env_result <- envelope(X, fun = mc_single_pair, nsim = 99)
plot(env_result)

方案2:为所有标记对批量计算包络

若需要所有标记组合的包络,可遍历fasp中的每个fv元素,分别计算包络后重新组合为fasp格式:

# 先计算原始的标记交叉相关结果
mcc_full <- markcrosscorr(X)

# 定义单个fv对象的包络计算函数
calc_env_for_fv <- function(fv_obj, input_X, nsim_num) {
  # 获取当前fv对应的标记对信息
  ij_pair <- attr(fv_obj, "ij")
  # 定义适配envelope的函数
  fun_wrapper <- function(Y) {
    markcrosscorr(Y, i = ij_pair[1], j = ij_pair[2])[[1, 1]]
  }
  return(envelope(input_X, fun = fun_wrapper, nsim = nsim_num))
}

# 遍历所有标记对计算包络
env_list <- lapply(mcc_full, function(fv) calc_env_for_fv(fv, X, nsim_num = 99))
# 转换为fasp格式便于绘图和查看
env_fasp <- as.fasp(env_list, imap = attr(mcc_full, "imap"))
plot(env_fasp)

问题2:非均质标记模式的分析方法

常规标记相关函数默认假设空间强度均质,若实际数据存在强度变化,直接分析会出现偏差(比如高密度区域的标记值共性会被误判为标记间的关联),针对非均质场景,可采用以下方法:

1. 使用非均质版本的标记相关函数

spatstat提供了专门消除强度非均质影响的函数:

  • 单变量标记:markcorr.inhom,需预先估计空间强度函数(通常用核密度估计density(X))
  • 交叉标记:markcrosscorr.inhom,需分别估计两组标记的空间强度
    示例:
# 非均质单变量标记相关分析
inhom_mark_corr <- markcorr.inhom(X, lambda = density(X))

# 非均质交叉标记相关分析(针对分类型标记"typeA"和"typeB")
lambda_A <- density(X[marks(X) == "typeA"])
lambda_B <- density(X[marks(X) == "typeB"])
inhom_cross_corr <- markcrosscorr.inhom(X, lambdaI = lambda_A, lambdaJ = lambda_B)

2. 基于点过程模型的控制方法

通过拟合点过程模型,先控制空间强度的影响,再分析标记的条件相关性:

  • 分类型标记:拟合多类型点过程模型,将标记作为协变量纳入模型,通过模型结果判断标记的独立/关联特性
  • 数值型标记:拟合标记点过程模型,将标记值建模为空间位置和强度的函数,分析残差中的标记关联
    示例:
# 拟合带空间趋势和标记协变量的泊松点过程模型
fit_model <- ppm(X ~ marks + x + y, family = "poisson")
summary(fit_model)

# 提取模型残差,分析残差中的标记关联(消除了强度和空间趋势的影响)
model_res <- residuals(fit_model)
markcorr(model_res)

3. 局部标记统计分析

使用局部版本的统计量,查看不同空间位置的标记关联,避免全局统计的平均偏差:

  • localmarkcorr:计算每个点的局部标记相关系数
  • localcrosscorr:计算多类型点的局部交叉相关
    这类统计量可直观展示不同区域的标记行为差异,适合异质性较强的数据。

4. 分层分析

若空间异质性存在明显分区(比如按强度高低划分区域),可将数据分层,在每个均质子区域内单独分析标记相关性,再综合各区域结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 08:32:47