我正在使用 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/