r - 使用现有数据和概率模拟数据

标签 r machine-learning probability distribution bayesian

我测量了一座城市中大约 1500 棵树的多个属性(高度、品种、树冠宽度、状况等)。利用遥感技术,我还获得了该市其余 9000 棵树的高度。我想通过使用这些未测量的树木的高度来模拟/生成/估计其缺失的属性。

从测量的数据中,我可以获得每个物种在测量种群中的比例(以及粗略的概率)、每个物种的高度分布、物种的高度-冠宽关系、物种-条件关系等等。我想使用未测量的树木的高度数据首先估计物种,然后使用概率论估计其余属性。因此,对于高度为 25m 的情况,更有可能是雪松(高度范围 5 - 30 m)而不是桑树(高度范围 2 -8 m),并且更有可能是雪松(占人口的 50%)而不是桑树。橡树(高度范围相同,但占人口的 2%),因此树冠宽度为 10m,健康状况为 95%(基于我测量的数据中雪松树的分布)。但我也预计其他一些 25m 高的树木将被种植为橡树,只是根据人口比例,种植频率低于雪松。

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

我并不是要求别人为我编写代码 - 我对 R 相当有经验。我只是想指出正确的方向,即一个可以巧妙地完成此类事情的包。

谢谢!

最佳答案

因为您想要预测一个分类变量,即物种,您应该考虑使用树回归,这种方法可以在 R 包 rpart 和 RandomForest 中找到。当您有离散数量的类别并且需要将观察结果划分到这些类别中时,这些模型会表现出色。我认为这些包可以在您的应用程序中使用。作为比较,您还可以查看多项回归(mnlogit、nnet、maxent),它们也可以预测分类结果;不幸的是,对于大量结果和/或大型数据集,多项回归可能会变得笨拙。

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

如果您想使用贝叶斯方法,您可以考虑使用分层回归来对这些样本外预测进行建模。有时,分层模型的预测效果更好,因为它们往往相当保守。考虑查看 Rstanarm 包中的一些示例。

关于r - 使用现有数据和概率模拟数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42820695/

相关文章:

html - 是否可以修复长 html huxtable 的头部?

python - 我们应该为每个类(class)绘制 roc 曲线吗?

tensorflow - 当数据集不平衡时多类分类的最佳损失函数?

tensorflow - 寻求有关 "running"Tensorflow 模型的说明

ruby - z 分数到概率,反之亦然

linux - 如何在 Linux 或 R 中检查 CPU 核心使用情况

r - 在与响应式(Reactive)表达相关的 Shiny 中获取 "error: could not find function"

r - 使用 tidyverse 和 mutate_all 对每一列应用相同的函数

python - 从矩阵乘法的角度理解马尔可夫链

algorithm - 来自非线性概率的线性概率