【问题标题】:How to force intercept to zero using nls pacakge in R?如何使用 R 中的 nls 包强制拦截为零?
【发布时间】:2020-10-11 00:29:18
【问题描述】:

我使用nls包分析非线性模型(功率曲线,y= ax^b)。

cal<- nls(formula= agw~a*area^b, data=calibration_6, start=list(a=1, b=1))
summary(cal)

我现在想要的是强制拦截 (a) 为零以检查某些内容。在 Excel 中,我无法设置功率曲线的截距。在R中,可以设置拦截吗?

如果可能的话,你能告诉我怎么做吗?

【问题讨论】:

  • 只需从公式(和起始值列表)中删除 a
  • 看来nls 遵循与公式相同的约定,因此nls(formula = agw ~ a * area^b - 1, data = calibration_6, start = list(a = 1, b = 1)) 应该这样做。
  • 感谢您的回答。如果我按照 HongOoi 做,那就是 y= x^1.32。如果我按照@ChuckP 做,那就是 y= 0.96x^1.35。坦率地说,我不知道究竟是什么强制截距为零的定义。哪个等式是正确的?
  • 感谢您的回答。如果我按照@HongOoi 做,那就是 y= x^1.32。如果我按照 ChuckP 做,那就是 y= 0.96x^1.35。坦率地说,我不知道究竟是什么强制截距为零的定义。哪个等式是正确的?
  • 亲爱的。 @G.Grothendieck 我只是想知道我的图表是否从零开始,等式是如何改变的。像线性模型一样,我们可以将截距设置为零并查看方程。像这样,我想知道如果图表从零开始,我的功率曲线方程是如何变化的。

标签: r non-linear-regression nls intercept


【解决方案1】:

y~x^b模型是我首先考虑的,

 nls(formula= agw ~ area^b, data=calibration_6, start=list(b=1))

但是,我也找到了其他方法,请查看以下链接。

How to calculate R-squared in nls package (non-linear model) in R?

【讨论】:

    猜你喜欢
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 2023-02-06
    相关资源
    最近更新 更多