1 IDENTIFICACIÓN Y JUSTIFICACIÓN DE LA VARIABLE

Variable de Estudio: Distancia a Carreteras (m).

Se determina que esta variable es Cuantitativa Continua. Representa el factor logístico de proximidad entre la infraestructura de generación y las vías de transporte.

Estrategia de Modelado Unificado:

Tras observar la distribución global, se detecta un comportamiento unimodal con un sesgo positivo extremo. Se aplica un Modelo Log-Normal Unificado. Esta decisión se justifica porque la distancia a vías sigue una dinámica de decaimiento natural: la inversión se concentra masivamente en el primer kilómetro por ahorro de costos operativos y de construcción, decayendo suavemente hacia zonas remotas. Un modelo único captura esta “ley de potencia” sin fragmentar la realidad física del terreno.

2 CARGA DE DATOS Y LIBRERÍAS

# Carga del archivo
Datos <- read.csv("Dataset_Mundial_Final.csv", sep = ";", dec = ",")

# Extraemos distancia, omitimos nulos y filtramos outliers
dist_full <- na.omit(as.numeric(Datos$dist_to_road))
dist_full <- dist_full[dist_full > 0] # Filtro para Log-Normal

Q1_d <- quantile(dist_full, 0.25); Q3_d <- quantile(dist_full, 0.75)
IQR_d <- Q3_d - Q1_d
dist_filtrada <- dist_full[dist_full >= (Q1_d - 1.5*IQR_d) & dist_full <= (Q3_d + 1.5*IQR_d)]
n_total <- length(dist_filtrada)

3 TABLA DE DISTRIBUCIÓN DE FRECUENCIA

Se aplica la regla de Sturges para organizar la variabilidad logística. La tabla incluye frecuencias acumuladas (ascendentes y descendentes) para permitir un análisis de cobertura total.

# 1. CÁLCULO LÍMITES ENTEROS
BASE_d <- 500  # Base de 500 metros para una escala vial lógica
min_int_d <- floor(min(dist_filtrada) / BASE_d) * BASE_d
max_int_d <- ceiling(max(dist_filtrada) / BASE_d) * BASE_d
Amplitud_d <- 500

# Generación de cortes (aseguramos cubrir el máximo)
cortes_d <- seq(from = min_int_d, by = Amplitud_d, length.out = 25)
cortes_d <- cortes_d[cortes_d <= (max(dist_filtrada) + Amplitud_d)]

# 2. CÁLCULOS ESTADÍSTICOS
ni_d <- as.vector(table(cut(dist_filtrada, breaks = cortes_d, include.lowest = TRUE, right = FALSE)))
hi_d <- (ni_d / n_total) * 100

TDF_Dist_Enteros <- data.frame(
  Li = cortes_d[1:(length(cortes_d)-1)], 
  Ls = cortes_d[2:length(cortes_d)],
  MC = (cortes_d[1:(length(cortes_d)-1)] + cortes_d[2:length(cortes_d)]) / 2,
  ni = ni_d, 
  hi = hi_d,
  Ni_asc = cumsum(ni_d), 
  Ni_desc = rev(cumsum(rev(ni_d))),
  Hi_asc = cumsum(hi_d), 
  Hi_desc = rev(cumsum(rev(hi_d)))
)

# 3. GENERACIÓN DE LA TABLA GT CON TOTAL
TDF_Dist_Enteros %>%
  mutate(across(everything(), ~as.character(round(as.numeric(.), 2)))) %>%
  rbind(c("TOTAL", "-", "-", as.character(n_total), "100", "-", "-", "-", "-")) %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N°1: Distribución de Frecuencias de Distancia a Carreteras (m)**"),
    subtitle = "Análisis de Proximidad Logística - Universidad Central del Ecuador"
  ) %>%
  tab_source_note(source_note = "Autor: Carlos Ramirez") %>%
  cols_label(
    Li = "Lim. Inf", Ls = "Lim. Sup", MC = "Marca Clase", 
    ni = "ni", hi = "hi (%)", Ni_asc = "Ni (Asc)", Ni_desc = "Ni (Desc)"
  ) %>%
  cols_align(align = "center", columns = everything()) %>%
  tab_options(
    column_labels.background.color = "#F0F0F0",
    table.width = pct(100),
    column_labels.font.weight = "bold"
  )
Tabla N°1: Distribución de Frecuencias de Distancia a Carreteras (m)
Análisis de Proximidad Logística - Universidad Central del Ecuador
Lim. Inf Lim. Sup Marca Clase ni hi (%) Ni (Asc) Ni (Desc) Hi_asc Hi_desc
0 500 250 24033 46,72 24033 51437 46,72 100
500 1000 750 10926 21,24 34959 27404 67,96 53,28
1000 1500 1250 3907 7,6 38866 16478 75,56 32,04
1500 2000 1750 2779 5,4 41645 12571 80,96 24,44
2000 2500 2250 2056 4 43701 9792 84,96 19,04
2500 3000 2750 1612 3,13 45313 7736 88,09 15,04
3000 3500 3250 1266 2,46 46579 6124 90,56 11,91
3500 4000 3750 1250 2,43 47829 4858 92,99 9,44
4000 4500 4250 981 1,91 48810 3608 94,89 7,01
4500 5000 4750 818 1,59 49628 2627 96,48 5,11
5000 5500 5250 812 1,58 50440 1809 98,06 3,52
5500 6000 5750 659 1,28 51099 997 99,34 1,94
6000 6500 6250 338 0,66 51437 338 100 0,66
TOTAL - - 51437 100 - - - -
Autor: Carlos Ramirez

4 ANÁLISIS GRÁFICO Y JUSTIFICACIÓN DEL MODELO

El histograma permite visualizar cómo la frecuencia de proyectos es máxima cerca de la infraestructura y disminuye de forma asintótica.

4.1 Histograma con Ajuste Log-Normal

Justificación: El modelo Log-Normal es ideal para variables con sesgo positivo. Su forma permite representar el pico masivo inicial (proximidad inmediata) y la “cola larga” de proyectos en zonas más aisladas con una sola ecuación de alta fidelidad.

# 1. Parámetros del modelo Log-Normal
meanlog_d <- mean(log(dist_filtrada))
sdlog_d <- sd(log(dist_filtrada))

# 2. Configuración de márgenes
par(mar = c(6, 6, 5, 2))

# 3. Generación del objeto histograma usando 'cortes_d' (Corregido)
h_d <- hist(dist_filtrada, breaks = cortes_d, plot = FALSE) 
h_d$counts <- (h_d$counts / n_total) * 100

# 4. Gráfico con título reducido
plot(h_d, 
     main = "Gráfica N° 1: Modelo Log-Normal Unificado (Vías)",
     cex.main = 0.85,
     xlab = "", 
     ylab = "Frecuencia Relativa (%)", 
     col = "#B0C4DE", 
     border = "black", 
     axes = FALSE)

# 5. Ejes y Curva de Ajuste
axis(2, las = 2)
axis(1, at = seq(0, max(dist_filtrada), by = 1000))
curve(dlnorm(x, meanlog_d, sdlog_d) * (cortes_d[2] - cortes_d[1]) * 100, 
      add = TRUE, col = "#C0392B", lwd = 4)

# 6. Etiquetas y Autoría
mtext("Distancia a Carretera (m)", side = 1, line = 3, cex = 1)
mtext("Autor: Carlos Ramirez", side = 1, line = 4.5, adj = 1, cex = 0.7, font = 3)

# Línea base
abline(h = 0, col = "black", lwd = 1.2)

5 TABLA DE RESUMEN DE BONDAD DE AJUSTE

# 1. CÁLCULOS TÉCNICOS
# Ajuste Log-Normal Unificado (Cálculo real de Pearson)
h_dist <- hist(dist_filtrada, breaks = cortes_d, plot = FALSE)
teorico_d <- dlnorm(h_dist$mids, meanlog_d, sdlog_d)
pearson_d_val <- cor(h_dist$counts, teorico_d) * 100

# 2. CREACIÓN DEL DATAFRAME PROFESIONAL
resumen_opt_dist <- data.frame(
  "Segmento" = "Régimen Logístico Único",
  "Modelo_Aplicado" = "Log-Normal Unificado",
  "Metrica_Ajuste" = paste0(round(pearson_d_val, 2), " % (Pearson)"),
  "Estado" = "APROBADO"
)

# 3. GENERACIÓN DE LA TABLA GT
resumen_opt_dist %>%
  gt() %>%
  tab_header(
    title = md("**TABLA N° 2: RESUMEN DE VALIDACIÓN TÉCNICA (DISTANCIA)**"),
    subtitle = "Validación de Ajuste para el Acceso Vial"
  ) %>%
  tab_source_note(source_note = md("* Modelo validado para la optimización de costos logísticos.")) %>%
  tab_source_note(source_note = "Autor: Carlos Ramirez") %>%
  cols_label(
    Segmento = "Régimen Analizado",
    Modelo_Aplicado = "Modelo de Ajuste",
    Metrica_Ajuste = "Nivel de Ajuste / Métrica",
    Estado = "Validación"
  ) %>%
  cols_align(align = "center", columns = everything()) %>%
  tab_options(
    column_labels.background.color = "#F0F0F0",
    column_labels.font.weight = "bold",
    table.width = pct(100)
  ) %>%
  tab_style(
    style = list(cell_text(color = "#1D8348", weight = "bold")),
    locations = cells_body(columns = Estado)
  )
TABLA N° 2: RESUMEN DE VALIDACIÓN TÉCNICA (DISTANCIA)
Validación de Ajuste para el Acceso Vial
Régimen Analizado Modelo de Ajuste Nivel de Ajuste / Métrica Validación
Régimen Logístico Único Log-Normal Unificado 99,37 % (Pearson) APROBADO
  • Modelo validado para la optimización de costos logísticos.
Autor: Carlos Ramirez

6 CÁLCULO DE PROBABILIDADES

Respondemos preguntas críticas para la planificación logística:

Pregunta 1: ¿Probabilidad de ubicarse en la franja óptima entre 250m y 750m?

Pregunta 2: En 100 proyectos, ¿cuántos superarán los 2,000m (zona remota)?

p1 <- (plnorm(750, meanlog_d, sdlog_d) - plnorm(250, meanlog_d, sdlog_d)) * 100
p2 <- (1 - plnorm(2000, meanlog_d, sdlog_d)) * 100

curve(dlnorm(x, meanlog_d, sdlog_d), from = 0, to = max(dist_filtrada), 
      main = "Gráfica N° 2: Zonas de Probabilidad Log\u00edstica", xlab = "Distancia (m)", ylab = "Densidad de Probabilidad", col="#2E4053", lwd=2)
x_q <- seq(250, 750, length.out = 100)
polygon(c(250, x_q, 750), c(0, dlnorm(x_q, meanlog_d, sdlog_d), 0), col = "#7FB3D5", border = NA)
grid()

Respuesta 1: Probabilidad del 25,94% de alta factibilidad vial.

Respuesta 2: Se estiman 18 proyectos con necesidad de inversión vial adicional.

7 TEOREMA DEL LÍMITE CENTRAL

El Teorema del Límite Central es la herramienta que nos permite pasar de los datos que tenemos a conclusiones generales seguras. Aunque la mayoría de los proyectos solares se construyen muy cerca de las carreteras (creando una distribución desigual o “inclinada”), el TLC nos dice que, al trabajar con una base de datos tan grande, el promedio que obtenemos es sumamente confiable.

En términos sencillos, esto nos asegura que el promedio de nuestra muestra se comporta de forma estable, como una campana de Gauss. Gracias a esto, podemos calcular márgenes de error precisos y garantizar que nuestros resultados no son coincidencia, sino una representación fiel de cómo funciona la industria solar en la realidad.

Los postulados de confianza sugieren:

\[P(\bar{x} - E < \mu < \bar{x} + E) \approx 68\%\]

\[P(\bar{x} - 2E < \mu < \bar{x} + 2E) \approx 95\%\]

Donde el Margen de Error (\(E\)) se define como: \(E = \frac{\sigma}{\sqrt{n}}\)

# --- BLOQUE CORREGIDO: Usando 'dist_filtrada' ---
x_bar_d <- mean(dist_filtrada)
sigma_d <- sd(dist_filtrada)
n_d     <- length(dist_filtrada)

# Cálculo del error estándar y margen al 95%
error_se_d <- sigma_d / sqrt(n_d)
margen_d   <- 1.96 * error_se_d # Valor Z para 95%

# Intervalos
lim_inf_d <- x_bar_d - margen_d
lim_sup_d <- x_bar_d + margen_d

# Generación de la tabla visual
data.frame(
  Parametro = "Distancia Promedio (m)",
  Lim_Inferior = lim_inf_d,
  Media_Muestral = x_bar_d,
  Lim_Superior = lim_sup_d,
  Error_Estandar = paste0("+/- ", round(margen_d, 2)),
  Confianza = "95% (Z=1.96)"
) %>% gt() %>%
  tab_header(
    title = md("**TABLA N° 3: ESTIMACI\u00d3N DE LA MEDIA POBLACIONAL (TLC)**"),
    subtitle = "Variable: Distancia a Carreteras"
  ) %>%
  fmt_number(columns = 2:4, decimals = 2) %>%
  tab_style(
    style = list(cell_fill(color = "#E8F8F5"), cell_text(color = "#145A32", weight = "bold")),
    locations = cells_body(columns = Media_Muestral)
  ) %>%
  tab_options(column_labels.background.color = "#F0F0F0")
TABLA N° 3: ESTIMACIÓN DE LA MEDIA POBLACIONAL (TLC)
Variable: Distancia a Carreteras
Parametro Lim_Inferior Media_Muestral Lim_Superior Error_Estandar Confianza
Distancia Promedio (m) 1,119.35 1,131.55 1,143.76 +/- 12,21 95% (Z=1.96)

8 CONCLUSIÓN

El análisis demuestra que la Distancia a Carreteras sigue un patrón lógico: la gran mayoría de las plantas solares buscan la cercanía inmediata a las vías para reducir costos de construcción y transporte, volviéndose cada vez más escasas a medida que nos alejamos de la infraestructura vial.

Aplicando las reglas del TLC, determinamos que la distancia promedio es de 1131,55 m. Con un 95% de certeza, podemos afirmar que el promedio real de toda la industria se encuentra entre [1119,35 m y 1143,76 m].

Esta conclusión es clave para la Universidad Central, ya que confirma que la cercanía a las carreteras no es solo una preferencia, sino una necesidad económica. Para futuros proyectos, esto significa que el éxito financiero depende directamente de qué tan cerca estén las vías de comunicación, permitiendo planificar mejor los gastos de logística y acceso (\(\mu = 1131,55 \pm 12,21\) m).