1

我一直在通过一系列 spatstat 函数运行两个未标记的平面点模式数据集。现在我想用Kcross.inhom函数来描述两者之间的交互,但是Kcross只对标记的数据起作用,所以我将所有xy数据合并到一个csv文件中,并添加了一个区分两者的列。我已经建立了以下点模式对象,但不明白如何为我的目的编辑 Kcross 的后续示例。或者,也许有更好的方法?谢谢你的帮助!

# read in data & create ppp
collisionspotholes<-read.csv("cpmulti.csv")
cp<-ppp(collisionspotholes[,3],collisionspotholes[,4],c(40.50390735,40.91115166),c(-74.25262139,-73.7078596))

# synthetic example
pp <- runifpoispp(50)
pp <- pp %mark% factor(sample(0:1, npoints(pp), replace=TRUE))
K <- Kcross(pp, "0", "1")
K <- Kcross(pp, 0, 1) # equivalent
4

2 回答 2

2

我不是很清楚你有什么问题。在我看来,你基本上“在那里”。但是,为了完整起见,让我详细说明您应该遵循的程序:

让 X 和 Y 成为您的两点模式(可能在同一个窗口中观察到)。

将这些组合成一个模式:

XY <- superimpose(X=X,Y=Y)

请注意,您无需处理 csv 文件;使用 spatstat 提供的设施效率更高。

上述语法产生了一个多类型点模式,其中标记是具有“X”和“Y”级别的因子。(如果您想用其他符号表示级别,您可以轻松地安排这一点。)

然后只需计算非齐次 Kcross 函数:

Ki <- Kcross.inhom(XY,"X","Y")

这就是它的全部。

请注意,上述使用默认方法来估计两种模式的强度,明确地留一出内核平滑,带宽由 选择bw.diggle()。估计强度可能有更好的方法,也许是通过拟合参数模型。这取决于您可获得的信息的性质。

解释Kcross.inhom()是,恕我直言,微妙而困难的输出。对你得出的任何结论都要谨慎。

于 2015-12-26T22:09:08.480 回答
2

罗尔夫特纳的回答是正确的。然而,你这么说

我已将所有 xy 数据合并到一个 csv 文件中,并添加了一个区分两者的列。

好的,假设数据框被调用df,它有列命名xy给出空间坐标,h这是一个字符向量,标识对应点是坑洞 ( h="p") 还是碰撞 ( h="c")。然后你可以做

X <- ppp(df$x, df$y, xlim, ylim, marks=factor(df$h))

xlim, ylim空间坐标的界限在哪里。或者更优雅

X <- with(df, ppp(x, y, xlim, ylim, marks=factor(h))

请注意使用factor以确保标记是分类值。然后输入

X

检查您是否有“多类型点模式”。

然后你可以做,例如

K <- Kcross(X)
Ki <- Kcross.inhom(X)

请阅读帮助文件以Kcross, Kcross.inhom获取有关如何使用这些函数以及如何解释结果的建议。

顺便说一句,请不要同时向多个论坛发送相同的问题。对于那些必须回答的人来说,这很难。

于 2015-12-27T11:14:55.590 回答