【问题标题】:Fitting an unusual curve to length at age data在年龄数据处拟合不寻常的曲线长度
【发布时间】:2021-05-19 23:40:46
【问题描述】:

我为过于简化的数据道歉,但我总是因为包含太多而受到责骂。完整的数据在这里...https://1drv.ms/x/s!AgJEX3KZYGJspmBjAKUrup5UU3Gl?e=dKNuYs我正在尝试拟合曲线并获得一个方程式,我可以使用它来根据其他数据集中的鱼的长度来预测年龄。我尝试过线性模型、自然样条曲线、von bertalanfy、gompertz、logistic 等,但并不能很好地捕捉数据。

structure(list(Age = c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 14, 16), 
    FL = c(96.1891891891892, 201.026845637584, 243.981818181818, 
    274.594594594595, 303.291666666667, 337.677419354839, 378.347826086957, 
    410.4, 475, 415, 708, 754)), row.names = c(NA, -12L), class = c("tbl_df", 
"tbl", "data.frame"))

完整的数据集如下所示...

如您所见,线性模型不是很好。到目前为止,自然样条曲线是最好的,但我不知道如何获得预测年龄的方程。我可以使用

查看模型摘要
lm = lm(FL ~ ns(Age, 4), data=wi.age.length) 
res = resid(lm)
summary(lm)

但我不知道如何从这个输出建立方程。谢谢

【问题讨论】:

  • 为您的数据寻求统计模型的建议是 Stack Overflow 的主题。如果您需要统计建议,则应改为通过Cross Validated 寻求帮助。样条曲线没有封闭形式的方程。如果这是一个要求,您将需要选择不同的模型。
  • 我了解,但我使用 R 进行所有分析,需要知道如何在 R 中执行此操作。这就是我在此处发布的原因。

标签: r regression model-fitting


【解决方案1】:

例如,如果您想预测 Age bei FL = 200,您可以使用 predict()

lm = lm(FL ~ ns(Age, 4), data=wi.age.length) 
res = resid(lm)
summary(lm)

# to predict Age 
predict(lm, FL = 200)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 2015-09-03
    • 2019-03-15
    相关资源
    最近更新 更多