我想看看多元回归中的交互变量是否对整个样本有意义,然后仅对男性和女性都有意义。当我为整个样本创建交互变量时,我通过减去整个样本的平均值来使交互分量居中。
现在,当我想分别查看男性和女性时,我是否应该重新计算男性和女性特定的中心变量和交互变量,将它们与交互组件各自的男性和女性样本均值居中?
我想看看多元回归中的交互变量是否对整个样本有意义,然后仅对男性和女性都有意义。当我为整个样本创建交互变量时,我通过减去整个样本的平均值来使交互分量居中。
现在,当我想分别查看男性和女性时,我是否应该重新计算男性和女性特定的中心变量和交互变量,将它们与交互组件各自的男性和女性样本均值居中?
居中:居中不会改变您的交互效果的 r 平方变化的重要性。它也不会改变您为简单斜率分析获得的值。
因此,对于大多数目的来说,你是否居中并不重要。这既适用于一般分析,也适用于子组分析。
居中的主要好处是它可以使回归系数的解释更容易一些。如果你想比较这些系数在男性和女性之间的绝对大小,那么你应该只居中一次。
首选集成模型:
更好的建议是将性别包含在整体多元回归中。例如,如果您有DV、IV1和IV2并且gender您IV1 * IV2对每个 的交互感兴趣gender。我会检查各种模型,例如:
DV ~ IV1 + IV2 + gender
DV ~ IV1 * IV2 + gender
DV ~ IV1 * IV2 + gender * IV1 + gender*IV2
DV ~ IV1 * IV2 * gender
如果您通过某些交互获得了重要的性别,那么您可能希望使用单独的分析进一步探索这一点,但我将从整体集成模型开始。
说明关于居中预测器的要点:
以下代码返回交互效应模型的未居中和三个居中版本(全局、女性居中、男性居中)的 r 平方变化的 p 值和最终 r 平方。
library(MASS)
survey <- na.omit(survey)
head(survey)
x <- survey[, c('Sex', 'Wr.Hnd', 'NW.Hnd', 'Pulse')]
names(x) <- c('gender', 'iv1', 'iv2', 'dv')
x$scaled_iv1 <- scale(x$iv1, scale=FALSE)
x$scaled_iv2 <- scale(x$iv2, scale=FALSE)
x$female_scaled_iv1 <- scale(x$iv1, center=mean(x[x$gender == "Female", 'iv1']), scale=FALSE)
x$female_scaled_iv2 <- scale(x$iv2, center=mean(x[x$gender == "Female", 'iv2']), scale=FALSE)
x$male_scaled_iv1 <- scale(x$iv1, center=mean(x[x$gender == "Male", 'iv1']), scale=FALSE)
x$male_scaled_iv2 <- scale(x$iv2, center=mean(x[x$gender == "Male", 'iv2']), scale=FALSE)
compare_fits <- function(x) {
fit1 <- lm(dv ~ iv1+iv2, x)
fit2 <- lm(dv ~ iv1*iv2, x)
fit3 <- lm(dv ~ scaled_iv1*scaled_iv2, x)
fit4 <- lm(dv ~ male_scaled_iv1*male_scaled_iv2, x)
fit5 <- lm(dv ~ female_scaled_iv1*female_scaled_iv2, x)
results <- list()
results$p_normal <- anova(fit1, fit2)[2,6]
results$p_centered <- anova(fit1, fit3)[2,6]
results$p_centered_male <- anova(fit1, fit4)[2,6]
results$p_centered_female <- anova(fit1, fit5)[2,6]
results$rsq_normal <- summary(fit2)$r.squared
results$rsq_centered <- summary(fit3)$r.squared
results$rsq_centered_male <- summary(fit4)$r.squared
results$rsq_centered_female <- summary(fit5)$r.squared
unlist(results)
}
# The following results report p-values and rsq for final model
# using normal (i.e., uncentered) and centered predictors
compare_fits(x)
compare_fits(x[x$gender=='Male', ])
compare_fits(x[x$gender=='Female', ])
结果显示值在未居中和居中分析之间如何变化。
> compare_fits(x)
p_normal p_centered p_centered_male p_centered_female rsq_normal
0.241816265 0.241816265 0.241816265 0.241816265 0.009982317
rsq_centered rsq_centered_male rsq_centered_female
0.009982317 0.009982317 0.009982317
> compare_fits(x[x$gender=='Male', ])
p_normal p_centered p_centered_male p_centered_female rsq_normal
0.14034102 0.14034102 0.14034102 0.14034102 0.03055692
rsq_centered rsq_centered_male rsq_centered_female
0.03055692 0.03055692 0.03055692
> compare_fits(x[x$gender=='Female', ])
p_normal p_centered p_centered_male p_centered_female rsq_normal
0.5196788 0.5196788 0.5196788 0.5196788 0.0128802
rsq_centered rsq_centered_male rsq_centered_female
0.0128802 0.0128802 0.0128802