Это очень хорошее объяснение, но позвольте мне добавить еще одну вещь, когда в процессе выбора значимых предикторов ,
Давайте снова рассмотрим следующую модель:
fit1 <- lm(y ~ x + x:z)
#Coefficients:
#(Intercept) x x:zb
# 0.1989 -0.1627 -0.5456
Предположим, что основной эффект x
не является статистически значимым, и вы хотите, чтобы избавиться от него. Наиболее интуитивная вещь, для меня, по крайней мере, чтобы написать вторую модель, как и выше:
fit2 <- lm(y ~ x:z)
#Coefficients:
#(Intercept) x:za x:zb
# 0.1989 -0.1627 -0.7082
, который в конечном счете ставит назад главный эффект замаскирован как взаимодействие с исходным уровнем фактора. Теперь единственным решением, которое я смог найти, чтобы действительно не включать основные эффекты, является использование lm.fit
, который, как вы все знаете, не возвращает объект класса lm
, а list
. Поэтому возникает вопрос: знаете ли вы какой-либо метод, чтобы избавиться от основных эффектов, не потеряв класс lm
?
if 'fz <- factor (z)' (только для обозначения), то 'x: fz' должен работать в одном смысле (он изменяет изменчивость данных по-разному), но он построит модель, которая * эквивалент * с точки зрения сложности, доброты и т. д. на 'x * fz'. –
@ ZheyuanLi да, это правильно, Бен правильный? – robertevansanders