我正在使用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
。我如何只从模型中删除该协变量而又不消除所有Education:Type交互作用?一般来说,您如何排除与因素的相互作用?我看到了一个update
函数的答案,该函数指定要排除的交互,但在我的情况下不起作用。也许我执行不正确。
fit4 = lm(prestige ~ income + education + type + income:type + education:type)
newfit = update(fit4, . ~ . - education:typeprof)
不幸的是,这对我不起作用。
答案 0 :(得分:0)
因此,有一种方法可以删除单个交互项。假设您有线性模型
fullmodel = lm(y_sim ~ income + education + type + income:type + education:type - 1)
您可以在model.matrix
上调用fullmodel
,这将为您的线性模型提供X矩阵。从那里可以指定要删除的列并重新调整模型。
X = model.matrix(fullmodel)
drop = which(colnames(X) == 'education:typeprof')
X1 = X[,-1]
newfit = lm(presitge ~ X1 - 1)