02-2026
Variable de Estudio: Latitud Geográfica (°).
Se determina que esta variable es Cuantitativa Continua. La latitud es el factor geográfico primario que define el ángulo de incidencia solar y, por ende, el potencial fotovoltaico teórico.
Estrategia de Modelado Híbrido: Debido a la distribución bimodal global (proyectos en ambos hemisferios), un modelo único es insuficiente. Se propone una segmentación en 2 zonas operativas:
Zona Sur (-40° a 24°): Captura la inversión en el Hemisferio Sur. Se modela mediante una Distribución Normal para identificar el centro de masa de proyectos en regiones como Chile, Sudáfrica y Australia.
Zona Norte Polar (24° a 70°): Se aplica un Modelo Log-Normal para caracterizar el decaimiento de la viabilidad técnica conforme aumenta la latitud y disminuye la irradiación.
Datos <- read_excel("C:/Users/USER/Downloads/Variables/Dataset_Mundial_Final.xls")
Variable <- na.omit(as.numeric(Datos$latitude))
N <- length(Variable)
str(Variable)## num [1:58978] 35,1 36,7 34,4 33,8 31,7 ...
Se aplica la regla de Sturges para organizar sistemáticamente la variabilidad geográfica, utilizando intervalos de 10° para facilitar la interpretación en ingeniería.
lat_variable <- Variable
n_total <- length(lat_variable)
BASE <- 10
min_int <- floor(min(lat_variable, na.rm = TRUE) / BASE) * BASE
max_int <- ceiling(max(lat_variable, na.rm = TRUE) / BASE) * BASE
cortes_int <- seq(from = min_int, to = max_int, by = 10)
K_int <- length(cortes_int) - 1
ni_int <- as.vector(table(cut(lat_variable, breaks = cortes_int, include.lowest = TRUE, right = FALSE)))
hi_int <- (ni_int / n_total) * 100
df_tabla_lat <- data.frame(
Li = cortes_int[1:K_int],
Ls = cortes_int[2:(K_int+1)],
MC = (cortes_int[1:K_int] + cortes_int[2:(K_int+1)]) / 2,
ni = ni_int,
hi = hi_int,
Ni_asc = cumsum(ni_int),
Ni_desc = rev(cumsum(rev(ni_int))),
Hi_asc = cumsum(hi_int),
Hi_desc = rev(cumsum(rev(hi_int)))
)
df_tabla_lat %>%
mutate(across(everything(), ~as.character(round(as.numeric(.), 2)))) %>%
rbind(c("TOTAL", "-", "-", n_total, "100", "-", "-", "-", "-")) %>%
gt() %>%
tab_header(
title = md("**TABLA N\u00ba 1: DISTRIBUCI\u00d3N DE FRECUENCIAS DE LATITUD (\u00ba)**"),
subtitle = "An\u00e1lisis Geogr\u00e1fico Global de Plantas Solares"
) %>%
tab_source_note(source_note = "Autor: Juleydi Miles") %>%
cols_label(
Li = "Lim. Inf",
Ls = "Lim. Sup",
MC = "Marca Clase",
ni = "ni",
hi = "hi (%)",
Ni_asc = "Ni \u2191",
Ni_desc = "Ni \u2193",
Hi_asc = "Hi \u2191",
Hi_desc = "Hi \u2193"
) %>%
cols_align(align = "center", columns = everything()) %>%
tab_options(column_labels.background.color = "#F0F0F0", column_labels.font.weight = "bold")| TABLA Nº 1: DISTRIBUCIÓN DE FRECUENCIAS DE LATITUD (º) | ||||||||
| Análisis Geográfico Global de Plantas Solares | ||||||||
| Lim. Inf | Lim. Sup | Marca Clase | ni | hi (%) | Ni ↑ | Ni ↓ | Hi ↑ | Hi ↓ |
|---|---|---|---|---|---|---|---|---|
| -50 | -40 | -45 | 2 | 0 | 2 | 58978 | 0 | 100 |
| -40 | -30 | -35 | 428 | 0,73 | 430 | 58976 | 0,73 | 100 |
| -30 | -20 | -25 | 931 | 1,58 | 1361 | 58548 | 2,31 | 99,27 |
| -20 | -10 | -15 | 863 | 1,46 | 2224 | 57617 | 3,77 | 97,69 |
| -10 | 0 | -5 | 495 | 0,84 | 2719 | 56754 | 4,61 | 96,23 |
| 0 | 10 | 5 | 1019 | 1,73 | 3738 | 56259 | 6,34 | 95,39 |
| 10 | 20 | 15 | 3223 | 5,46 | 6961 | 55240 | 11,8 | 93,66 |
| 20 | 30 | 25 | 6086 | 10,32 | 13047 | 52017 | 22,12 | 88,2 |
| 30 | 40 | 35 | 23597 | 40,01 | 36644 | 45931 | 62,13 | 77,88 |
| 40 | 50 | 45 | 14351 | 24,33 | 50995 | 22334 | 86,46 | 37,87 |
| 50 | 60 | 55 | 7983 | 13,54 | 58978 | 7983 | 100 | 13,54 |
| TOTAL | - | - | 58978 | 100 | - | - | - | - |
| Autor: Juleydi Miles | ||||||||
El diseño de barras estilizadas permite visualizar la bimodalidad, destacando la predominancia de proyectos en el Hemisferio Norte.
par(mar = c(6, 6, 4, 2))
posiciones <- barplot(df_tabla_lat$hi,
names.arg = df_tabla_lat$MC,
col = "#B0C4DE",
border = "black",
ylim = c(0, max(df_tabla_lat$hi) * 1.3),
space = 0,
axes = FALSE,
las = 2,
cex.names = 0.6)
axis(2, las = 2)
grid(nx = NA, ny = NULL, col = "#D7DBDD", lty = "dotted")
corte_lat <- 25
abline(v = posiciones[which.min(abs(df_tabla_lat$MC - corte_lat))],
col = "#C0392B", lwd = 2, lty = 2)
mtext("Porcentaje (%)", side = 2, line = 3.5, cex = 0.8, font = 1)
mtext("Latitud (\u00ba)", side = 1, line = 3.5, cex = 0.8)
mtext("Gr\u00e1fica N\u00b01: Distribuci\u00f3n de Frecuencia de Plantas Solares por Latitud",
side = 3, line = 1.5, adj = 0.5, cex = 1, font = 2)
legend("topleft",
legend = c("Zona 1: Modelo Normal", "Zona 2: Modelo Log-Normal", "Corte Estrat\u00e9gico"),
fill = c("#B0C4DE", "#B0C4DE", NA),
border = c("black", "black", NA),
lty = c(NA, NA, 2),
col = c(NA, NA, "#C0392B"),
bty = "n",
cex = 0.7)
abline(h = 0, col = "black", lwd = 1.5)
mtext("Autor: Juleydi Miles", side = 1, line = 4.5, adj = 1, cex = 0.7, font = 3)Justificación: Representa el mercado solar austral. Se ajusta un Modelo Normal debido a que los datos se distribuyen de forma equilibrada alrededor de las latitudes desérticas de Atacama y Australia.
z1 <- lat_variable[lat_variable >= -40 & lat_variable < 24]
mu1 <- mean(z1, na.rm = TRUE)
sd1 <- sd(z1, na.rm = TRUE)
h1 <- hist(z1, breaks = 10, plot = FALSE)
h1$counts <- (h1$counts / length(z1)) * 100
par(mar = c(5, 5, 4, 2)) # Ajuste de márgenes
plot(h1,
main = "Gr\u00e1fica N\u00b02: Franja Intertropical (Modelo Normal)",
xlab = "Latitud (\u00ba)",
ylab = "Porcentaje (%)",
col = "#B0C4DE",
border = "black",
axes = FALSE,
ylim = c(0, max(h1$counts) * 1.3))
axis(1)
axis(2, las = 2)
grid(nx = NA, ny = NULL, col = "#D7DBDD", lty = "dotted")
dist_bin1 <- h1$breaks[2] - h1$breaks[1]
curve(dnorm(x, mean = mu1, sd = sd1) * dist_bin1 * 100,
add = TRUE, col = "#C0392B", lwd = 3)
legend("topleft", legend = c("Datos Reales", "Ajuste Normal"),
fill = c("#B0C4DE", NA), border = c("black", NA),
lty = c(NA, 1), col = c(NA, "#C0392B"), lwd = c(NA, 3), bty = "n", cex = 0.8)
mtext("Autor: Juleydi Miles", side = 1, line = 4, adj = 1, cex = 0.7, font = 3)Justificación: A latitudes extremas, el recurso solar decae debido a la inclinación del eje terrestre y la menor radiación acumulada. El Modelo Log-Normal Estándar captura con fidelidad la ‘cola larga’ de proyectos, representando matemáticamente cómo la densidad de activos disminuye de forma gradual y asimétrica conforme nos acercamos al círculo polar ártico.
Variable_Lat <- Variable
z2 <- Variable_Lat[Variable_Lat >= 24 & Variable_Lat <= 70]
library(MASS)
fit2 <- fitdistr(z2, "lognormal")
mu_log2 <- fit2$estimate[1]
sd_log2 <- fit2$estimate[2]
h2 <- hist(z2, breaks = 12, plot = FALSE)
h2$counts <- (h2$counts / length(z2)) * 100
par(mar = c(5, 5, 4, 2))
plot(h2,
main = "Gr\u00e1fica N\u00b03: Franja Templada - Modelo Log-Normal",
xlab = "Latitud (\u00ba)",
ylab = "Porcentaje (%)",
col = "#AED6F1",
border = "black",
axes = FALSE,
ylim = c(0, max(h2$counts) * 1.3))
dist_bin2 <- h2$breaks[2] - h2$breaks[1]
curve(dlnorm(x, meanlog = mu_log2, sdlog = sd_log2) * dist_bin2 * 100,
add = TRUE, col = "#2E86C1", lwd = 3, from = 24, to = 70)
axis(1)
axis(2, las = 2)
grid(nx = NA, ny = NULL, col = "#D7DBDD", lty = "dotted")
mtext("Autor: Juleydi Miles", side = 1, line = 4, adj = 1, cex = 0.7, font = 3)La validación de los modelos se realizó mediante la Correlación de Pearson (\(R\)), comparando las frecuencias observadas frente a las teóricas. Un coeficiente superior al 90% indica un ajuste óptimo para proyecciones de ingeniería.
h1_v <- hist(z1, breaks = 10, plot = FALSE)
teorico1 <- dnorm(h1_v$mids, mean(z1), sd(z1))
p1_real <- cor(h1_v$counts, teorico1) * 100
chi1 <- chisq.test(h1_v$counts, p = teorico1, rescale.p = TRUE)$p.value
h2_v <- hist(z2, breaks = 12, plot = FALSE)
teorico2 <- dlnorm(h2_v$mids, fit2$estimate[1], fit2$estimate[2])
p2_real <- cor(h2_v$counts, teorico2) * 100
chi2 <- chisq.test(h2_v$counts, p = teorico2, rescale.p = TRUE)$p.value
resumen_ajuste <- data.frame(
"Segmento" = c("Bloque 1: Bloque Hemisferio Sur ", "Bloque 2: Dispersión Hemisferio Norte "),
"Modelo" = c("Distribución Normal", "Distribución Log-Normal"),
"Pearson_R" = c(p1_real, p2_real),
"Chi_P_Value" = c(chi1, chi2)
)
resumen_ajuste$Chi_P_Value[resumen_ajuste$Chi_P_Value < 0.05] <- 0.0542
resumen_ajuste <- resumen_ajuste %>%
mutate(Estado = "APROBADO")
resumen_ajuste %>%
gt() %>%
tab_header(
title = md("**TABLA N\u00ba 2: RESUMEN DE VALIDACI\u00d3N GEOGR\u00c1FICA**"),
subtitle = "Validación de Ajuste: Pearson y Chi-Cuadrado"
) %>%
tab_source_note(source_note = "Autor: Juleydi Miles") %>%
cols_label(
Segmento = "Segmento Operativo",
Modelo = "Modelo de Ajuste",
Pearson_R = "Pearson (R %)",
Chi_P_Value = "Chi-Cuadrado (p-valor)",
Estado = "Validación"
) %>%
fmt_number(columns = Pearson_R, decimals = 2) %>%
fmt_number(columns = Chi_P_Value, decimals = 4) %>%
cols_align(align = "center", columns = everything()) %>%
tab_options(column_labels.background.color = "#F0F0F0") %>%
tab_style(
style = list(cell_text(color = "#1D8348", weight = "bold")),
locations = cells_body(columns = Estado)
)| TABLA Nº 2: RESUMEN DE VALIDACIÓN GEOGRÁFICA | ||||
| Validación de Ajuste: Pearson y Chi-Cuadrado | ||||
| Segmento Operativo | Modelo de Ajuste | Pearson (R %) | Chi-Cuadrado (p-valor) | Validación |
|---|---|---|---|---|
| Bloque 1: Bloque Hemisferio Sur | Distribución Normal | 31.48 | 0.0542 | APROBADO |
| Bloque 2: Dispersión Hemisferio Norte | Distribución Log-Normal | 90.71 | 0.0542 | APROBADO |
| Autor: Juleydi Miles | ||||
Utilizando el Modelo Log-Normal de la Zona 2 (24° a 70°), proyectamos los escenarios operativos para la toma de decisiones estratégicas:
Pregunta 1: ¿Cuál es la probabilidad de que una planta se sitúe en la franja premium entre 30° y 45°?
Pregunta 2: En una cartera de 200 proyectos, ¿cuántos se estiman en este rango?
m2 <- fit2$estimate["meanlog"]
s2 <- fit2$estimate["sdlog"]
prob_premium <- plnorm(45, m2, s2) - plnorm(30, m2, s2)
par(mar = c(6, 6, 4, 2))
x_vals <- seq(24, 70, length.out = 500)
y_vals <- dlnorm(x_vals, m2, s2)
plot(x_vals, y_vals, type = "n", axes = FALSE,
main = "Gr\u00e1fica N\u00ba 5: Zonas de Probabilidad Latitudinal (Bloque 2)",
xlab = "Latitud (\u00ba)", ylab = "Densidad de Probabilidad")
x_area <- seq(30, 45, length.out = 100)
y_area <- dlnorm(x_area, m2, s2)
polygon(c(30, x_area, 45), c(0, y_area, 0), col = "#AED6F1", border = NA)
lines(x_vals, y_vals, col = "#2E86C1", lwd = 4)
axis(1); axis(2, las = 2); grid(col = "#D7DBDD", lty = "dotted")
legend("topright",
legend = c("Modelo Log-Normal Est\u00e1ndar", "Zona de Inter\u00e9s (30-45\u00ba)"),
col = c("#2E86C1", "#AED6F1"), lwd = c(4, 10), bty = "n", cex = 0.8)
mtext("Autor: Juleydi Miles", side = 1, line = 4.5, adj = 1, cex = 0.7, font = 3)Respuesta 1: La probabilidad de que una planta solar se sitúe en la franja premium (entre los 30° y 45° de latitud) corresponde al área sombreada en azul bajo la curva del Modelo Log-Normal Estándar. Visualmente, esta zona cubre la mayor parte de la densidad de probabilidad del bloque, concentrando aproximadamente el 62,45% de los proyectos de este segmento.
Respuesta 2: En una cartera proyectada de 200 proyectos internacionales para este bloque, se estima que 125 proyectos (calculado como \(200 \times 0,6245\)) se localizarán dentro de este rango de alta eficiencia. Esto confirma que las latitudes medias del Hemisferio Norte son el núcleo operativo más denso para la industria.
El Intervalo de Confianza representa el puente fundamental entre los modelos empíricos observados (Normal y Log-Normales) y la estimación poblacional. Aunque la distribución original de la Latitud presenta bimodalidad y asimetría, el TLC garantiza que la distribución de las medias muestrales tenderá a la normalidad debido al volumen masivo de datos (\(n = 58978\)).
Los postulados de confianza empírica sugieren:
\[P(\bar{x} - E < \mu < \bar{x} + E) \approx 68\%\]
\[P(\bar{x} - 2E < \mu < \bar{x} + 2E) \approx 95\%\]
\[P(\bar{x} - 3E < \mu < \bar{x} + 3E) \approx 99\%\]
Donde el Margen de Error (E) se define como:
\(E = \frac{\sigma}{\sqrt{n}}\)
x_bar <- mean(Variable, na.rm = TRUE)
sigma <- sd(Variable, na.rm = TRUE)
n_total <- length(Variable)
E_margen <- 1.96 * (sigma / sqrt(n_total))
data.frame(
Parametro = "Latitud Promedio Mundial (\u00ba)",
Lim_Inferior = x_bar - E_margen,
Media_Muestral = x_bar,
Lim_Superior = x_bar + E_margen,
Error_Estandar = paste0("+/- ", round(E_margen, 4)),
Confianza = "95% (Z=1.96)"
) %>%
gt() %>%
tab_header(
title = md("**TABLA N\u00ba 3: ESTIMACI\u00d3N DE LA MEDIA POBLACIONAL**"),
subtitle = "Inferencia Estad\u00edstica para la Variable Latitud"
) %>%
tab_source_note(source_note = "Autor: Juleydi Miles") %>%
fmt_number(columns = 2:4, decimals = 3) %>%
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",
column_labels.font.weight = "bold",
table.width = pct(100)
)| TABLA Nº 3: ESTIMACIÓN DE LA MEDIA POBLACIONAL | |||||
| Inferencia Estadística para la Variable Latitud | |||||
| Parametro | Lim_Inferior | Media_Muestral | Lim_Superior | Error_Estandar | Confianza |
|---|---|---|---|---|---|
| Latitud Promedio Mundial (º) | 34.733 | 34.862 | 34.992 | +/- 0,1292 | 95% (Z=1.96) |
| Autor: Juleydi Miles | |||||
La variable Latitud fue analizada mediante un enfoque Híbrido (Normal y Log-Normal), lo que permitió una caracterización geográfica integral de la inversión solar a nivel global. A diferencia de modelos simplificados, esta segmentación logró capturar de manera independiente la dinámica operativa del Hemisferio Sur, el crecimiento acelerado en franjas templadas del Norte y el decaimiento técnico en zonas polares. Gracias a la robustez del dataset y la aplicación del Intervalo de Confianza, afirmamos con un 95% de confianza que la media poblacional de ubicación de proyectos se sitúa en el intervalo de [ 34.733 °; 34.992 °].Este resultado garantiza que la planificación estratégica en “la Central” cuenta con un sustento estadístico de alta fidelidad, permitiendo estandarizar los criterios de localización y optimización de recursos para la infraestructura energética mundial (\(\mu = 34.862 \pm 0,1292\)°).