我通过一系列spatstat函数运行了两个未标记的平面点模式数据集。现在我想使用Kcross.inhom函数来描述两者之间的交互,但Kcross只能处理标记数据,所以我将所有x-y数据合并到一个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
答案 0 :(得分:1)
我不清楚你遇到的问题是什么。你好像我在本质上“在那里”。但是,为了完整起见,请告诉我您应遵循的程序:
让X和Y成为你的两点模式(可能在相同的窗口中观察到)。
将这些组合成一个单一的模式:
XY <- superimpose(X=X,Y=Y)
请注意,您无需使用csv文件。使用spatstat提供的工具效率要高得多。
上述语法产生多点模式,其中标记是具有级别“X”和“Y”的因子。 (如果您希望水平用其他符号表示,您可以轻松安排。)
然后只计算非均匀Kcross函数:
Ki <- Kcross.inhom(XY,"X","Y")
这就是它的全部内容。
请注意,上述内容使用默认方法来估计两种模式的强度,明确地使用bw.diggle()
选择的带宽保留一次内核平滑。可能有更好的方法来估计强度,可能通过拟合参数模型。这取决于您可获得的信息的性质。
解释 Kcross.inhom()
的输出,恕我直言,微妙而困难。
你得出的任何结论都要谨慎。
答案 1 :(得分:1)
Rolf Turner的回答是正确的。但是,你说那个
我已将所有x-y数据合并到一个csv文件中,并添加了一个区分两者的列。
好的,假设数据框被称为df
,它有名为x
和y
的列给出空间坐标,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
的帮助文件,以获取有关如何使用这些功能以及如何解释结果的建议。
顺便说一句,请不要同时向多个论坛发送相同的问题。那些必须回答的人很难。