【问题标题】:Fitting a polynomial with a known intercept用已知截距拟合多项式
【发布时间】:2015-04-14 15:04:59
【问题描述】:

我正在使用lm(y~poly(x,2)) 将二阶多项式拟合到我的数据中。但我只是找不到指定已知截距值的方法。如何使用lm 拟合具有已知截距值(例如“k”)的多项式模型?

【问题讨论】:

  • 也许删除公式中带有- 1 的截距参数,并从您的数据中减去已知截距?
  • 谢谢@BrodieG。但正如 Ben 指出的那样,offset(k) 会更明确。

标签: r linear-regression polynomials intercept


【解决方案1】:
 lm(y~-1+x+I(x^2)+offset(k))

应该这样做。

  • -1 禁止自动添加拦截项
  • x 增加一个线性项
  • I(x^2) 增加了一个二次项; I() 是必需的,以便 R 将 ^2 解释为平方,而不是在 x 和它自身之间进行交互(根据公式规则,这相当于单独的 x
  • offset(k) 添加已知常量截距

我不知道poly(x,2)-1 是否可以消除拦截;你可以试试看。从您的数据中减去偏移量应该可以正常工作,但offset(k) 可能会更明确一些。您可能必须将k 设为向量(即将其复制到数据集的长度,或者最好将其作为列包含在数据集中并使用data=... 传递数据

【讨论】:

  • offset 看起来是个很棒的函数;对它的帮助有点令人困惑:“偏移量是要添加到线性预测器中的术语,例如在广义线性模型中,已知系数为 1 而不是估计系数。”已知系数 1?这一定是笔误。
  • 不,这只是令人困惑。关键是等式是y=b0+b1*x1+b2*x2+1*offset 而不是y=b0+b1*x1+b2*x2+b3*offset(其中b3 将是“估计系数”)。
  • 谢谢@BenBolker。有用。但说实话,我并没有完全理解这个公式,也找不到 R 的帮助。你能解释一下这个公式的每个元素还是指导我到哪里可以找到解释?
  • 哦...我还没有注意到您到现在为止编辑了答案。非常感谢。
  • 对我来说工作得很好......除了我必须按照你的建议生成一个 k 向量
猜你喜欢
  • 2015-10-12
  • 2019-05-13
  • 1970-01-01
  • 2017-12-17
  • 2018-02-16
  • 2020-11-27
  • 1970-01-01
  • 1970-01-01
  • 2016-10-11
相关资源
最近更新 更多