7

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

4

1 回答 1

10
 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=...

于 2015-02-13T15:58:53.083 回答