##### UNIVERSIDAD CENTRAL DEL ECUADOR #####
#### AUTOR: MARTIN SARMIENTO ####
### CARRERA: INGENIERÍA EN PETRÓLEOS #####
#### VARIABLE PAISES ####
## DATASET ##
setwd("~/R INFERENCIAL/COUNTRY")
# Cargar dataset
Datos <- read.csv("Dataset_Mundial_Final.csv", sep = ";", fileEncoding = "latin1")
## Estructura de los datos
str(Datos)## 'data.frame': 58978 obs. of 29 variables:
## $ ï..OBJECTID : int 2 3 4 5 6 7 8 9 10 11 ...
## $ code : chr "00001-AFG-P" "00002-AFG-P" "00003-AFG-P" "00004-AFG-P" ...
## $ plant_name : chr "Badghis Solar Power Plant" "Balkh solar farm" "Behsood solar farm" "Dab Pal 4 solar farm" ...
## $ country : chr "Afghanistan" "Afghanistan" "Afghanistan" "Afghanistan" ...
## $ operational_status : chr "cancelled - inferred 4 y" "cancelled - inferred 4 y" "cancelled - inferred 4 y" "shelved - inferred 2 y" ...
## $ longitude : chr "62,874" "67,121" "70,413" "66,239" ...
## $ latitude : chr "35,078" "36,714" "34,407" "33,768" ...
## $ elevation : int 918 359 629 2288 1060 1060 1392 398 410 1012 ...
## $ area : chr "6,735" "10,718" "487,729" "111,801" ...
## $ size : chr "Small" "Small" "Small" "Small" ...
## $ slope : chr "7,375" "0,49" "1,099" "6,162" ...
## $ slope_type : chr "Moderado" "Plano o casi plano" "Plano o casi plano" "Moderado" ...
## $ curvature : chr "-0,024" "0" "0" "0,045" ...
## $ curvature_type : chr "Superficies cóncavas / Valles" "Superficies planas o intermedias" "Superficies planas o intermedias" "Superficies convexas / Crestas" ...
## $ aspect : chr "96,77" "358,452" "36,18" "305,766" ...
## $ aspect_type : chr "East" "North" "Northeast" "Northwest" ...
## $ dist_to_road : chr "7037,104" "92,748" "112,117" "1705,255" ...
## $ ambient_temperature : chr "14,402" "17,875" "21,315" "8,857" ...
## $ ghi : chr "5,824" "5,579" "5,805" "6,749" ...
## $ humidity : chr "47,743" "42,305" "36,396" "37,344" ...
## $ wind_speed : chr "0,039" "0,954" "0,234" "0,943" ...
## $ wind_direction : chr "187,481" "207,422" "255,601" "160,331" ...
## $ dt_wind : chr "South" "Southwest" "West" "South" ...
## $ solar_aptitude : chr "0,72" "0,635" "0,685" "0,659" ...
## $ solar_aptitude_rounded: int 7 6 7 7 8 8 8 6 6 4 ...
## $ solar_aptittude_class : chr "Alta" "Alta" "Alta" "Alta" ...
## $ capacity : chr "32" "40" "60" "3000" ...
## $ optimal_tilt : chr "30" "31" "31,063" "33" ...
## $ pv_potential : chr "4,613" "4,408" "4,572" "5,424" ...
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
Se realizó la agrupación geográfica de la variable country mediante técnicas de mapeo y expresiones regulares en R. Esto permitió consolidar los países en 7 categorías continentales uniformes para facilitar el tratamiento inferencial de los 58,978 datos registrados a nivel global.
tabla_PAIS <- Datos %>%
select(Pais = country)
tabla_PAIS$Pais <- gsub("Türkiye", "Türkiye", tabla_PAIS$Pais)
tabla_PAIS$Pais <- gsub("Réunion", "Réunion", tabla_PAIS$Pais)
tabla_PAIS$Pais <- gsub("Côte d'Ivoire", "Côte d'Ivoire", tabla_PAIS$Pais)
tabla_PAIS <- tabla_PAIS %>%
ungroup() %>%
mutate(Continente = case_when(
grepl("Argentina|Bolivia|Brazil|Chile|Colombia|Ecuador|Guyana|Paraguay|Peru|Suriname|Uruguay|Venezuela",
Pais, ignore.case = TRUE) ~ "América del Sur",
grepl("United States|USA|Canada|Mexico|México",
Pais, ignore.case = TRUE) ~ "América del Norte",
grepl("Guatemala|Belize|Honduras|El Salvador|Nicaragua|Costa Rica|Panama|Panamá|Cuba|Dominican Republic|Haiti|Jamaica|Puerto Rico|Antigua and Barbuda|Cayman Islands|Bonaire|Virgin Islands|Saint Kitts and Nevis|Guadeloupe",
Pais, ignore.case = TRUE) ~ "América Central y Caribe",
grepl("Spain|España|France|Germany|Alemania|Italy|Italia|United Kingdom|UK|Portugal|Netherlands|Belgium|Poland|Sweden|Norway|Denmark|Finland|Greece|Russia|Ukraine|Albania|Andorra|Austria|Belarus|Bosnia and Herzegovina|Bulgaria|Croatia|Cyprus|Czech Republic|Estonia|Holy See|Hungary|Ireland|Isle of Man|Kosovo|Latvia|Lithuania|Luxembourg|Malta|Moldova|Montenegro|North Macedonia|Romania|Serbia|Slovakia|Slovenia|Switzerland",
Pais, ignore.case = TRUE) ~ "Europa",
grepl("China|India|Japan|Japón|Korea|Vietnam|Thailand|Indonesia|Malaysia|Philippines|Saudi Arabia|UAE|United Arab Emirates|Israel|Turkey|Turquía|Iran|Iraq|Afghanistan|Armenia|Azerbaijan|Bahrain|Bangladesh|Bhutan|Brunei|Cambodia|Georgia|Hong Kong|Jordan|Kazakhstan|Kuwait|Kyrgyzstan|Laos|Lebanon|Mongolia|Myanmar|Nepal|Oman|Pakistan|Palestine|Qatar|Singapore|Sri Lanka|Syria|Taiwan|Tajikistan|Timor-Leste|Türkiye|Uzbekistan|Yemen",
Pais, ignore.case = TRUE) ~ "Asia",
grepl("South Africa|Egypt|Egipto|Nigeria|Morocco|Marruecos|Algeria|Kenya|Ethiopia|Ghana|Senegal|Angola|Benin|Botswana|Burkina Faso|Burundi|Cabo Verde|Cameroon|Central African Republic|Chad|Comoros|Côte d'Ivoire|DR Congo|Republic of the Congo|Djibouti|Eritrea|Eswatini|Gabon|Guinea|Guinea-Bissau|Lesotho|Liberia|Libya|Madagascar|Malawi|Mali|Mauritania|Mauritius|Mayotte|Mozambique|Namibia|Niger|Réunion|Rwanda|Sao Tome and Principe|Seychelles|Sierra Leone|Somalia|South Sudan|Sudan|Tanzania|The Gambia|Togo|Tunisia|Uganda|Western Sahara|Zambia|Zimbabwe",
Pais, ignore.case = TRUE) ~ "África",
grepl("Australia|New Zealand|Fiji|Papua|British Indian Ocean Territory|Vanuatu|New Caledonia",
Pais, ignore.case = TRUE) ~ "Oceanía",
TRUE ~ "Otros / No Especificado"
))
TDF_continente <- table(tabla_PAIS$Continente)Se calculó la distribución de frecuencias absolutas (\(n_i\)) y relativas (\(h_i\)). Los resultados determinan que la región de Asia predomina con el 48.16%, seguida por Europa con un 31.85%, lo que evidencia una fuerte concentración del desarrollo de plantas solares en el eje euroasiático.
Tabla <- as.data.frame(TDF_continente)
colnames(Tabla) <- c("Continente", "ni")
Tabla$Continente <- as.character(Tabla$Continente)
Tabla$`hi (%)` <- (Tabla$ni / sum(Tabla$ni)) * 100
fila_total <- tibble(
Continente = "TOTAL",
ni = sum(Tabla$ni),
`hi (%)` = sum(Tabla$`hi (%)`)
)
tabla_Final <- bind_rows(Tabla, fila_total)
tabla_gt <- tabla_Final %>%
gt() %>%
tab_header(
title = md("**Tabla N°1 de Distribución de Frecuencias por Continentes de las Plantas Solares**")
) %>%
tab_source_note(
source_note = "Autor: Martin Sarmiento"
) %>%
cols_label(
Continente = "Continente",
ni = "Frecuencia (ni)",
`hi (%)` = "Porcentaje (hi%)"
) %>%
fmt_number(
columns = `hi (%)`,
decimals = 2
) %>%
tab_options(
heading.title.font.size = px(16),
column_labels.background.color = "#F0F0F0"
)
tabla_gt| Tabla N°1 de Distribución de Frecuencias por Continentes de las Plantas Solares | ||
| Continente | Frecuencia (ni) | Porcentaje (hi%) |
|---|---|---|
| África | 1072 | 1.82 |
| América Central y Caribe | 379 | 0.64 |
| América del Norte | 7783 | 13.20 |
| América del Sur | 2346 | 3.98 |
| Asia | 28403 | 48.16 |
| Europa | 18787 | 31.85 |
| Oceanía | 208 | 0.35 |
| TOTAL | 58978 | 100.00 |
| Autor: Martin Sarmiento | ||
Mediante un diagrama de barras de cantidad, se identificó una distribución global asimétrica con una dominancia clara de ciertas regiones sobre otras. Esta observación justificó la división del análisis en dos agrupaciones geoeconómicas (Mercados Consolidados y Mercados Emergentes) para aplicar modelos de probabilidad que describan el comportamiento de inversión y desarrollo en cada segmento.
Tabla_Grafica <- tabla_Final %>% filter(Continente != "TOTAL")
par(mar = c(11, 4, 4, 2))
barplot(height = Tabla_Grafica$ni,
names.arg = Tabla_Grafica$Continente,
main = "Gráfica N°1: Distribución de Cantidad de Plantas Solares por Continentes",
xlab = "",
ylab = "Cantidad",
col = "skyblue",
las = 3,
cex.names = 0.8,
cex.main = 0.9,
ylim = c(0, max(Tabla_Grafica$ni) * 1.2))
mtext("País", side = 1, line = 7)Se realiza un mapeo asignando valores numéricos a las potencias solares líderes. Este proceso permite cuantificar la presencia regional para ajustar el Modelo Geométrico a la frecuencia observada de los mercados con mayor madurez tecnológica.
niveles_consolidados <- c("Asia", "Europa", "América del Norte")
Datos_Consolidados <- tabla_PAIS %>%
filter(Continente %in% niveles_consolidados)
Datos_Consolidados$Continente <- factor(Datos_Consolidados$Continente,
levels = niveles_consolidados,
ordered = TRUE)
TDF_G1_Cons <- as.data.frame(table(Datos_Consolidados$Continente))
colnames(TDF_G1_Cons) <- c("Continente", "ni")
TDF_G1_Cons$X <- 0:(nrow(TDF_G1_Cons) - 1)
TDF_G1_Cons$hi <- TDF_G1_Cons$ni / sum(TDF_G1_Cons$ni)
TDF_G1_Cons %>%
select(Continente, X, ni, hi) %>%
gt() %>%
tab_header(
title = md("**Tabla N°2 de Distribución de Frecuencias del Continente - Mapeado**"),
subtitle = "Segmento: Mercados Consolidados (Liderazgo Global)"
) %>%
tab_source_note(source_note = "Autor: Martin Sarmiento") %>%
cols_label(
Continente = "Continente",
X = "Valor Asignado",
ni = "Frecuencia (ni)",
hi = "Porcentaje (hi%)"
) %>%
fmt_number(columns = hi, decimals = 4) %>%
tab_options(
heading.title.font.size = px(16),
column_labels.background.color = "#F0F0F0"
)| Tabla N°2 de Distribución de Frecuencias del Continente - Mapeado | |||
| Segmento: Mercados Consolidados (Liderazgo Global) | |||
| Continente | Valor Asignado | Frecuencia (ni) | Porcentaje (hi%) |
|---|---|---|---|
| Asia | 0 | 28403 | 0.5167 |
| Europa | 1 | 18787 | 0.3417 |
| América del Norte | 2 | 7783 | 0.1416 |
| Autor: Martin Sarmiento | |||
Se seleccionaron las regiones de Asia, Europa y América del Norte para analizar el comportamiento del liderazgo industrial. Se aplica un Modelo Geométrico bajo la premisa de que la probabilidad de encontrar una planta solar de alta capacidad disminuye conforme el mercado se vuelve más exigente y saturado, concentrando la mayor frecuencia en Asia como el principal nodo de manufactura y despliegue global.
n_total_cons <- sum(TDF_G1_Cons$ni)
media_obs_cons <- sum(TDF_G1_Cons$X * TDF_G1_Cons$ni) / n_total_cons
prob_geom_cons <- 1 / (media_obs_cons + 1)
P_Geom_Cons <- dgeom(TDF_G1_Cons$X, prob = prob_geom_cons)
P_Geom_Cons <- P_Geom_Cons / sum(P_Geom_Cons) # Normalización
par(mar = c(10, 5, 5, 2))
barplot(rbind(TDF_G1_Cons$hi, P_Geom_Cons),
beside = TRUE,
main = "Gráfica N°2: Comparado de lo Observado frente a lo Esperado (Consolidados)",
ylab = "Porcentaje (%)",
names.arg = TDF_G1_Cons$Continente,
col = c("skyblue", "blue"),
legend.text = c("Observado", "Esperado"),
args.legend = list(x = "topright", bty = "n", cex = 0.8),
las = 2,
cex.names = 0.8,
cex.main = 0.8)
mtext("Mercado Geoeconómico", side = 1, line = 7)Fo_C <- TDF_G1_Cons$hi
Fe_C <- P_Geom_Cons
plot(Fo_C, Fe_C,
main = "Gráfica N°3: Correlación del Modelo Observado y Esperado de Mercados Consolidados",
cex.main = 0.7,
xlab = "Frecuencia Observada",
ylab = "Frecuencia Esperada",
pch = 19, col = "#21618C")
abline(lm(Fe_C ~ Fo_C), col = "red", lwd = 2)## [1] 95.82311
## [1] 0.08218442
## [1] 5.991465
## [1] TRUE
tabla_resumen_C <- data.frame(
Variable = "Mercados Consolidados",
Pearson = round(Correlacion_C, 2),
Chi2 = round(x2_C, 4),
Umbral = round(vc_C, 2),
Resultado = x2_C < vc_C
)
tabla_resumen_C %>%
gt() %>%
cols_label(
Variable = "Variable",
Pearson = "Test Pearson (%)",
Chi2 = "Chi Cuadrado",
Umbral = "Umbral de Aceptación",
Resultado = "Resultado"
) %>%
tab_header(
title = md("**Tabla N°3 Resumen del Test de Bondad al Modelo de Probabilidad**")) %>%
tab_source_note(
source_note = "Autor: Martin Sarmiento") %>%
cols_align(
align = "center",
everything()) %>%
tab_options(
heading.title.font.size = px(16),
column_labels.background.color = "#F0F0F0"
)| Tabla N°3 Resumen del Test de Bondad al Modelo de Probabilidad | ||||
| Variable | Test Pearson (%) | Chi Cuadrado | Umbral de Aceptación | Resultado |
|---|---|---|---|---|
| Mercados Consolidados | 95.82 | 0.0822 | 5.99 | TRUE |
| Autor: Martin Sarmiento | ||||
¿Cuál es la probabilidad de que una planta solar seleccionada de forma aleatoria dentro del bloque de mercados consolidados esté ubicada específicamente en el continente de Asia?
prob_asia_geom <- dgeom(0, prob = prob_geom_cons)
paste0("La probabilidad estimada para el mercado de Asia es de: ",
round(prob_asia_geom * 100, 2), "%")## [1] "La probabilidad estimada para el mercado de Asia es de: 61.54%"
Se asignan valores numéricos a las categorías de los mercados en vías de desarrollo. Esta codificación permite parametrizar el Modelo de Poisson, el cual es ideal para evaluar la tasa de aparición de proyectos en regiones con densidades industriales variables.
# 1. Definición de niveles y filtrado
niveles_emergentes <- c("América del Sur", "América Central y Caribe", "África", "Oceanía")
Datos_Emergentes <- tabla_PAIS %>%
filter(Continente %in% niveles_emergentes)
# 2. Creación de Tabla de Frecuencias
TDF_G2_Emer <- as.data.frame(table(Datos_Emergentes$Continente))
colnames(TDF_G2_Emer) <- c("Continente", "ni")
# 3. Ordenamiento jerárquico para optimizar el modelo de Poisson
TDF_G2_Emer <- TDF_G2_Emer %>% arrange(desc(ni))
# 4. Mapeo y cálculo de hi
TDF_G2_Emer$X <- 0:(nrow(TDF_G2_Emer) - 1)
TDF_G2_Emer$hi <- TDF_G2_Emer$ni / sum(TDF_G2_Emer$ni)
# 5. Visualización con el formato exacto de la Tabla N°2
TDF_G2_Emer %>%
select(Continente, X, ni, hi) %>%
gt() %>%
tab_header(
title = md("**Tabla N°4 de Distribución de Frecuencias del Continente - Mapeado**") ) %>%
tab_source_note(source_note = "Autor: Martin Sarmiento") %>%
cols_label(
Continente = "Continente",
X = "Valor Asignado",
ni = "Frecuencia (ni)",
hi = "Porcentaje (hi%)"
) %>%
fmt_number(
columns = hi,
decimals = 4
) %>%
tab_options(
heading.title.font.size = px(16),
heading.subtitle.font.size = px(14),
column_labels.background.color = "#F0F0F0"
)| Tabla N°4 de Distribución de Frecuencias del Continente - Mapeado | |||
| Continente | Valor Asignado | Frecuencia (ni) | Porcentaje (hi%) |
|---|---|---|---|
| América del Sur | 0 | 2346 | 0.5858 |
| África | 1 | 1072 | 0.2677 |
| América Central y Caribe | 2 | 379 | 0.0946 |
| Oceanía | 3 | 208 | 0.0519 |
| Autor: Martin Sarmiento | |||
Esta agrupación comprende las regiones de América Latina, África y Oceanía. Se propone un Modelo de Poisson para representar este segmento, ya que es el más robusto para modelar eventos independientes que ocurren con una tasa constante en un área geográfica. A diferencia de otros modelos, Poisson captura mejor la dispersión de proyectos en mercados donde la infraestructura aún no es uniforme, permitiendo un ajuste de alta precisión al Sur Global.
n_total_emerg <- sum(TDF_G2_Emer$ni)
lambda_emerg <- sum(TDF_G2_Emer$X * TDF_G2_Emer$ni) / n_total_emerg
P_Pois_Emer <- dpois(TDF_G2_Emer$X, lambda = lambda_emerg)
P_Pois_Emer <- P_Pois_Emer / sum(P_Pois_Emer)
par(mar = c(10, 5, 5, 2))
barplot(rbind(TDF_G2_Emer$hi, P_Pois_Emer),
beside = TRUE,
main = "Gráfica N°4: Comparado de lo Observado frente a lo Esperado (Poisson)",
ylab = "Porcentaje (%)",
names.arg = TDF_G2_Emer$Continente,
col = c("skyblue", "blue"),
legend.text = c("Observado", "Esperado"),
args.legend = list(x = "topright", bty = "n"),
las = 2,
cex.names = 0.8,
cex.main = 0.8)
mtext("Mercado Geoeconómico", side = 1, line = 9)Fo_E <- TDF_G2_Emer$hi
Fe_E <- P_Pois_Emer
plot(Fo_E, Fe_E,
main = "Gráfica N°5: Correlación del Modelo (Poisson) en Mercados Emergentes",
xlab = "Frecuencia Observada", ylab = "Frecuencia Esperada",
pch = 19, col = "#1B4F72")
abline(lm(Fe_E ~ Fo_E), col = "red", lwd = 2)## [1] 97.97459
## [1] 0.06301499
## [1] 7.814728
## [1] TRUE
tabla_resumen_E <- data.frame(
Variable = "Mercados Emergentes",
Pearson = round(Correlacion_E, 2),
Chi2 = round(x2_E, 4),
Umbral = round(vc_E, 2),
Resultado = x2_E < vc_E
)
tabla_resumen_E %>%
gt() %>%
cols_label(
Pearson = "Test Pearson (%)",
Chi2 = "Chi Cuadrado",
Umbral = "Umbral de Aceptación"
) %>%
tab_header(title = md("**Tabla N°5 Resumen del Test de Bondad (Modelo Poisson)**")) %>%
tab_source_note(source_note = "Autor: Martin Sarmiento") %>%
tab_options(heading.title.font.size = px(16), column_labels.background.color = "#F0F0F0")| Tabla N°5 Resumen del Test de Bondad (Modelo Poisson) | ||||
| Variable | Test Pearson (%) | Chi Cuadrado | Umbral de Aceptación | Resultado |
|---|---|---|---|---|
| Mercados Emergentes | 97.97 | 0.063 | 7.81 | TRUE |
| Autor: Martin Sarmiento | ||||
¿Cuál es la probabilidad estimada de que una nueva planta solar se localice específicamente en América del Sur (Valor 0) bajo la tasa de ocurrencia de Poisson?
prob_sur_pois <- dpois(0, lambda = lambda_emerg)
paste0("La probabilidad estimada para América del Sur es de: ",
round(prob_sur_pois * 100, 2), "%")## [1] "La probabilidad estimada para América del Sur es de: 54.19%"
El análisis probabilístico permitió modelar la distribución geográfica de las plantas solares a nivel mundial mediante un modelo geométrico para los mercados consolidados y un modelo de Poisson para los mercados emergentes. Los resultados muestran una clara dominancia del eje asiático en el liderazgo industrial, mientras que en el segmento de mercados en desarrollo, América del Sur se posiciona como la región con mayor tasa de aparición de nuevos proyectos.
Las pruebas de bondad de ajuste, con coeficientes de Pearson del 95.82% y 97.97% respectivamente, confirman que ambos modelos representan adecuadamente los datos observados por continentes. Esto evidencia una descripción estadística precisa de la segmentación geoeconómica actual, validando la diferencia entre la concentración industrial en potencias globales y la dispersión de proyectos en regiones emergentes.