我的模型包括一个响应变量,五个预测变量和一个预测变量_1和预测变量_2的交互项.我想为每个预测变量绘制部分残差图,我通常会使用crPlots包中的函数来实现car.不幸的是,该函数抱怨它不适用于包含交互项的模型.
有没有其他方式做我想要的?
编辑:我创建了一个说明问题的小例子
require(car)
R <- c(0.53,0.60,0.64,0.52,0.75,0.66,0.71,0.49,0.52,0.59)
P1 <- c(3.1,1.8,1.8,1.8,1.8,3.2,3.2,2.8,3.1,3.3)
P2 <- c(2.1,0.8,0.3,0.5,0.4,1.3,0.5,1.2,1.6,2.1)
lm.fit1 <- lm(R ~ P1 + P2)
summary(lm.fit1)
crPlots(lm.fit1) # works fine
lm.fit2 <- lm(R ~ P1*P2)
summary(lm.fit2)
crPlots(lm.fit2) # not available
Run Code Online (Sandbox Code Playgroud)
另一种方法是将交互项放在一个单独的变量中(避免破解代码crPlot(...)).
df <- data.frame(R,P1,P2,P1.P2=P1*P2)
lm.fit1 <- lm(R ~ ., df)
summary(lm.fit1)
crPlots(lm.fit1)
Run Code Online (Sandbox Code Playgroud)

请注意,summary(lm.fit1)结果完全相同summary(lm(R~P1*P2,df)).