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

最佳答案

 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=... 传递数据

    关于r - 拟合具有已知截距的多项式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28501861/

    10-12 19:59