以下是我在R中运行的混合模型的一些摘要数据(由summary()
生成):
Fixed effects:
Estimate Std. Error df t value Pr(>|t|)
(Intercept) -3.295e-01 1.227e-01 3.740e+01 -2.683 0.0108 *
STANDING.L 8.447e-02 7.091e-02 7.346e+02 1.188 0.2354
STANDING.Q -4.624e-03 5.940e-02 7.323e+02 -0.078 0.9380
STANDING.C 2.899e-03 5.560e-02 7.327e+02 0.052 0.9585
FIRST.CLASS1 2.643e-02 7.017e-02 7.308e+02 0.376 0.7068
CAREER.L 1.300e-01 5.917e-02 7.345e+02 2.189 0.0289 *
CAREER.Q 8.914e-04 7.370e-02 7.295e+02 0.012 0.9904
GENDER1 9.411e-02 5.892e-02 7.296e+02 1.596 0.1109
HS.COURSES.L -3.996e-02 7.819e-02 7.347e+02 -0.510 0.6102
HS.COURSES.Q 4.977e-02 6.674e-02 7.322e+02 0.745 0.4567
HS.COURSES.C 2.087e-02 5.735e-02 7.298e+02 0.364 0.7163
PARENT.LIVE1 5.770e-03 8.434e-02 7.296e+02 0.068 0.9455
CHILD.SETTING.L 1.241e-01 6.027e-02 7.288e+02 2.057 0.0400 *
CHILD.SETTING.Q -4.911e-02 4.879e-02 7.268e+02 -1.006 0.3146
ES.EXTRA.L 2.702e-02 8.202e-02 7.287e+02 0.329 0.7421
ES.EXTRA.Q 1.267e-01 7.761e-02 7.274e+02 1.631 0.1032
ES.EXTRA.C 8.317e-02 7.533e-02 7.287e+02 1.104 0.2701
TEACH.TAUGHT1 2.475e-01 6.316e-02 7.268e+02 3.918 9.79e-05 ***
SOME1ELSE.TAUGHT1 -1.818e-03 6.116e-02 7.277e+02 -0.030 0.9763
我的一些预测变量是有序的,如线性(.L
),二次(.Q
),有时是立方(.C
)条件所示,这些项是自动生成的他们。我的问题是:我怎样才能重新运行同样的回归删除,比如ES.EXTRA.C
一词?换句话说,我想抑制一个或多个自动生成的多项式对比,但可能保留其他的。我原以为update()
可以做到这一点,但我还没有能够让它发挥作用。
我无法分享我的实际数据,但此代码会创建一些类似的结果,并在下面包含smci的答案说明:
set.seed(151) #Lock in a fixed random structure to these data.
Y.data = sort(round(rnorm(100, 75, 10))) #Some random Y data that are basically the same form as mine.
X.data1 = as.ordered(rep(c(1,2,3,4), each=25)) #Some random X data that are similar in form to mine.
summary(lm(Y.data~X.data1)) #This is what I had been doing, albeit using lmer() instead of lm(). It looks to have been creating the polynomial terms automatically.
summary(lm(Y.data~poly(X.data1, 3))) #Returns an error because X.data1 is not numeric
summary(lm(Y.data~poly(as.numeric(X.data1), 3))) #Now returns a call very similar to the first one, but this time I am in control of which polynomial terms are included.
summary(lm(Y.data~poly(as.numeric(X.data1), 2))) #The cubic term is suppressed now, as desired.
作为后续行动,有没有办法使用poly()
来获得多项式项的某种混合?比方说,立方和第四力量只?我不知道为什么会这样做,但似乎值得了解......
答案 0 :(得分:1)
更新:发布代码后:
正如我猜测你正在使用序数变量的多项式构建模型:
fit <- lm(y ~ poly(STANDING,3) + FIRST.CLASS + poly(CAREER,2) + GENDER +
poly(HS.COURSES,3) + poly(CHILD.SETTING,2) + poly(ES.EXTRA,3) ...)
如果您想阻止立方术语,请使用poly(..., 2)
如果你真的只想要立方和四次项,没有二次或线性,那么hack就是使用I(STANDING^3) + I(STANDING^4)
,尽管那些将是原始多项式(不是正交,居中和缩放,就像poly()那样)。我从未见过这样的需要,听起来像是一个非常奇怪的请求。
见相关:
脚注:lmer()
适用于固定效果模型,如果您不知道它是什么,请不要使用它,请使用普通lm()
。