Por que precisamos descartar uma variável dummy?

16

Aprendi que, para criar um modelo de regressão, precisamos cuidar de variáveis ​​categóricas convertendo-as em variáveis ​​fictícias. Como exemplo, se, em nosso conjunto de dados, houver uma variável como local:

Location 
----------
Californian
NY
Florida

Temos que convertê-los como:

1  0  0
0  1  0
0  0  1

No entanto, foi sugerido que temos que descartar uma variável dummy, não importa quantas variáveis ​​dummy existem.

Por que precisamos descartar uma variável dummy?

Mithun Sarker Shuvro
fonte
3
Como o terceiro manequim pode ser explicado como a combinação linear dos dois primeiros: FL = 1 - (CA + NY).
Chaind
@chainD, mas qual é a explicação para mais de três variáveis ​​dummy?
Mithun Sarker Shuvro
2
Qualquer que seja o total, será apenas 1 a menos que o número total de categorias que você possui. Estendendo seu exemplo, digamos que todos os 50 estados foram representados no conjunto de dados. Para um determinado indivíduo, digamos que você observe os primeiros 49 manequins que são todos zeros, então você sabe que o último manequim é 1 mesmo sem olhar (supondo que todos no conjunto de dados sejam de um dos 50 estados). Em outras palavras, as informações do último manequim já estão contidas no resultado dos primeiros 49, por assim dizer.
Chaind
@chainD obrigado
Mithun Sarker Shuvro
11
se não é primavera, nem verão e nem outono, então é inverno!
1958 Stev

Respostas:

10

Simplificando, porque um nível de seu recurso categórico (aqui local) se torna o grupo de referência durante a codificação fictícia para regressão e é redundante. Estou citando a forma aqui "Uma variável categórica de categorias ou níveis K geralmente entra em uma regressão como uma sequência de variáveis ​​fictícias K-1. Isso equivale a uma hipótese linear sobre as médias de nível".

Isso já foi discutido nesta resposta muito legal de stats.stackexchange .

Me disseram que há um curso avançado da Yandex no Coursera que aborda esse assunto com mais detalhes, se você ainda tiver dúvidas, veja aqui . Observe que você sempre pode auditar o conteúdo do curso gratuitamente. ;-)

Outro bom post, se você quiser uma explicação completa com muitos exemplos com perspectiva estatística e não se limitando apenas à codificação fictícia, veja isso na UCLA (em R)

Observe que, se você estiver usando pandas.get_dummies, existe um parâmetro, ou drop_firstseja, para obter k-1 manequins de k níveis categóricos removendo o primeiro nível. Observe default = False, o que significa que a referência não é descartada e k são criados fora de k níveis categóricos!

TwinPenguins
fonte
4
Observe que isso só é verdade se o seu modelo tiver uma interceptação (ou seja, um termo constante). Caso contrário, usando a codificação one-hot e não descartando uma variável dummy, você estará adicionando implicitamente uma interceptação.
Elias Strehle