在R中采样自定义概率密度函数



通过dwp包,我得到了描述原始数据的概率密度函数。函数本身在列表中给出,所以我可以通过检查特定的列表元素来查看拟合的参数:

> Kbatmod$xep02
Distribution: xep02
Formula: ncarc ~ log(r) + I(r^2) + offset(log(exposure))
Parameters:
b0            b2 
-0.8396640654 -0.0004653923 
Coefficients:
(Intercept)        log(r)        I(r^2) 
-2.1154557406 -0.8396640654 -0.0004653923 
Variance:
(Intercept)        log(r)        I(r^2)
(Intercept)  3.034712e-01 -1.111308e-01  4.550014e-05
log(r)      -1.111308e-01  4.608998e-02 -2.451855e-05
I(r^2)       4.550014e-05 -2.451855e-05  2.531856e-08

现在我想对该函数进行采样,以绘制点云(0,0周围的位置(。方向或方位将作为0到360之间的随机数进行采样。但是距离需要适应这个拟合的xep02函数。我在dwp包中找不到能做到这一点的函数,尽管它的手册使用这种密度点云来解释它是如何工作的。

我尝试了RVCompare软件包和函数sampleFromDensity。但我不断地出错,我相信这是因为我给它xep02函数的方式。

> dwpPDF <- Kbatmod$xep02
> 
> PDFsamples <- sampleFromDensity(dwpPDF, 100, c(0,100))
Error in density.default(X[[i]], ...) : 
need at least 2 points to select a bandwidth automatically

有人能帮我如何";翻译";什么dwp包给了我RVCompare的输入?

目标是获得一个具有100个距离的向量,该向量适合xep02 PDF,添加100个随机选择的方位的向量,然后在ArcGIS中绘制这些向量,以覆盖预定义的多边形,并查看这些多边形中有多少点。

sampleFromDensity需要一个函数作为其第一个参数。您可以使用ddd功能来完成此操作:

sampleFromDensity(function(x) ddd(x, dwpPDF), 100, c(0,100))

相关内容

  • 没有找到相关文章

最新更新