0

我正在使用 R 中汽车包中 Prestige 数据集中的模型。

library(car)
library(carData)

data = na.omit(Prestige)
prestige = data$prestige
income = data$income
education = data$education
type = data$type

我正在尝试拟合模型lm(prestige ~ income + education + type + income:type + education:type)。对于课程,我从完整模型开始,然后逐渐缩小到较小的模型,只是向后选择。根据 p 值,最不有用的协变量之一是education:typeprof. 我如何从模型中删除该协变量而不删除所有的教育:类型交互?一般来说,您如何排除与因素的相互作用?我看到了一个指定要排除哪些交互的函数的答案, update但在我的情况下它不起作用。也许我执行不正确。

fit4 = lm(prestige ~ income + education + type + income:type + education:type)
newfit = update(fit4, . ~ . - education:typeprof)

不幸的是,这对我不起作用。

4

1 回答 1

0

因此,有一种方法可以删除单个交互项。假设你有线性模型

fullmodel = lm(y_sim ~ income + education + type + income:type + education:type - 1)

您可以调用model.matrixwhichfullmodel将为您提供线性模型的 X 矩阵。从那里您可以指定要删除的列并重新调整模型。

X = model.matrix(fullmodel)
drop = which(colnames(X) == 'education:typeprof')
X1 = X[,-1]
newfit = lm(presitge ~ X1 - 1)
于 2018-09-27T17:28:28.313 回答