2017-03-15 26 views
0

我测量了城市中约1500棵树的多个属性(高度,物种,冠幅,条件等)。使用遥感技术,我还拥有该城市其余9000棵树的高度。我想通过使用它们的高度来模拟/生成/估计这些未测量树的缺失属性。从测得的数据中我可以获得测量种群中每个物种的比例(以及粗略概率),每个物种的高度分布,物种的高度 - 冠幅关系,物种条件关系等等。我想使用未测量树木的高度数据首先估计物种,然后使用概率理论估计其余属性。因此,对于25米高的地方,它更可能是雪松(身高范围5-30米),而不是桑树(身高范围2-8米),更可能是雪松(人口的50%)比橡树(相同的高度范围,但人口的2%),因此冠幅宽度为10米,健康状况为95%(根据我测量的数据,杉树的分布情况)。但我也希望有25米的其他树木能够得到橡木,而根据人口的比例,这种树木比杉树要少。使用现有数据和概率模拟数据

有没有办法在R中使用概率理论做到这一点,最好是利用贝叶斯或机器学习方法?

我没有要求别人为我写代码 - 我对R有相当的经验。我只是想指出正确的方向,即一个整齐地做这种事情的包。

谢谢!

回答

0

我建议你在随机变量上查看带有表CPD的贝叶斯网络。这是一个生成模型,可以处理缺失的数据,并对变量之间的偶然关系进行推理。贝叶斯网络结构可以由手动指定或通过算法从数据中学习。

R具有与bnlearn是其中之一贝叶斯网络的几种实现方式:http://www.bnlearn.com/

请参阅如何在这里使用它的教程:https://www.r-bloggers.com/bayesian-network-in-r-introduction/

0

对于每一个物种,其他变量的分布(高度,宽度,条件)可能是一个相当简单的凹凸。您可以将高度和宽度建模为联合高斯分布;不了解情况。无论如何,对于物种以外的其他变量的联合分布,您可以构建所有这些每物种颠簸的混合分布,混合权重等于可用数据中每个物种的比例。考虑到高度,你可以找到其他变量的条件分布,条件是高度(它也将是一个混合分布)。考虑到有条件的混合,你可以像往常一样采样:挑选频率等于其混合重量的颠簸,然后从选定的凹凸处采样。

听起来像一个很好的问题。祝好运并玩得开心点。

1

因为你想要预测一个分类变量,即物种,你应该考虑使用树回归,这个方法可以在R packages rpart和RandomForest中找到。如果您有不同数量的类别,那么这些模型就非常出色,您需要将观察结果插入这些类别。我认为这些软件包可以在你的应用程序中运行作为比较,您还可以查看多项式回归(mnlogit,nnet,maxent),这也可以预测分类结果;不幸的是,多项式回归会导致大量结果和/或大型数据集的不便。

如果您想要预测物种中单个树木的单个值,请首先对所测量的树木中的所有测量变量(包括物种类型)进行回归。然后,采用您预测的分类标签,并预测未测量树木的样本外,您可以使用分类标签作为未测量感兴趣变量(例如树高)的预测变量。这样,回归将预测该物种/虚拟变量的平均高度,并加上一些错误,并将该样本树上的任何其他信息合并在一起。

如果您想要使用贝叶斯方法,请考虑使用层次回归来对这些样本外预测进行建模。有时层级模型在预测方面做得更好,因为它们往往相当保守。考虑一下一些例子,看一下Rstanarm软件包。