我正在尝试用 R 做一些非常简单的事情,但我不确定我是否做得很好。我有一个包含三列 V1、V4、V5 的数据集,我想进行回归以获取以下两个变量的多项式的系数 Ci、j:
sum[i=0->3] sum[j=0->i] Ci,j . (V4_k)^i . (V5_k)^(3-j)
所以我尝试使用函数 polym:
lm(V1 ~ polym(V4, V5, degree=3, raw = TRUE), data)
这给了我以下系数
[1] 1.048122e+04 -2.050453e+02 1.407736e+00 -3.309312e-03 -3.748650e+01 8.983050e-01 -4.308559e-03 1.834724e-01 -6.868446e-04 4.030224e-04
现在,如果我很好地理解了我们必须如何构建一个公式,我假设以下内容会给出相同的结果:
lm(v1 ~ V4 + V5 + I(V4 * V5) + I(V4^2 * V5) + I(V4^3 * V5) + I(V4^2 * V5^2) + I(V4^2*V5^3) + I(V4^3 * V5^2) + I(V4^3 * V5^3), data)
但我得到不同的系数:
[1] 3.130403e+03 -1.652007e+01 -1.592879e+02 3.984177e+00 -2.419069e-02 3.919910e-05 1.008657e-04 4.271893e-07 -5.305623e-07 -2.289836e-09
你能告诉我我做错了什么,用R实现这种回归的正确方法是什么?