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