我正在寻找最适合包含三个变量的数据:x,y,m,使用R。
为此,我使用函数“polym”,如:
fit <- lm(y~polym(x, m, degree = 2, raw=TRUE))
我对3级做同样的事情,然后我与ANOVA测试进行比较,看看哪个更好。
但是,对于给定的度数,创建的多项式具有所有可能的组合。例如,如果我将degree = 2,则创建的多项形将为:
y = C0 + C1*x + *C2*x^2 + C3*x*m + C4*m^2
实际上,2度多项式也可以是:
y = C0 + C1*x + *C2*x^2 + C3*x*m
或
y = C0 + C1*x + C2*x*m + C3*m^2
(没有术语x ^ 2或m ^ 2)
我不认为函数“polym”正在考虑那些情况,因为我已经生成了110次回归(通过改变x和y的值),并且2度的所有关系都具有所有可能的系数(相同的其他学位)。
如果你知道的话,“polym”(或者更好的函数......)如何产生多项式作为我写的最后两个?
答案 0 :(得分:1)
首先,你的第二个等式只是第一个等式(原始)c3 = 0.除非你有理论上的理由要省略混合项,否则lm将决定混合项的系数是否应为零。如果你坚持,poly by column的输出是不同的度数。检查显示poly的第4列是你不想考虑的混合术语,所以fit&lt; -lm(y~polym(x,m,degree = 2,raw = TRUE)[, - 4] )会迫使回归考虑除混合术语之外的所有术语。