Variable de Estudio: Irradiación Global Horizontal (GHI en \(kWh/m^2/día\)).
Se determina que esta variable es Cuantitativa Continua. El GHI es el factor determinante para el dimensionamiento de sistemas fotovoltaicos.
Estrategia de Refinamiento y Modelado Tri-Híbrido: Debido a la naturaleza climática global, la radiación no sigue un único patrón. Se opta por una Triple Estratificación para capturar tres realidades energéticas distintas:
Fase de Potencial Inicial (Zona 1): Proyectos en zonas con nubosidad frecuente. Se aplica un Modelo Log-Normal Reflexivo para capturar el crecimiento hacia el umbral comercial.
Franja de Estabilidad Global (Zona 2): El núcleo de la muestra mundial. Se utiliza un Modelo Normal debido a la simetría detectada en el núcleo de la muestra.
Recurso Premium (Zona 3): Emplazamientos de alto rendimiento. Se aplica un Modelo Log-Normal Estándar para caracterizar la “cola larga” de sitios con radiación excepcional.
# Carga del archivo original
Datos <- read.csv("Dataset_Mundial_Final.csv", sep = ";", dec = ",")
# Extraemos GHI y filtramos para el rango de operación comercial (2.7 a 8.5)
ghi_full <- na.omit(as.numeric(Datos$ghi))
ghi_variable <- ghi_full[ghi_full >= 2.7 & ghi_full <= 8.5]
n_total <- length(ghi_variable)La tabla se estructuró aplicando la regla de Sturges con una ampliación de intervalos para garantizar que la transición entre los tres modelos sea estadísticamente visible y precisa.
# 1. CÁLCULOS ESTADÍSTICOS
K_ghi <- floor(1 + 3.322 * log10(n_total)) + 4
breaks_ghi <- seq(min(ghi_variable), max(ghi_variable), length.out = K_ghi + 1)
ni <- as.vector(table(cut(ghi_variable, breaks = breaks_ghi, right = FALSE, include.lowest = TRUE)))
hi <- (ni / n_total) * 100
# 2. CONSTRUCCIÓN DEL DATAFRAME
df_tabla_ghi <- data.frame(
Li = breaks_ghi[1:K_ghi],
Ls = breaks_ghi[2:(K_ghi+1)],
MC = (breaks_ghi[1:K_ghi] + breaks_ghi[2:(K_ghi+1)]) / 2,
ni = ni,
hi = hi,
Ni_asc = cumsum(ni),
Ni_desc = rev(cumsum(rev(ni))),
Hi_asc = cumsum(hi),
Hi_desc = rev(cumsum(rev(hi)))
)
# 3. GENERACIÓN DE LA TABLA GT CON TOTAL Y AUTOR
df_tabla_ghi %>%
mutate(across(everything(), ~as.numeric(.))) %>% # Asegurar que sean números
mutate(across(c(Li, Ls, MC, hi, Hi_asc, Hi_desc), ~round(., 2))) %>%
mutate(across(everything(), as.character)) %>%
rbind(c("TOTAL", "-", "-", as.character(sum(ni)), "100", "-", "-", "-", "-")) %>%
gt() %>%
tab_header(
title = md("**Tabla N°1 de Distribución de Frecuencias de GHI (kWh/m²) de las Plantas Solares**"),
subtitle = "Análisis de Irradiación - 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.", Hi_asc = "Hi Asc. (%)", Hi_desc = "Hi Desc. (%)"
) %>%
cols_align(align = "center", columns = everything()) %>%
tab_style(
style = list(cell_fill(color = "#F2F2F2"), cell_text(weight = "bold")),
locations = cells_column_labels()
) %>%
tab_options(
table.width = pct(100),
column_labels.background.color = "#F0F0F0",
heading.title.font.size = px(16)
)| Tabla N°1 de Distribución de Frecuencias de GHI (kWh/m²) de las Plantas Solares | ||||||||
| Análisis de Irradiación - Universidad Central del Ecuador | ||||||||
| Lim. Inf | Lim. Sup | Marca Clase | ni | hi (%) | Ni Asc. | Ni Desc. | Hi Asc. (%) | Hi Desc. (%) |
|---|---|---|---|---|---|---|---|---|
| 2,72 | 2,98 | 2,85 | 176 | 0,3 | 176 | 58973 | 0,3 | 100 |
| 2,98 | 3,25 | 3,12 | 899 | 1,52 | 1075 | 58797 | 1,82 | 99,7 |
| 3,25 | 3,52 | 3,38 | 5199 | 8,82 | 6274 | 57898 | 10,64 | 98,18 |
| 3,52 | 3,78 | 3,65 | 6554 | 11,11 | 12828 | 52699 | 21,75 | 89,36 |
| 3,78 | 4,05 | 3,92 | 7532 | 12,77 | 20360 | 46145 | 34,52 | 78,25 |
| 4,05 | 4,32 | 4,18 | 5222 | 8,85 | 25582 | 38613 | 43,38 | 65,48 |
| 4,32 | 4,58 | 4,45 | 8084 | 13,71 | 33666 | 33391 | 57,09 | 56,62 |
| 4,58 | 4,85 | 4,72 | 5680 | 9,63 | 39346 | 25307 | 66,72 | 42,91 |
| 4,85 | 5,12 | 4,98 | 3312 | 5,62 | 42658 | 19627 | 72,33 | 33,28 |
| 5,12 | 5,38 | 5,25 | 3885 | 6,59 | 46543 | 16315 | 78,92 | 27,67 |
| 5,38 | 5,65 | 5,52 | 4971 | 8,43 | 51514 | 12430 | 87,35 | 21,08 |
| 5,65 | 5,92 | 5,78 | 3561 | 6,04 | 55075 | 7459 | 93,39 | 12,65 |
| 5,92 | 6,18 | 6,05 | 2305 | 3,91 | 57380 | 3898 | 97,3 | 6,61 |
| 6,18 | 6,45 | 6,32 | 724 | 1,23 | 58104 | 1593 | 98,53 | 2,7 |
| 6,45 | 6,72 | 6,58 | 395 | 0,67 | 58499 | 869 | 99,2 | 1,47 |
| 6,72 | 6,98 | 6,85 | 193 | 0,33 | 58692 | 474 | 99,52 | 0,8 |
| 6,98 | 7,25 | 7,12 | 157 | 0,27 | 58849 | 281 | 99,79 | 0,48 |
| 7,25 | 7,51 | 7,38 | 55 | 0,09 | 58904 | 124 | 99,88 | 0,21 |
| 7,51 | 7,78 | 7,65 | 34 | 0,06 | 58938 | 69 | 99,94 | 0,12 |
| 7,78 | 8,05 | 7,91 | 35 | 0,06 | 58973 | 35 | 100 | 0,06 |
| TOTAL | - | - | 58973 | 100 | - | - | - | - |
| Autor: Carlos Ramirez | ||||||||
El histograma tri-modal permite visualizar la segmentación del recurso solar global, identificando claramente el paso del potencial inicial al recurso premium.
par(mar = c(6, 5, 4, 2))
h_ghi <- hist(ghi_variable, breaks = breaks_ghi, plot = FALSE)
h_ghi$counts <- (h_ghi$counts / n_total) * 100
plot(h_ghi, main = "Gráfica N°1: Distribución de Frecuencia de Plantas Solares por GHI",
xlab = "GHI (kWh/m2/d\u00eda)", ylab = "Frecuencia Relativa (%)", col = "#EEC900", border = "black", axes = FALSE)
axis(2, las = 2); axis(1, at = seq(2.5, 8.5, 0.5))
abline(v = c(4.0, 5.0), col = "#C0392B", lwd = 3, lty = 2)
grid(col = "#D7DBDD", lty = "dotted")z1 <- ghi_variable[ghi_variable < 4.0]
z2 <- ghi_variable[ghi_variable >= 4.0 & ghi_variable < 5.0]
z3 <- ghi_variable[ghi_variable >= 5.0]
c1 <- max(z1) + 0.1
fit1 <- MASS::fitdistr(c1 - z1, "lognormal")
mu2 <- mean(z2); sd2 <- sd(z2)
fit3 <- MASS::fitdistr(z3, "lognormal")Justificación: En este intervalo, la densidad de proyectos crece conforme nos acercamos al umbral de rentabilidad. Dado que una Log-Normal estándar solo modela caídas a la derecha, aplicamos la transformación reflexiva. Esto permite capturar el comportamiento de “llenado” de datos en zonas con radiación moderada, logrando un ajuste superior.
h1 <- hist(z1, breaks = 10, plot = FALSE)
h1$counts <- (h1$counts / length(z1)) * 100
plot(h1, main = "Gráfica N°2: Potencial Inicial (Log-Normal Reflexivo)",
xlab = "GHI (kWh/m²/día)", ylab = "Frecuencia Relativa (%)",
col = "#EEC900", border = "black", axes = FALSE)
x_c1 <- seq(min(z1), 4.0, length.out = 100)
y_c1 <- dlnorm(c1 - x_c1, fit1$estimate["meanlog"], fit1$estimate["sdlog"]) * (h1$breaks[2]-h1$breaks[1]) * 100
lines(x_c1, y_c1, col = "#C0392B", lwd = 3)
axis(1); axis(2, las = 2)Justificación: Representa el núcleo de la muestra mundial. En esta franja, el recurso solar deja de presentar asimetrías marcadas y se comporta de forma equilibrada. Por ello, el Modelo Normal es el más apto, permitiendo definir parámetros de diseño estándar basados en la simetría de la campana de Gauss.
h2 <- hist(z2, breaks = 10, plot = FALSE)
h2$counts <- (h2$counts / length(z2)) * 100
plot(h2, main = "Gráfica N°3: Estabilidad Global (Modelo Normal)",
xlab = "GHI (kWh/m²/día)", ylab = "Frecuencia Relativa (%)",
col = "#EEC900", border = "black", axes = FALSE)
x_c2 <- seq(4.0, 5.0, length.out = 100)
y_c2 <- dnorm(x_c2, mu2, sd2) * (h2$breaks[2]-h2$breaks[1]) * 100
lines(x_c2, y_c2, col = "#C0392B", lwd = 3)
axis(1); axis(2, las = 2)# 1. CÁLCULO DE PEARSON POR REGÍMENES (GHI)
# Zona 1: Log-Normal Reflexiva
h1_ghi <- hist(z1, breaks = 10, plot = FALSE)
teorico1_ghi <- dlnorm(c1 - h1_ghi$mids, fit1$estimate[1], fit1$estimate[2])
pearson1_ghi <- cor(h1_ghi$counts, teorico1_ghi) * 100
# Zona 2: Modelo Normal
h2_ghi <- hist(z2, breaks = 10, plot = FALSE)
teorico2_ghi <- dnorm(h2_ghi$mids, mu2, sd2)
pearson2_ghi <- cor(h2_ghi$counts, teorico2_ghi) * 100
# Zona 3: Log-Normal Estándar
h3_ghi <- hist(z3, breaks = 10, plot = FALSE)
teorico3_ghi <- dlnorm(h3_ghi$mids, fit3$estimate[1], fit3$estimate[2])
pearson3_ghi <- cor(h3_ghi$counts, teorico3_ghi) * 100
# 2. CREACIÓN DEL DATAFRAME DE RESUMEN
resumen_ajuste_ghi <- data.frame(
"Segmento" = c("Zona 1 (Potencial Inicial)", "Zona 2 (Estabilidad Global)", "Zona 3 (Recurso Premium)"),
"Modelo_Aplicado" = c("Log-Normal Reflexivo", "Distribución Normal", "Log-Normal Estándar"),
"Pearson_R" = c(pearson1_ghi, pearson2_ghi, pearson3_ghi),
"Estado" = "APROBADO"
)
# 3. GENERACIÓN DE LA TABLA GT PROFESIONAL
resumen_ajuste_ghi %>%
gt() %>%
tab_header(
title = md("**TABLA N\u00ba 2: RESUMEN DE VALIDACI\u00d3N DE MODELOS (GHI)**"),
subtitle = "C\u00e1lculo Autom\u00e1tico de Bondad de Ajuste (Pearson)"
) %>%
tab_source_note(source_note = "Autor: Carlos Ramirez") %>%
cols_label(
Segmento = "Régimen Operativo",
Modelo_Aplicado = "Modelo de Ajuste",
Pearson_R = "Ajuste de Pearson (%)",
Estado = "Validación"
) %>%
fmt_number(columns = Pearson_R, decimals = 2) %>%
cols_align(align = "center", columns = everything()) %>%
tab_options(
column_labels.background.color = "#F0F0F0",
column_labels.font.weight = "bold",
table.width = pct(100)
) %>%
# Estética: Color verde para el texto APROBADO
tab_style(
style = list(cell_text(color = "#1D8348", weight = "bold")),
locations = cells_body(columns = Estado)
)| TABLA Nº 2: RESUMEN DE VALIDACIÓN DE MODELOS (GHI) | |||
| Cálculo Automático de Bondad de Ajuste (Pearson) | |||
| Régimen Operativo | Modelo de Ajuste | Ajuste de Pearson (%) | Validación |
|---|---|---|---|
| Zona 1 (Potencial Inicial) | Log-Normal Reflexivo | 87.90 | APROBADO |
| Zona 2 (Estabilidad Global) | Distribución Normal | 83.22 | APROBADO |
| Zona 3 (Recurso Premium) | Log-Normal Estándar | 97.90 | APROBADO |
| Autor: Carlos Ramirez | |||
Tras validar que el recurso premium se ajusta a una Log-Normal, evaluamos escenarios de alta eficiencia:
Pregunta 1: ¿Cuál es la probabilidad de que un sitio premium supere los 6.0 \(kWh/m^2/día\)?
Pregunta 2: De 100 proyectos en la Zona 3, ¿cuántos alcanzarán la excelencia (6.5 - 7.5 \(kWh\))? simétrico, permitiendo establecer parámetros de diseño estándar para la mayoría de proyectos globales.
m3 <- fit3$estimate["meanlog"]; s3 <- fit3$estimate["sdlog"]
p1 <- (1 - plnorm(6.0, m3, s3)) * 100
p2 <- (plnorm(7.5, m3, s3) - plnorm(6.5, m3, s3)) * 100
par(mar = c(5, 5, 4, 2))
curve(dlnorm(x, m3, s3), from = 5.0, to = 8.5, col = "#C0392B", lwd = 3, axes=F,
main = "Gráfica N°5: Proyecci\u00f3n Recurso Premium", xlab = "GHI (kWh/m2)", ylab = "Densidad de Probabilidad")
x_q <- seq(6.0, 8.5, length.out = 100); y_q <- dlnorm(x_q, m3, s3)
polygon(c(6.0, x_q, 8.5), c(0, y_q, 0), col = "#D4E6F1", border = NA)
axis(1); grid()Respuesta 1: La probabilidad es del 18,93%.
Respuesta 2: Se estima que 3 proyectos alcanzarán la excelencia energética.
El TLC establece que la distribución de las medias muestrales seguirá una distribución Normal (\(n > 30\)). Esto nos permite estimar la Media Poblacional (\(\mu\)) verdadera utilizando intervalos de confianza.
Los postulados de confianza empírica sugieren:
\(P(\bar{x} - 2E < \mu < \bar{x} + 2E) \approx 95\%\)
Donde \(E = \sigma / \sqrt{n}\)
# 1. ESTADÍSTICOS BÁSICOS (Sincronizados con ghi_variable)
x_bar_ghi <- mean(ghi_variable)
sigma_ghi <- sd(ghi_variable)
n_ghi <- length(ghi_variable)
# 2. CÁLCULO DEL ERROR Y MARGEN (E)
# Usamos Z = 1.96 para un nivel de confianza del 95%
E_ghi <- 1.96 * (sigma_ghi / sqrt(n_ghi))
# 3. CONSTRUCCIÓN DE LA TABLA CON GT
data.frame(
Parametro = "Irradiación Promedio Mundial (kWh/m²/día)",
Lim_Inferior = x_bar_ghi - E_ghi,
Media_Muestral = x_bar_ghi,
Lim_Superior = x_bar_ghi + E_ghi,
Error_Estandar = paste0("+/- ", round(E_ghi, 4)),
Confianza = "95% (Z=1.96)"
) %>%
gt() %>%
tab_header(
title = md("**TABLA N\u00ba 3: ESTIMACI\u00d3N DE LA MEDIA POBLACIONAL (TLC)**"),
subtitle = "Inferencia Estadística para la Variable GHI"
) %>%
tab_source_note(source_note = "Autor: Carlos Ramirez") %>%
fmt_number(columns = 2:4, decimals = 3) %>%
# Estilo para resaltar la Media Muestral (Color acorde a GHI)
tab_style(
style = list(cell_fill(color = "#E8F8F5"), cell_text(color = "#145A32", weight = "bold")),
locations = cells_body(columns = Media_Muestral)
) %>%
# Aplicación de las opciones de diseño institucional
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 (TLC) | |||||
| Inferencia Estadística para la Variable GHI | |||||
| Parametro | Lim_Inferior | Media_Muestral | Lim_Superior | Error_Estandar | Confianza |
|---|---|---|---|---|---|
| Irradiación Promedio Mundial (kWh/m²/día) | 4.542 | 4.549 | 4.556 | +/- 0,0069 | 95% (Z=1.96) |
| Autor: Carlos Ramirez | |||||
La variable Irradiación GHI fue modelada exitosamente mediante una estrategia tri-híbrida, logrando capturar con precisión la complejidad y variabilidad del recurso solar a escala mundial. Este enfoque permitió diferenciar técnicamente entre el potencial inicial, la estabilidad global y el recurso de alto rendimiento (Premium).
A través de la aplicación del Teorema del Límite Central (TLC), y con una media muestral de 4,55 kWh/m²/día, se estima con un 95% de confianza que la media poblacional del recurso solar se sitúa en el intervalo de [4,54; 4,56].
Este hallazgo es fundamental para la estandarización de proyectos, ya que garantiza que la planificación técnica y el dimensionamiento de sistemas fotovoltaicos bajo la supervisión de Carlos Ramirez se sustentan en una base operativa estadísticamente estable y validada internacionalmente (\(\mu = 4,55 \pm 0,01\) kWh/m²/día).