Aplicación de Regresión Lineal en el Ámbito Bienes Raíces.
El ejemplo realizado
con el conjunto de datos y el código de regresión lineal ilustra el proceso de
construcción y evaluación de un modelo predictivo estadístico en el contexto de
precios de viviendas. Aquí hay un resumen del proceso y los hallazgos:
1. Creación de un Dataset
Simulado: Se generó un conjunto de datos ficticio con características que
comúnmente afectan el precio de las viviendas: el tamaño de la vivienda, el año
de construcción y la distancia al centro de la ciudad. Además, se incluyó una
variable dependiente, el precio de la vivienda, que se calculó usando una
relación lineal aproximada con las características mencionadas y algo de ruido
aleatorio para simular variabilidad realista.
Descargar DataSet Precios Viviendas - Regresion Lineal
2. División de Datos: Se
dividió el conjunto de datos en dos partes: una para entrenar el modelo (80%) y
otra para probar su rendimiento (20%).
3. Modelado de Regresión
Lineal: Se utilizó un modelo de regresión lineal para entender cómo las
características independientes (tamaño de la vivienda, año de construcción y
distancia al centro) pueden predecir el precio de la vivienda.
4. Evaluación del Modelo:
El modelo se evaluó usando métricas estándar: el Error Cuadrático Medio (MSE) y
el Coeficiente de Determinación (R²). El MSE fue relativamente alto, lo que
sugiere que el modelo puede no estar capturando toda la complejidad de los
datos. Un R² de aproximadamente 0.466 indica que el modelo puede explicar
alrededor del 46.6% de la variabilidad de los precios de las viviendas.
5. Desarrollo del Script
en Jupyter Notebook: Este código carga el dataset, entrena un modelo de regresión
lineal, evalúa su desempeño y luego muestra varios gráficos para analizar los
resultados. Asegúrate de tener las bibliotecas pandas, numpy, matplotlib, seaborn
y scikit-learn instaladas en tu entorno de Jupyter Notebook. También recuerda
ajustar la ruta al archivo CSV para que coincida con la ubicación en la que lo
guardaste.
# Importando las bibliotecas necesariasimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snsfrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LinearRegressionfrom sklearn.metrics import mean_squared_error, r2_score
# Carga el conjunto de datosdf = pd.read_csv('dataset_precios_viviendas.csv')
# Dividir los datos en características (X) y la variable objetivo (y)X = df[['Tamaño Vivienda', 'Año Construcción', 'Distancia Centro']]y = df['Precio']
# Dividir los datos en conjuntos de entrenamiento y pruebaX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# Crear y entrenar el modelo de regresión linealmodelo = LinearRegression()modelo.fit(X_train, y_train)
# Predecir los precios en el conjunto de pruebay_pred = modelo.predict(X_test)
# Calcular el error cuadrático medio y el coeficiente de determinación (R^2)mse = mean_squared_error(y_test, y_pred)r2 = r2_score(y_test, y_pred)
# Imprimir los resultadosprint("Error Cuadrático Medio (MSE):", mse)print("Coeficiente de Determinación (R²):", r2)
# Estableciendo el estilo de los gráficossns.set(style="whitegrid")
# Gráfico de Dispersión de las Predicciones vs Valores Realesplt.figure(figsize=(10, 6))plt.scatter(y_test, y_pred, alpha=0.6)plt.xlabel('Valores Reales')plt.ylabel('Predicciones')plt.title('Predicciones vs Valores Reales')plt.show()
# Gráfico de Residuosresiduos = y_test - y_predplt.figure(figsize=(10, 6))plt.scatter(y_pred, residuos, alpha=0.6)plt.xlabel('Predicciones')plt.ylabel('Residuos')plt.title('Gráfico de Residuos')plt.axhline(y=0, color='r', linestyle='--')plt.show()
# Histograma de los Residuosplt.figure(figsize=(10, 6))sns.histplot(residuos, kde=True)plt.title('Distribución de los Residuos')plt.xlabel('Residuos')plt.show()
# Gráfico de Importancia de las Características# (Solo aplicable si el modelo lo permite, en regresión lineal simple podríamos mirar los coeficientes)importance = modelo.coef_plt.figure(figsize=(10, 6))sns.barplot(x=X.columns, y=importance)plt.title('Importancia de las Características')plt.xlabel('Características')plt.ylabel('Importancia')plt.show()
6. Visualización de
Resultados: Se generaron cuatro tipos de gráficos para analizar el rendimiento
del modelo:
Un gráfico de
dispersión que compara las predicciones del modelo con los valores reales,
mostrando una dispersión relativamente uniforme pero con espacio para mejora.
Un gráfico de residuos
que ilustra la diferencia entre las predicciones y los valores reales,
indicando que no hay sesgos obvios en el modelo y que los errores están
relativamente bien distribuidos.
Un histograma de
residuos que sugiere que los errores del modelo se distribuyen de manera
aproximadamente normal, cumpliendo con uno de los supuestos clave de la
regresión lineal.
Un gráfico de
importancia de características que muestra la contribución relativa de cada
característica al precio de la vivienda, destacando que la distancia al centro
tiene el impacto más significativo (negativo) en el precio, seguido por el
tamaño de la vivienda (positivo) y el año de construcción (positivo).
Conclusión: Este ejemplo demuestra cómo se puede
aplicar un modelo de regresión lineal para predecir valores continuos, como
precios de bienes raíces, y cómo evaluar su rendimiento. Aunque el modelo
proporciona información valiosa sobre las relaciones entre las características
y el precio de la vivienda, también indica que hay otros factores no capturados
que podrían mejorar la precisión del modelo.
1. Creación de un Dataset Simulado: Se generó un conjunto de datos ficticio con características que comúnmente afectan el precio de las viviendas: el tamaño de la vivienda, el año de construcción y la distancia al centro de la ciudad. Además, se incluyó una variable dependiente, el precio de la vivienda, que se calculó usando una relación lineal aproximada con las características mencionadas y algo de ruido aleatorio para simular variabilidad realista.
Descargar DataSet Precios Viviendas - Regresion Lineal
2. División de Datos: Se
dividió el conjunto de datos en dos partes: una para entrenar el modelo (80%) y
otra para probar su rendimiento (20%).
3. Modelado de Regresión Lineal: Se utilizó un modelo de regresión lineal para entender cómo las características independientes (tamaño de la vivienda, año de construcción y distancia al centro) pueden predecir el precio de la vivienda.
4. Evaluación del Modelo:
El modelo se evaluó usando métricas estándar: el Error Cuadrático Medio (MSE) y
el Coeficiente de Determinación (R²). El MSE fue relativamente alto, lo que
sugiere que el modelo puede no estar capturando toda la complejidad de los
datos. Un R² de aproximadamente 0.466 indica que el modelo puede explicar
alrededor del 46.6% de la variabilidad de los precios de las viviendas.
5. Desarrollo del Script en Jupyter Notebook: Este código carga el dataset, entrena un modelo de regresión lineal, evalúa su desempeño y luego muestra varios gráficos para analizar los resultados. Asegúrate de tener las bibliotecas pandas, numpy, matplotlib, seaborn y scikit-learn instaladas en tu entorno de Jupyter Notebook. También recuerda ajustar la ruta al archivo CSV para que coincida con la ubicación en la que lo guardaste.
6. Visualización de
Resultados: Se generaron cuatro tipos de gráficos para analizar el rendimiento
del modelo:
Un gráfico de
dispersión que compara las predicciones del modelo con los valores reales,
mostrando una dispersión relativamente uniforme pero con espacio para mejora.
Un gráfico de
importancia de características que muestra la contribución relativa de cada
característica al precio de la vivienda, destacando que la distancia al centro
tiene el impacto más significativo (negativo) en el precio, seguido por el
tamaño de la vivienda (positivo) y el año de construcción (positivo).
Conclusión: Este ejemplo demuestra cómo se puede aplicar un modelo de regresión lineal para predecir valores continuos, como precios de bienes raíces, y cómo evaluar su rendimiento. Aunque el modelo proporciona información valiosa sobre las relaciones entre las características y el precio de la vivienda, también indica que hay otros factores no capturados que podrían mejorar la precisión del modelo.




