我测量了一个城市中大约1500棵树的多个属性(高度,树种,树冠宽度,状况等)。使用遥感技术,我还可以获得该市9000棵树的其余高度。我想通过使用它们的高度来模拟/生成/估计这些未测量的树的缺失属性。
从测量数据中,我可以得到每个物种在测量种群中的比例(因此是一个粗略的概率),每个物种的高度分布,物种的高度-冠幅关系,物种-条件关系等。我想使用未测量的树的高度数据来首先估计物种,然后使用概率论估计其余的属性。因此,对于25米的高度,更有可能是雪松(高度范围5- 30米),而不是桑树(高度范围2 -8米),更有可能是雪松(50%的人口)而不是橡树(相同的高度范围,但2%的人口),因此将有10米的树冠宽度和95%的健康状况(基于我测量数据中的雪松树分布)。但我也希望其他一些25m的树木能种上橡树,根据人口比例,这比雪松要少一些。
有没有办法在R中使用概率论,最好是利用贝叶斯或机器学习方法?
我不是要求有人为我写代码-我对R相当有经验。我只是想被指向正确的方向,即一个整洁地做这类事情的包。
谢谢!
发布于 2017-03-29 10:34:43
因为您想要预测分类变量,即物种,所以应该考虑使用树回归,这是一种可以在R包rpart和RandomForest中找到的方法。当你有一个离散的类别数量,并且你需要将你的观察结果放在这些类别中时,这些模型就会表现出色。我认为这些包可以在您的应用程序中工作。作为比较,您还可以查看多项回归(mnlogit,get,maxent),它也可以预测分类结果;不幸的是,对于大量结果和/或大型数据集,多项回归可能会变得笨拙。
如果您想要预测物种中个别树木的单项值,请首先对所有测量的变量进行回归,包括树种类型。然后,取您预测的分类标签,并对未测量的树进行样本外预测,其中您使用分类标签作为未测量的感兴趣变量的预测值,例如树高。这样,回归将预测该物种/虚拟变量的平均高度,加上一些误差,并纳入您在样本外树上拥有的任何其他信息。
如果要使用贝叶斯方法,可以考虑使用分层回归对这些样本外预测进行建模。有时,分层模型在预测方面做得更好,因为它们往往相当保守。考虑查看Rstanarm包中的一些示例。
发布于 2017-03-16 05:47:02
我建议你在你的随机变量上使用表CPD来查看贝叶斯网络。这是一个生成式模型,可以处理丢失的数据,并对变量之间的因果关系进行推断。贝叶斯网络结构可以手工指定,也可以通过算法从数据中学习。
R有几个贝叶斯网络的实现,其中bnlearn就是其中之一:http://www.bnlearn.com/
有关如何使用它的教程,请参阅此处:https://www.r-bloggers.com/bayesian-network-in-r-introduction/
发布于 2017-03-17 14:21:43
对于每个物种,其他变量(高度、宽度、条件)的分布可能是一个相当简单的凹凸。您可以将高度和宽度建模为联合高斯分布;不知道条件。无论如何,使用除物种之外的变量的联合分布,您可以构建所有这些每个物种凹凸的混合分布,混合权重等于每个物种在可用数据中的比例。给定高度,您可以找到其他变量在高度条件下的条件分布(它也是一个混合分布)。给定条件混合,您可以像往常一样从其中采样:拾取频率等于其混合权重的凹凸,然后从选定的凹凸中采样。
听起来是个好问题。祝你好运,玩得开心。
https://stackoverflow.com/questions/42820695
复制相似问题