【问题标题】:How to convert intensities to Probabilities in a point pattern using Spatstat in R?如何使用 R 中的 Spatstat 将强度转换为点模式中的概率?
【发布时间】:2018-12-15 15:07:14
【问题描述】:

我有两个点模式 (ppp) 对象 p1 和 p2。 p1 和 p2 中分别有 X 和 Y 点。我在 p1 中拟合了一个 ppm 模型(将位置坐标作为自变量),然后用它来预测 p2 中每个 Y 点的“强度”。

现在我想在 p2 中的那个点/区域获得事件发生的概率。为此,我如何使用预测的强度?

我可以使用 Spatstat 执行此操作吗? 还有其他选择吗?

【问题讨论】:

    标签: geospatial spatial spatstat


    【解决方案1】:

    强度是每单位面积的预期点数。在小区域(例如像素)中,您只需将强度乘以像素区域即可获得像素中存在点的概率。

    fit <- ppm(p1, .......)
    inten <- predict(fit)
    pixarea <- with(inten, xstep * ystep)
    prob <- inten * pixarea
    

    如果prob 的值小于大约 0.4,则此规则是准确的。

    在较大的区域W 中,预期的点数是该区域上强度函数的积分:

    EW <- integrate(inten, domain=W)
    

    结果EW 是一个数值,即W 中的预期总点数。得到至少一个点的概率,

    P <- 1- exp(-EW)
    

    您还可以使用 predict.ppm 和参数 interval="prediction" 计算点数的预测区间。

    【讨论】:

    • 感谢您的回复!我已经用代码示例编辑了这个问题。你能告诉我如何解决这个问题。我还是卡住了!
    【解决方案2】:

    您的问题,目标和当前方法对我来说不是很清楚。它 如果您可以提供代码和图形,那将是有益的 更清楚地知道你做了什么,以及你想要得到什么。如果你 无法共享您可以使用的数据,例如内置数据集chorley 作为 示例(或只是模拟人工数据):

    library(spatstat)
    plot(chorley, cols = c(rgb(0,0,0,1), rgb(.8,0,0,.2)))
    

    X <- split(chorley)
    X1 <- X$lung
    X2 <- X$larynx
    mod <- ppm(X1 ~ polynom(x, y, 2))
    inten <- predict(mod)
    summary(inten)
    #> real-valued pixel image
    #> 128 x 128 pixel array (ny, nx)
    #> enclosing rectangle: [343.45, 366.45] x [410.41, 431.79] km
    #> dimensions of each pixel: 0.18 x 0.1670312 km
    #> Image is defined on a subset of the rectangular grid
    #> Subset area = 315.291058349571 square km
    #> Subset area fraction = 0.641
    #> Pixel values (inside window):
    #>  range = [0.002812544, 11.11172]
    #>  integral = 978.5737
    #>  mean = 3.103715
    plot(inten)
    

    X2 中 58 个位置的预测强度

    intenX2 <- predict.ppm(mod, locations = X2)
    summary(intenX2)
    #>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    #>  0.1372  4.0025  6.0544  6.1012  8.6977 11.0375
    

    这些预测强度intenX2[i] 说在一个小社区 在每个点X2[i] 周围,来自X1 的估计点数是泊松 分布平均intenX2[i]乘以小社区的面积。 所以事实上你已经估计了一个模型,在任何小区域你都有一个 该区域发生的任意数量点的概率分布。如果 您希望在更大的区域进行分发,您只需整合 该区域的强度。

    要获得更好的答案,您必须提供有关您的问题的更多详细信息。 reprex package (v0.2.1) 于 2018 年 12 月 12 日创建

    【讨论】:

    • 感谢您的回复!我已经用代码示例编辑了这个问题。你能告诉我如何解决这个问题。我还是卡住了!
    猜你喜欢
    • 2020-02-29
    • 2015-03-31
    • 2018-05-04
    • 2013-06-25
    • 2011-08-13
    • 1970-01-01
    • 2017-01-11
    • 2021-03-24
    • 2020-09-24
    相关资源
    最近更新 更多