La presente actividad tiene como objetivo realizar un análisis espacial de los proyectos de vivienda desarrollados en la ciudad de Cali, integrando información geográfica con datos asociados a la oferta inmobiliaria. A partir del uso de herramientas SIG y técnicas estadísticas espaciales, se busca identificar patrones de distribución de los proyectos habitacionales y posibles concentraciones de oferta. Para ello, se emplean datos georreferenciados y shapefiles oficiales, permitiendo visualizar, depurar y analizar los puntos de ubicación con base en su valor de oferta y su distribución en el territorio urbano de la ciudad.

# 1. Cargar paquetes necesarios
library(spatstat)
library(spatstat.geom)
library(spatstat.explore)
library(dplyr)
library(ggplot2)
library(sf)
library(tidyr)
# 2. Leer el archivo CSV con ruta completa
archivo <- "C:/Users/Fabio/OneDrive/Desktop/Analisis de informacion geografica y espacial/Actividad 4/Proyectos_de_vivienda_en_Cali.csv"
vivienda_cali <- read.csv(archivo, encoding = "UTF-8")

# 3. Cargar shapefile de cali
comunas <- st_read("C:/Users/Fabio/OneDrive/Desktop/Analisis de informacion geografica y espacial/Casos/cali/Comunas.shp")
## Reading layer `Comunas' from data source 
##   `C:\Users\Fabio\OneDrive\Desktop\Analisis de informacion geografica y espacial\Casos\cali\Comunas.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 22 features and 4 fields
## Geometry type: POLYGON
## Dimension:     XY
## Bounding box:  xmin: 1053868 ymin: 860190.2 xmax: 1068492 ymax: 879441.5
## Projected CRS: MAGNA_Colombia_Cali
head(vivienda_cali)
##     long    lat oferta Ciudad  Zona Estrato              Barrio
## 1 76.540 3.4530      3   CALI Oeste       6           NORMANDIA
## 2 76.541 3.4532      6   CALI Oeste       6           NORMANDIA
## 3 76.518 3.3542      2   CALI   Sur       5    CIUDAD_BOCHALEMA
## 4 76.524 3.3760      4   CALI   Sur       5                LILI
## 5 76.554 3.4575      7   CALI Oeste       6           AGUACATAL
## 6 76.530 3.3435      3   CALI   Sur       6 PARCELACIONES PANCE
vivienda <- vivienda_cali



# 4. Definir ventana de observación
# Espacio rectangular que contiene todos los puntos
xrange <- range(vivienda$long)
yrange <- range(vivienda$lat)
ventana <- owin(xrange, yrange)
# 5. Crear patrón de puntos sin marcar
patron <- ppp(x = vivienda$long, y = vivienda$lat, window = ventana)
## Warning: data contain duplicated points
# 6. Test de Chi-cuadrado (quadrat test) para evaluar aleatoriedad espacial
quadrat_test <- quadrat.test.ppp(patron, nx = 4, ny = 4)
## Warning: Some expected counts are small; chi^2 approximation may be inaccurate
print(quadrat_test)
## 
##  Chi-squared test of CSR using quadrat counts
## 
## data:  patron
## X2 = 61.143, df = 15, p-value = 3.205e-07
## alternative hypothesis: two.sided
## 
## Quadrats: 4 by 4 grid of tiles
# 7. Visualizar patrón y cuadrantes
plot(patron, main = "Patrón espacial de proyectos de vivienda",
     cols = "blue", pch = 10)

El Patrón es agregado.

# 10. Densidad kernel (mapa de calor)
densidad_kernel <- density(patron, sigma = 0.01)
plot(densidad_kernel, main = "Mapa de calor de concentración de proyectos")
contour(densidad_kernel, add = TRUE)

# 11. Interpretación del resultado
cat("\n--- INTERPRETACIÓN ---\n")
## 
## --- INTERPRETACIÓN ---
if (quadrat_test$p.value < 0.05) {
  cat("El patrón NO es aleatorio (p < 0.05).\n")
} else {
  cat("No hay evidencia suficiente para rechazar la hipótesis de aleatoriedad.\n")
}
## El patrón NO es aleatorio (p < 0.05).

El análisis de densidad espacial mediante el método kernel refuerza la evidencia de aglomeración de proyectos de vivienda en ciertas zonas de Cali. El mapa de calor revela áreas de alta intensidad de concentración, especialmente en sectores específicos del territorio, donde el número de ofertas por unidad de superficie es significativamente mayor. Esto indica que los desarrollos habitacionales no se distribuyen de forma homogénea en el espacio, sino que tienden a concentrarse en núcleos urbanos estratégicos, probablemente influenciados por factores como accesibilidad, infraestructura, normativas de uso del suelo o demanda del mercado inmobiliario. En conjunto con los resultados del test de cuadrantes y las funciones K y G, esta visualización respalda la conclusión de un patrón espacial agregado en la distribución de proyectos de vivienda.

# 8. Crear patrón de puntos ponderado por oferta
patron_marcado <- ppp(x = vivienda$long, y = vivienda$lat,
                      window = ventana,
                      marks = vivienda$oferta)
## Warning: data contain duplicated points
# 8. Función K de Ripley (para ver si hay agrupamiento)
Kest_result <- Kest(patron_marcado, correction = "border")
plot(Kest_result, main = "Función K de Ripley", legend = FALSE)

# 9. Función G de distribución de distancias entre vecinos más cercanos
G_result <- Gest(patron_marcado)
plot(G_result, main = "Función G - Vecino más cercano")

El análisis anterior revela que la distribución de las ofertas de vivienda en Cali presenta un patrón agregado, descartando la hipótesis de aleatoriedad. El test de chi-cuadrado mostró una distribución desigual de eventos por cuadrante (p < 0.05), mientras que las funciones K de Ripley y G del vecino más cercano evidenciaron una mayor concentración de eventos a corta distancia en comparación con un patrón de Poisson aleatorio. Estos resultados sugieren que los proyectos de vivienda tienden a agrupamientos espaciales, influenciados probablemente por factores socioeconómicos, de infraestructura o de planificación urbana.