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.
# 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)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 | ||||||||
El histograma permite visualizar cómo la frecuencia de proyectos es máxima cerca de la infraestructura y disminuye de forma asintótica.
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)# 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 |
|
|||
| Autor: Carlos Ramirez | |||
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.
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) |
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).