¿Por qué necesitamos descartar una variable ficticia?


16

Aprendí que, para crear un modelo de regresión, tenemos que ocuparnos de las variables categóricas convirtiéndolas en variables ficticias. Como ejemplo, si, en nuestro conjunto de datos, hay una variable como la ubicación:

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

Tenemos que convertirlos como:

1  0  0
0  1  0
0  0  1

Sin embargo, se sugirió que tenemos que descartar una variable ficticia, sin importar cuántas variables ficticias hay.

¿Por qué necesitamos descartar una variable ficticia?


3
Porque el tercer ficticio puede explicarse como la combinación lineal de los dos primeros: FL = 1 - (CA + NY).
chainD

@chainD pero, ¿cuál es la explicación de más de tres variables ficticias?
Mithun Sarker Shuvro

2
Cualquiera que sea el total, solo será 1 menos que el número total de categorías que tiene. Extendiendo su ejemplo, digamos que los 50 estados estaban representados en el conjunto de datos. Para un individuo determinado, digamos que mira los primeros 49 dummies que resultan ser todos ceros, luego sabe que el último dummy es un 1 incluso sin mirar (suponiendo que todos en el conjunto de datos sean de uno de los 50 estados). En otras palabras, la información del último maniquí ya está contenida en el resultado de los primeros 49, por así decirlo.
chainD

@chainD gracias
Mithun Sarker Shuvro

1
Si no es primavera, ni verano ni otoño, ¡es invierno!
Stev

Respuestas:


10

En pocas palabras, porque un nivel de su característica categórica (aquí ubicación) se convierte en el grupo de referencia durante la codificación ficticia para la regresión y es redundante. Estoy citando el formulario aquí "Una variable categórica de K categorías, o niveles, generalmente entra en una regresión como una secuencia de variables ficticias K-1. Esto equivale a una hipótesis lineal sobre las medias de nivel".

Esto ya se discutió en esta muy buena respuesta stats.stackexchange .

Yandex me dijo que hay un curso avanzado en Coursera que cubre este tema con más detalles si aún tiene dudas, consulte aquí . Tenga en cuenta que siempre puede auditar el contenido del curso de forma gratuita. ;-)

Otra buena publicación si desea una explicación exhaustiva con muchos ejemplos con perspectiva estadística y que no se limite solo a la codificación ficticia, consulte esto en UCLA (en R)

Tenga en cuenta que si está usando pandas.get_dummies, hay un parámetro, es decir, drop_firstpara obtener k-1 dummies de k niveles categóricos eliminando el primer nivel. Tenga en cuenta default = Falseque significa que la referencia no se descarta y que se crean k dummies a partir de k niveles categóricos.


44
Tenga en cuenta que esto solo es cierto si su modelo tiene una intersección (es decir, un término constante). De lo contrario, al usar una codificación en caliente y no descartar una variable ficticia, está agregando implícitamente una intercepción.
Elias Strehle

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.