Hogares por régimen de tenencia de la vivienda y grado de urbanización
Hogares por régimen de tenencia de la vivienda y grado de urbanización¶
Este archivo (ver imagen de la tabla al final del documento) contiene el resumen de Hogares por régimen de tenencia de la vivienda y grado de urbanización de España en el año 2024, obtenidos de la Encuesta de Condiciones de Vida del INE. Le pido a la IA que me de código python para hacer un análisis de correspondencias del mismo, Explicar los resultados, Mostrar la tabla.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
import seaborn as sns
# Crear el DataFrame con los datos
data = {
'Tipo_Area': ['Área densamente poblada', 'Área poblada nivel intermedio', 'Área poco poblada'],
'Propiedad_sin_hipoteca': [47.2, 47.5, 58.5],
'Propiedad_con_hipoteca': [24.6, 26.9, 20.1],
'Alquiler_mercado': [19.3, 16.4, 8.8],
'Alquiler_inferior': [4.2, 2.6, 2.1],
'Cesión': [4.6, 6.6, 10.6]
}
df = pd.DataFrame(data)
df.set_index('Tipo_Area', inplace=True)
print("Tabla original:")
print(df)
print("\n" + "="*80 + "\n")
# Análisis de Correspondencias Múltiples (ACM)
# Estandarizar los datos
scaler = StandardScaler()
data_std = scaler.fit_transform(df)
# Realizar PCA
pca = PCA()
pca.fit(data_std)
# Obtener componentes principales
components = pca.transform(data_std)
# Crear DataFrame para los resultados
pca_df = pd.DataFrame(components[:, :2],
index=df.index,
columns=['Dimensión 1', 'Dimensión 2'])
# Coordenadas de las variables
loadings = pca.components_.T * np.sqrt(pca.explained_variance_)
loadings_df = pd.DataFrame(loadings[:, :2],
index=df.columns,
columns=['Dimensión 1', 'Dimensión 2'])
# Resultados del análisis
print("Varianza explicada por cada dimensión:")
for i, var in enumerate(pca.explained_variance_ratio_):
print(f"Dimensión {i+1}: {var:.3f} ({var*100:.1f}%)")
print(f"\nVarianza total explicada: {sum(pca.explained_variance_ratio_[:2]):.3f} ({sum(pca.explained_variance_ratio_[:2])*100:.1f}%)")
print("\nCoordenadas de las áreas:")
print(pca_df)
print("\nCoordenadas de las modalidades de tenencia:")
print(loadings_df)
# Visualización
plt.figure(figsize=(12, 8))
# Graficar áreas
plt.scatter(pca_df['Dimensión 1'], pca_df['Dimensión 2'],
s=100, alpha=0.7, color='blue')
for i, txt in enumerate(pca_df.index):
plt.annotate(txt, (pca_df['Dimensión 1'].iloc[i], pca_df['Dimensión 2'].iloc[i]),
xytext=(10, 5), textcoords='offset points', fontsize=10)
# Graficar modalidades de tenencia
plt.scatter(loadings_df['Dimensión 1'], loadings_df['Dimensión 2'],
s=100, alpha=0.7, color='red', marker='s')
for i, txt in enumerate(loadings_df.index):
plt.annotate(txt, (loadings_df['Dimensión 1'].iloc[i], loadings_df['Dimensión 2'].iloc[i]),
xytext=(10, 5), textcoords='offset points', fontsize=10, color='red')
# Líneas desde el origen
for i in range(len(loadings_df)):
plt.arrow(0, 0, loadings_df['Dimensión 1'].iloc[i], loadings_df['Dimensión 2'].iloc[i],
head_width=0.05, head_length=0.1, fc='red', ec='red', alpha=0.5)
plt.axhline(y=0, color='gray', linestyle='--', alpha=0.7)
plt.axvline(x=0, color='gray', linestyle='--', alpha=0.7)
plt.xlabel(f'Dimensión 1 ({pca.explained_variance_ratio_[0]*100:.1f}%)')
plt.ylabel(f'Dimensión 2 ({pca.explained_variance_ratio_[1]*100:.1f}%)')
plt.title('Análisis de Correspondencias - Régimen de Tenencia de Vivienda')
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
# Análisis adicional - Contribuciones
print("\nContribuciones de las áreas a las dimensiones:")
contributions = (components**2) / np.sum(components**2, axis=0)
contrib_df = pd.DataFrame(contributions[:, :2] * 100,
index=df.index,
columns=['Dimensión 1 (%)', 'Dimensión 2 (%)'])
print(contrib_df.round(1))
print("\nContribuciones de las modalidades a las dimensiones:")
var_contributions = (loadings**2) / np.sum(loadings**2, axis=0)
var_contrib_df = pd.DataFrame(var_contributions[:, :2] * 100,
index=df.columns,
columns=['Dimensión 1 (%)', 'Dimensión 2 (%)'])
print(var_contrib_df.round(1))
Tabla original:
Propiedad_sin_hipoteca Propiedad_con_hipoteca \
Tipo_Area
Área densamente poblada 47.2 24.6
Área poblada nivel intermedio 47.5 26.9
Área poco poblada 58.5 20.1
Alquiler_mercado Alquiler_inferior Cesión
Tipo_Area
Área densamente poblada 19.3 4.2 4.6
Área poblada nivel intermedio 16.4 2.6 6.6
Área poco poblada 8.8 2.1 10.6
================================================================================
Varianza explicada por cada dimensión:
Dimensión 1: 0.870 (87.0%)
Dimensión 2: 0.130 (13.0%)
Dimensión 3: 0.000 (0.0%)
Varianza total explicada: 1.000 (100.0%)
Coordenadas de las áreas:
Dimensión 1 Dimensión 2
Tipo_Area
Área densamente poblada 1.988743 0.842607
Área poblada nivel intermedio 0.891666 -1.087673
Área poco poblada -2.880409 0.245065
Coordenadas de las modalidades de tenencia:
Dimensión 1 Dimensión 2
Propiedad_sin_hipoteca -1.201969 0.235099
Propiedad_con_hipoteca 1.040659 -0.645777
Alquiler_mercado 1.222943 0.066405
Alquiler_inferior 1.010257 0.692374
Cesión -1.216369 -0.142993
Contribuciones de las áreas a las dimensiones:
Dimensión 1 (%) Dimensión 2 (%)
Tipo_Area
Área densamente poblada 30.3 36.4
Área poblada nivel intermedio 6.1 60.6
Área poco poblada 63.6 3.1
Contribuciones de las modalidades a las dimensiones:
Dimensión 1 (%) Dimensión 2 (%)
Propiedad_sin_hipoteca 22.1 5.7
Propiedad_con_hipoteca 16.6 42.7
Alquiler_mercado 22.9 0.5
Alquiler_inferior 15.6 49.1
Cesión 22.7 2.1
Análisis de Correspondencias - Régimen de Tenencia de Vivienda en España (2024)¶
️ Descripción de la Imagen y Análisis¶
La imagen muestra el plano factorial resultante del análisis de correspondencias aplicado a los datos de régimen de tenencia de vivienda según el grado de urbanización en España.
Interpretación de los Resultados:¶
Ejes Principales:
- Dimensión 1 (87.0%): Este eje principal explica la mayor parte de la variabilidad y representa el continuo urbano-rural
- Dimensión 2: Complementa la interpretación con patrones secundarios de tenencia
Agrupamientos y Asociaciones:
| Área/Modalidad | Posición | Asociaciones Principales |
|---|---|---|
| Área poco poblada | Izquierda | Fuertemente asociada con Propiedad sin hipoteca |
| Área densamente poblada | Derecha | Relacionada con Alquiler a precio de mercado |
| Área de nivel intermedio | Centro | Asociada con Propiedad con hipoteca |
| Cesión | Periferia | Modalidad menos común, con patrón diferenciado |
Patrones Identificados:¶
Gradiente Urbano-Rural Clarísimo:
- Las áreas poco pobladas se caracterizan por alta propiedad sin hipoteca (58.5%)
- Las áreas densamente pobladas muestran mayor diversidad de tenencia con predominio de alquileres
Transición Progresiva:
- El área de nivel intermedio ocupa una posición transitional entre ambos extremos
- Muestra valores intermedios en todas las modalidades de tenencia
Modalidades Periféricas:
- La "Cesión" de vivienda aparece como modalidad minoritaria y diferenciada
- El "Alquiler inferior al precio de mercado" también muestra un patrón distintivo
️ Implicaciones Socioeconómicas:¶
- Áreas rurales: Predomina la propiedad libre de deudas, sugiriendo patrimonios consolidados
- Áreas urbanas: Mayor presencia de alquiler y propiedad con hipoteca, indicando dinamismo económico y movilidad
- Áreas intermedias: Representan el equilibrio entre ambos modelos, con importante presencia de hipotecas
Este análisis confirma la fuerte relación entre el grado de urbanización y los patrones de tenencia de vivienda en España, reflejando diferentes realidades económicas y sociales en cada tipo de territorio.
Nota: Los porcentajes entre paréntesis indican la varianza explicada por cada dimensión del análisis.
Comentarios
Publicar un comentario