У меня есть независимая переменная под названием «качество»; эта переменная имеет 3 способа реагирования (плохое качество; среднее качество; высокое качество). Я хочу ввести эту независимую переменную в мою множественную линейную регрессию. Когда у меня есть двоичная независимая переменная (фиктивная переменная, я могу кодировать 0
/ 1
), ее легко ввести в модель множественной линейной регрессии.
Но с 3 способами ответа я попытался закодировать эту переменную следующим образом:
Bad quality Medium quality High quality
0 1 0
1 0 0
0 0 1
0 1 0
Но есть проблема, когда я пытаюсь сделать мою множественную линейную регрессию: модальность Medium quality
дает мне NA
:
Coefficients: (1 not defined because of singularities)
Как я могу закодировать эту переменную "качество" с 3 модальностями? Нужно ли создавать переменную как фактор ( factor
в R
), но тогда я могу ввести этот фактор в множественной линейной регрессии?
Ответы:
Проблема, с которой вы сталкиваетесь (т. Е. «Особенности»), может рассматриваться как пример мультиколлинеарности . Мультиколлинеарность часто определяется как:
Это, на самом деле, довольно строгое определение; это идеальная мультиколлинеарность, и вы можете легко столкнуться с проблемой мультиколлинеарности, если ни одна из ваших переменных не будет идеальной линейной комбинацией других. Более того, совершенная мультиколлинеарность встречается редко. Однако вы наткнулись на случай, когда это может произойти. Давайте посмотрим , как мы можем совершенно предсказатьY X1 X2
medium quality
из наших знаний о двух других категорий (мы будем делать это с помощью регрессионной модели , гдеmedium quality
есть , и & являются X 1 и X 2 , соответственно): Y = β 0 + β 1bad quality
high quality
Обратите внимание на то, что термин ошибки ε не указан, потому что мы можем предсказать это идеально. Для этого мы устанавливаем β 0 = 1 , β 1 = - 1 и β 2 = - 1 . Теперь, когда у вас есть, то X 1 = 1 , что сводит на нет β 0 (
bad quality
medium quality
R
, вы можете использоватьfactor
иR
сделаю все это для вас - это будет сделано правильно, и это намного удобнее - тем не менее, стоит понимать, что это то, что происходит «за кадром».источник
lm
формуле (+ 0
), это будет работать?@gung четко объяснил теорию. Вот практический пример для иллюстрации:
bad
Теперь, если мы сами кодируем фиктивные переменные и попытаемся подобрать модель, используя все из них:
Мы получаем ожидаемую ошибку:
singular fit encountered
источник
factor
как правило, позаботится о фиктивном кодировании переменных для вас, но хорошо знать, что происходит «под капотом».