【问题标题】:Type of regression for large dataset, nonlinear, skewed in R大型数据集的回归类型,非线性,在 R 中偏斜
【发布时间】:2021-04-27 17:02:41
【问题描述】:

我正在研究不同生物群落中的飞蛾生物量,我想找到一个估算生物量的模型。我测量了 37088 个标本的前翅、腹部和胸部的长度和宽度,并分别称重(干燥)。

首先,我想对生物量的每个变量进行简单的线性回归。问题是,没有一个假设得到满足。数据不是线性的,生物量(和一些变量)不服从正态分布,存在异方差和大量异常值。现在我尝试使用 log、x^2、1/x 和 boxcox 转换我的数据,但它们都没有真正帮助。我还尝试过 Thiel-Sen 回归(因为数据太多而无法实现)和 Siegel 回归(生物质不是向量)。我可以尝试其他形式的非参数或基于中值的回归吗?因为我真的没有想法。

这是生物量的频率直方图: Frequency histogram dry biomass

所以我真正想做的是建立一个模型,根据我进行的测量来准确估计干生物量。我有一个适用于所有昆虫的幂函数(Rogers 等人),但这个估计值与我实际称重的值之间存在显着差异。因此,我只想构建一个包含所有重要变量的模型。我对幂函数不是很熟悉,但也许可以自己构建一个?任何人都可以推荐一种方法吗?提前致谢。

【问题讨论】:

  • 这确实是一个交叉验证的问题,而不是 R 编程。请注意,您可以在不满足正态假设的情况下运行线性回归(例如,人们经常对二元因变量执行此操作;请参阅 Mostly Harmless Econometrics 了解为什么这可能是可以的)。您的标准误差将是错误的,但您的估计仍将最小化均方误差。如果您要进行预测,这就是您所需要的。

标签: r statistics bioinformatics non-linear-regression


【解决方案1】:

要拟合幂函数,您也许可以尝试 minpack.lm 包中的 nlsLM


library(minpack.lm)
m <- nlsLM( y ~ a*x^b, data=your.data.here )

然后看看它的表现是否令人满意。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-09
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 2018-04-28
    • 2013-09-13
    • 1970-01-01
    • 2017-05-18
    相关资源
    最近更新 更多