Saltar al contenido
Métodos de Econometría Aplicada con Python

Regresión lineal con variables categóricas y no lineales.

Introducción

La regresión lineal es una herramienta poderosa en el análisis de datos y la econometría. Permite estimar la relación entre una variable dependiente y una o más variables independientes.

Sin embargo, en muchos casos, las relaciones entre estas variables pueden ser no lineales o incluir variables categóricas (nominales o ordinales). En estos casos, la regresión lineal tradicional puede no ser suficiente. Existen diferentes enfoques para enfrentar esta situación.

Uno de ellos es utilizar la regresión lineal con variables categóricas, que implica la creación de variables ficticias para cada categoría y agregarlas a la regresión. Por otro lado, para capturar las relaciones no lineales, se pueden utilizar diferentes técnicas, como la transformación de variables o la regresión polinómica. Además, existen modelos más avanzados, como la regresión logística, que es útil para modelar relaciones no lineales entre variables binarias, y modelos no paramétricos, como la regresión de splines y la regresión localmente ponderada.

En resumen, al enfrentar datos con relaciones no lineales o variables categóricas, es importante tener en cuenta estas técnicas avanzadas de regresión para lograr una comprensión más precisa de los patrones y tendencias subyacentes en los datos.

Resumen

La regresión lineal es un modelo estadístico que se utiliza para predecir una variable continua en función de una o varias variables independientes. Sin embargo, en muchas situaciones, las variables independientes pueden ser categóricas o no lineales.

Por ejemplo, en un estudio económico, podríamos querer predecir los ingresos de una persona en función de su nivel educativo, género y edad. En este caso, la variable "género" es categórica y "edad" es una variable no lineal. Para manejar estas variables en un modelo de regresión lineal, existen varias técnicas. Una técnica común es crear variables ficticias o "dummies" para las variables categóricas. Estas variables toman el valor de 1 si la observación pertenece a esa categoría y 0 en caso contrario.

Por ejemplo, para la variable "género" podríamos crear dos variables dummy, "mujer" y "hombre", y asignarles un valor de 1 a la variable que corresponde y un valor de 0 a la otra. De esta manera, podemos incluir estas variables en el modelo y medir su efecto sobre la variable dependiente. Para variables no lineales, se puede utilizar una técnica llamada "transformación de variables".

Esto implica aplicar una función matemática a la variable independiente no lineal para que se ajuste mejor al modelo lineal. Por ejemplo, si la variable "edad" no parece tener una relación lineal con la variable dependiente, podemos aplicar una transformación logarítmica a esta variable para que se ajuste mejor. Otra técnica que se puede utilizar en la regresión lineal con variables no lineales es la "regresión polinómica".

En lugar de ajustar una línea recta, se ajusta una curva polinómica que mejor se ajusta a los datos. Esto puede incluir variables cuadráticas, cúbicas o de la forma que mejor se ajuste a los datos.

En resumen, para la regresión lineal con variables categóricas y no lineales, se pueden utilizar técnicas como la creación de variables dummy, la transformación de variables y la regresión polinómica. Estas técnicas permiten que las variables no lineales y categóricas sean incluidas en el modelo y se puedan evaluar sus efectos sobre la variable dependiente.

Aplicación teórica

Variables Dummy en la Regresión Lineal

Las variables dummy (o variables indicadoras) son una herramienta esencial en la regresión lineal para manejar datos categóricos. Estas variables permiten que las categorías cualitativas sean incluidas en un modelo de regresión, facilitando la estimación de sus efectos en una variable dependiente continua. A continuación, se explora en detalle cómo se utilizan las variables dummy en la regresión lineal, su definición matemática y cómo se interpretan.

Definición y Creación de Variables Dummy

Una variable dummy es una variable binaria que toma el valor de 1 si una observación pertenece a una categoría específica y 0 en caso contrario. En términos matemáticos, si se tiene una variable categórica con \( k \) categorías, se necesitan \( k-1 \) variables dummy para representar todas las categorías sin introducir colinealidad perfecta (también conocida como trampa de la variable ficticia).

Por ejemplo, supongamos que tenemos una variable categórica que representa el color de un coche con tres categorías: Rojo, Azul y Verde. Para incluir esta variable en un modelo de regresión, se crean dos variables dummy:

- \( D_1 \): Variable dummy para la categoría Rojo (toma el valor de 1 si el coche es Rojo, 0 en caso contrario).
- \( D_2 \): Variable dummy para la categoría Azul (toma el valor de 1 si el coche es Azul, 0 en caso contrario).

La categoría Verde es representada implícitamente cuando ambas variables dummy son 0. Esto evita la colinealidad perfecta y permite que el modelo ajuste una categoría de referencia.

Inclusión en el Modelo de Regresión

En un modelo de regresión lineal, una variable dummy se incluye como una variable explicativa para capturar el efecto de las categorías sobre la variable dependiente. Si se tiene una variable dependiente \( Y \) y una variable categórica con \( k \) categorías, el modelo de regresión puede ser expresado como:

\[
Y_i = \beta_0 + \beta_1 D_{i1} + \beta_2 D_{i2} + \cdots + \beta_{k-1} D_{i(k-1)} + \varepsilon_i
\]

Donde:
- \( \beta_0 \) es el intercepto.
- \( \beta_j \) (para \( j = 1, \ldots, k-1 \)) son los coeficientes asociados con las variables dummy.
- \( D_{ij} \) son las variables dummy que indican la presencia de la \( j \)-ésima categoría.
- \( \varepsilon_i \) es el término de error.

El coeficiente \( \beta_j \) para cada variable dummy mide el efecto adicional de la categoría representada por \( D_{ij} \) en la variable dependiente \( Y \), en comparación con la categoría de referencia.

Interpretación de los Coeficientes

La interpretación de los coeficientes en un modelo que incluye variables dummy se realiza en comparación con la categoría de referencia (la categoría para la cual todas las variables dummy son 0). Por ejemplo:

- Si el coeficiente \( \beta_1 \) asociado con \( D_1 \) (Rojo) es 5, esto significa que, en promedio, los coches rojos tienen un valor de \( Y \) que es 5 unidades mayor que los coches de la categoría de referencia (Verde), manteniendo constantes otras variables.
- Si el coeficiente \( \beta_2 \) asociado con \( D_2 \) (Azul) es -3, esto indica que los coches azules tienen un valor de \( Y \) que es 3 unidades menor que los coches de la categoría de referencia (Verde), manteniendo constantes otras variables.

Ejemplo Matemático

Supongamos que estamos analizando el precio de venta de coches en función de su color y se tiene el siguiente modelo de regresión:

\[
\text{Precio} = \beta_0 + \beta_1 \text{Rojo} + \beta_2 \text{Azul} + \varepsilon
\]

Donde:
- Rojo es una variable dummy que toma el valor 1 si el coche es rojo y 0 si no lo es.
- Azul es una variable dummy que toma el valor 1 si el coche es azul y 0 si no lo es.

Si los resultados de la regresión muestran que \( \beta_0 = 20,000 \), \( \beta_1 = 2,000 \), y \( \beta_2 = -1,000 \), entonces:

- El precio base (para coches que no son ni rojos ni azules, por ejemplo, verdes) es 20,000.
- Los coches rojos tienen un precio promedio de 22,000 (20,000 + 2,000) en comparación con los coches verdes.
- Los coches azules tienen un precio promedio de 19,000 (20,000 - 1,000) en comparación con los coches verdes.

Conclusión

Las variables dummy son una herramienta poderosa en la regresión lineal para incorporar variables categóricas y evaluar sus efectos sobre una variable dependiente. La adecuada creación y uso de estas variables permite una interpretación clara de los efectos de diferentes categorías y proporciona una base sólida para el análisis de datos cualitativos en modelos cuantitativos.

 

 Interacción entre Variables Categóricas y Continuas

En modelos de regresión lineal, es común encontrarse con situaciones donde tanto variables categóricas como continuas influyen en la variable dependiente. Además de evaluar el efecto individual de cada tipo de variable, es importante considerar las posibles **interacciones** entre estas variables. La interacción entre variables categóricas y continuas puede revelar cómo el efecto de una variable continua sobre la variable dependiente varía según los niveles de una variable categórica, y viceversa.

Definición de Interacción

La interacción entre una variable categórica y una variable continua ocurre cuando el efecto de una variable continua sobre la variable dependiente no es constante, sino que varía según el nivel de la variable categórica. Matemáticamente, esto se puede modelar añadiendo un término de interacción en la ecuación de regresión.

Modelado de la Interacción

Supongamos que queremos modelar la variable dependiente \( Y \) en función de una variable continua \( X \) y una variable categórica con \( k \) categorías, denotada como \( C \). Si usamos variables dummy para representar la variable categórica, el modelo de regresión con interacción se puede expresar como:

\[
Y_i = \beta_0 + \beta_1 X_i + \beta_2 D_{i1} + \beta_3 D_{i2} + \cdots + \beta_{k-1} D_{i(k-1)} + \gamma_1 (X_i \cdot D_{i1}) + \gamma_2 (X_i \cdot D_{i2}) + \cdots + \gamma_{k-1} (X_i \cdot D_{i(k-1)}) + \varepsilon_i
\]

Donde:
- \( \beta_0 \) es el intercepto.
- \( \beta_1 \) es el coeficiente de la variable continua \( X \).
- \( \beta_j \) (para \( j = 1, \ldots, k-1 \)) son los coeficientes de las variables dummy que representan la variable categórica.
- \( \gamma_j \) (para \( j = 1, \ldots, k-1 \)) son los coeficientes de los términos de interacción entre \( X \) y las variables dummy.
- \( \varepsilon_i \) es el término de error.

Interpretación de los Coeficientes

En el modelo anterior, los coeficientes de las variables dummy (\( \beta_j \)) representan el efecto promedio de cada categoría sobre \( Y \) en comparación con la categoría de referencia, manteniendo constante \( X \). Los coeficientes de interacción (\( \gamma_j \)) indican cómo el efecto de la variable continua \( X \) sobre \( Y \) cambia según el nivel de la variable categórica.

Por ejemplo, si \( \gamma_1 \) es el coeficiente asociado con la interacción entre \( X \) y \( D_{i1} \), entonces el efecto de \( X \) en la categoría representada por \( D_{i1} \) es \( \beta_1 + \gamma_1 \). Para la categoría de referencia (donde todas las variables dummy son 0), el efecto de \( X \) es simplemente \( \beta_1 \).

Ejemplo Matemático

Consideremos un ejemplo donde estamos analizando el efecto del número de horas de estudio (variable continua \( X \)) sobre las calificaciones (variable dependiente \( Y \)), y la variable categórica es el tipo de curso (por ejemplo, Matemáticas y Ciencias). Usamos dos variables dummy para representar el tipo de curso:

- \( D_1 \): Variable dummy para el curso de Matemáticas (1 si es Matemáticas, 0 si es Ciencias).
- \( D_2 \): Variable dummy para el curso de Ciencias (no se necesita porque es la categoría de referencia).

El modelo de regresión con interacción sería:

\[
Y_i = \beta_0 + \beta_1 X_i + \beta_2 D_{i1} + \gamma_1 (X_i \cdot D_{i1}) + \varepsilon_i
\]

Aquí, \( \beta_2 \) representa el cambio en la calificación promedio para los estudiantes de Matemáticas en comparación con los de Ciencias, y \( \gamma_1 \) muestra cómo el efecto de las horas de estudio en las calificaciones cambia para los estudiantes de Matemáticas en comparación con los de Ciencias.

Interpretación del Ejemplo

Supongamos que obtenemos los siguientes coeficientes:

- \( \beta_0 = 50 \)
- \( \beta_1 = 2 \)
- \( \beta_2 = 10 \)
- \( \gamma_1 = -0.5 \)

Entonces, el modelo es:

\[
Y_i = 50 + 2 X_i + 10 D_{i1} - 0.5 (X_i \cdot D_{i1}) + \varepsilon_i
\]

Para un estudiante de Matemáticas (\( D_{i1} = 1 \)):

- El efecto del número de horas de estudio en las calificaciones es \( 2 - 0.5 = 1.5 \) puntos por hora.
- La calificación base para un estudiante de Matemáticas con 0 horas de estudio es \( 50 + 10 = 60 \).

Para un estudiante de Ciencias (\( D_{i1} = 0 \)):

- El efecto del número de horas de estudio en las calificaciones es simplemente \( 2 \) puntos por hora.
- La calificación base para un estudiante de Ciencias con 0 horas de estudio es \( 50 \).

Conclusión

La inclusión de términos de interacción entre variables categóricas y continuas en un modelo de regresión lineal permite capturar y evaluar cómo el efecto de una variable continua sobre la variable dependiente puede variar según el nivel de una variable categórica. Esto proporciona una comprensión más detallada de cómo diferentes factores interactúan y afectan el resultado, lo que es crucial para realizar análisis precisos y tomar decisiones informadas basadas en los datos.

Regresión Polinómica

La regresión polinómica es una extensión de la regresión lineal que permite modelar relaciones no lineales entre una variable dependiente y una o más variables independientes. En lugar de ajustar una línea recta a los datos, la regresión polinómica ajusta una curva que puede captar la complejidad y la no linealidad en los datos. 

Definición Matemática

En la regresión polinómica, la relación entre la variable dependiente \( Y \) y una variable independiente \( X \) se modela mediante un polinomio de grado \( n \). Matemáticamente, el modelo polinómico de grado \( n \) se expresa como:

\[
Y_i = \beta_0 + \beta_1 X_i + \beta_2 X_i^2 + \cdots + \beta_n X_i^n + \varepsilon_i
\]

Donde:
- \( Y_i \) es la variable dependiente.
- \( X_i \) es la variable independiente.
- \( \beta_0, \beta_1, \ldots, \beta_n \) son los coeficientes del modelo.
- \( \varepsilon_i \) es el término de error.

Interpretación de los Coeficientes

En la regresión polinómica:
- \( \beta_0 \) es el intercepto del modelo.
- \( \beta_1 \) mide el cambio en \( Y \) con respecto a \( X \) cuando \( X \) cambia en una unidad, en el caso de un polinomio de primer grado.
- \( \beta_2 \) mide el efecto cuadrático de \( X \) en \( Y \), permitiendo capturar curvaturas en los datos. Para polinomios de mayor grado, los coeficientes adicionales miden efectos de orden superior.

El grado del polinomio determina la complejidad del modelo. Un polinomio de grado 2 es una parábola, mientras que un polinomio de grado 3 es una cúbica, y así sucesivamente. A medida que se aumenta el grado del polinomio, el modelo puede ajustarse mejor a los datos, pero también puede llevar al sobreajuste.

Ajuste del Modelo

El proceso de ajuste del modelo polinómico implica estimar los coeficientes \( \beta_0, \beta_1, \ldots, \beta_n \) utilizando métodos de estimación, como el método de los mínimos cuadrados. Esto se realiza minimizando la suma de los cuadrados de las diferencias entre los valores observados \( Y_i \) y los valores predichos por el modelo.

Ejemplo Matemático

Consideremos un conjunto de datos que sugiere una relación no lineal entre \( Y \) y \( X \). Si elegimos un polinomio de grado 2 (una parábola), el modelo sería:

\[
Y_i = \beta_0 + \beta_1 X_i + \beta_2 X_i^2 + \varepsilon_i
\]

Si después de ajustar el modelo obtenemos los coeficientes:

- \( \beta_0 = 1 \)
- \( \beta_1 = 2 \)
- \( \beta_2 = -0.5 \)

El modelo ajustado sería:

\[
Y_i = 1 + 2 X_i - 0.5 X_i^2
\]

Para un valor específico de \( X \), por ejemplo \( X = 3 \):

\[
Y = 1 + 2 \cdot 3 - 0.5 \cdot 3^2 = 1 + 6 - 4.5 = 2.5
\]

Esto muestra cómo la variable dependiente \( Y \) cambia en función de \( X \) en una relación cuadrática.

Visualización del Modelo

La visualización de un modelo de regresión polinómica puede mostrar cómo el ajuste del polinomio se adapta a los datos. Por ejemplo, un polinomio de grado 2 produce una parábola que puede capturar una relación curvada entre \( X \) y \( Y \). A medida que el grado del polinomio aumenta, la curva puede ajustarse más estrechamente a los puntos de datos, pero también puede empezar a capturar el ruido en los datos, lo que lleva al sobreajuste.

Conclusión

La regresión polinómica es una técnica poderosa para modelar relaciones no lineales entre variables. Al introducir términos polinómicos en el modelo de regresión, se permite capturar la complejidad en los datos que no puede ser representada por una simple línea recta. Sin embargo, es importante seleccionar el grado del polinomio de manera cuidadosa para evitar el sobreajuste y asegurar que el modelo sea interpretable y generalizable.

Aplicación práctica

Para realizar una regresión lineal con variables categóricas y no lineales en Python, podemos utilizar la librería `sklearn`. Para este ejemplo, utilizaremos el conjunto de datos `Boston Housing` que se encuentra en la librería `sklearn.datasets`.

Este conjunto de datos contiene información sobre precios de viviendas en Boston y diferentes características como la tasa de criminalidad per cápita, la proporción de terreno residencial asignado a lotes mayores de 25,000 pies cuadrados, entre otras variables cuantitativas y categóricas.

Comenzamos por importar las librerías necesarias y cargar el conjunto de datos:


from sklearn.datasets import load_boston 
import pandas as pd 
boston = load_boston() 
df = pd.DataFrame(boston.data, columns=boston.feature_names) 
df['MEDV'] = boston.target 

A continuación, convertiremos la variable `CHAS` (que indica si una propiedad limita con el río Charles o no) en una variable categórica y crearemos una variable no lineal utilizando la función logarítmica en la variable `LSTAT` (la cual indica la proporción de propietarios en el vecindario con un nivel socioeconómico bajo).


df['CHAS'] = df['CHAS'].astype('category') 
df['LSTAT_log'] = np.log(df['LSTAT']) 

Luego, crearemos nuestra matriz de características X (que incluirá la variable categórica y la variable no lineal) y nuestra variable objetivo y (precios de viviendas).


X = df[['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT_log']] 
y = df['MEDV'] 

Para crear nuestra regresión lineal, necesitamos ajustar un modelo utilizando la función `LinearRegression` de `sklearn`. Sin embargo, antes de ajustar el modelo, debemos convertir la variable categórica en variables dummies (variables binarias que indican si una observación pertenece a una categoría particular o no). Esto se puede lograr usando la función `get_dummies` de `pandas`.


X_dummies = pd.get_dummies(X, drop_first=True) 

`drop_first=True` se utiliza para evitar la multicolinealidad en el modelo.

Con esto, ajustamos nuestra regresión lineal:


from sklearn.linear_model import LinearRegression 
lr = LinearRegression() 
lr.fit(X_dummies, y)

 


print(lr.coef_) 

Esto nos dará una lista de coeficientes para cada variable en nuestro modelo. Los coeficientes positivos indican que una variable está correlacionada positivamente con el precio de una propiedad, mientras que los coeficientes negativos indican una correlación negativa. Los coeficientes más grandes (en valor absoluto) indican una mayor importancia de esa variable en el modelo.

Es importante tener en cuenta que, aunque el modelo es una regresión lineal, las variables categóricas y no lineales se han incluido en el modelo a través de la utilización de las variables dummies y la transformación logarítmica respectivamente.