Почему я не могу добавить фактор одного уровня в свой фильм?

Я выполняю регрессию и хочу добавить год в качестве фактора, но мой год составляет всего один год (2010), и когда я запускаю уравнение, я получаю сообщение об ошибке:

contrasts<- (tmp, value = contr.funs[1 + isOF[nn]]) : 
contrasts can be applied only to factors with 2 or more levels

Мое уравнение:

Lanu <- lm(YFT ~ PR1*factor(DN1)*factor(NTM1)*factor(AÑO1))

Все мои факторы имеют одинаковую длину, YFT — плотность, PR1 — глубину, фактор DN1 — два типа сети, а NTM1 — три положения. Я хочу знать, есть ли взаимодействие в моих факторах.


person user3817806    schedule 06.08.2014    source источник
comment
Вы не можете оценить взаимодействие с годом, если все ваши данные относятся к одному и тому же году. Попытка включить фактор, который имеет только один уровень, не имеет никакого статистического смысла в модели регрессии, подобной этой.   -  person MrFlick    schedule 06.08.2014
comment
Вы, по сути, спрашиваете, как мне сравнить 2010 год с другими годами, когда у меня есть данные только за 2010 год?   -  person thelatemail    schedule 06.08.2014


Ответы (1)


Поскольку у вас есть только 1 год, год будет просто константа. Не будет идентифицирующей вариации, на что @MrFlick намекает в своем комментарии. Вот почему вы получите сообщение об ошибке, если попытаетесь ввести контраст или подставить его в уравнение lm.

На самом деле вы не должны включать год, так как у вас нет разницы в годах.

Технически вы могли включить его в свою регрессию, если бы вы опустили константу по умолчанию (обычно называемую "бета-ноль"), которая рассчитывается как средний ответ, когда все значения предиктора равны нулю. Это было бы то же самое, что искусственно установить точку пересечения по оси y на 2010 год.

Трудно представить себе сценарий, в котором это было бы выгодно, и даже в этом случае у вас не было бы условий взаимодействия с константой.

Вот ваши варианты:

  1. Забудьте о включении года
  2. Получить больше лет
  3. Используйте 2010 в качестве y-перехвата: Lanu <- lm(YFT ~ 0 + PR1*factor(DN1)*factor(NTM1)*factor(AÑO1), offset=rep(2010, length(YFT))
  4. Используйте месяцы, кварталы или некоторые подразделения года вместо года

Обратите внимание, что добавление 0 + или - 1 к уравнению удаляет нормальное пересечение, а offset создает искусственное пересечение года.

person Hack-R    schedule 06.08.2014