…
La variable País se define como una variable cualitativa nominal, ya que se expresa mediante categorías o nombres que sirven para identificar y diferenciar el origen geográfico. Esta naturaleza nominal permite segmentar el análisis por regiones, facilitando la identificación de patrones espaciales y la distribución de frecuencias por cada entidad territorial de manera independiente.”
Importamos el archivo “Mundial.csv” desde una ruta local y lo almacena en el objeto datos, usando espacios o tabulaciones como separador.
Extraemos la variable países, omitimos las celdas en blanco o valores iguales a cero y verificamos el tamaño muestral
# 1. Crear la columna 'Continente'
datos_agrupados <- datos %>%
mutate(Continente = countrycode(country, origin = "country.name", destination = "continent"))
datos_agrupados <- datos_agrupados %>%
mutate(Continente = case_when(
country %in% c("Mexico", "Guatemala", "Honduras", "Panama", "Cuba",
"Dominican Republic", "Costa Rica", "Jamaica",
"Haiti", "El Salvador", "Nicaragua", "Belize") ~ "América Central y Caribe",
Continente == "Americas" & country %in% c("United States", "Canada") ~ "América del Norte",
Continente == "Americas" ~ "América del Sur",
TRUE ~ Continente
))
# Calcular frecuencias
ni_cont <- table(datos_agrupados$Continente)
hi_cont <- prop.table(ni_cont) * 100
# Construir la tabla base
tabla_continentes <- data.frame(
Continentes = names(ni_cont),
ni = as.vector(ni_cont),
hi = round(as.vector(hi_cont), 2)
)
# Ordenar de mayor a menor frecuencia
tabla_continentes <- tabla_continentes %>% arrange(desc(ni))
# Agregar fila de TOTAL
fila_total_cont <- data.frame(
Continentes = "**TOTAL**",
ni = sum(tabla_continentes$ni),
hi = round(sum(tabla_continentes$hi), 0)
)
tabla_final_cont <- rbind(tabla_continentes, fila_total_cont)
# Mostrar resultado
kable(tabla_final_cont,
caption = "Tabla N°1: Tabla de frecuencia de Plantas Solares",
col.names = c("Continente", "Frecuencia (ni)", "Porcentaje (hi%)"),
align = "lcc")| Continente | Frecuencia (ni) | Porcentaje (hi%) |
|---|---|---|
| Asia | 28504 | 48.34 |
| Europe | 18673 | 31.67 |
| América del Norte | 7514 | 12.74 |
| América del Sur | 2417 | 4.10 |
| Africa | 1072 | 1.82 |
| América Central y Caribe | 577 | 0.98 |
| Oceania | 208 | 0.35 |
| TOTAL | 58965 | 100.00 |
A continuación, se presenta la distribución del número de plantas solares por continente. Se ha optado por un gráfico de barras ordenado de mayor a menor para facilitar la identificación de las regiones con mayor actividad.
grafico_datos <- tabla_final_cont %>%
filter(!grepl("TOTAL", Continentes, ignore.case = TRUE)) %>%
mutate(Continentes = droplevels(as.factor(Continentes)))
# 2. Generar la gráfica
ggplot(grafico_datos, aes(x = reorder(Continentes, -ni), y = ni)) +
geom_bar(stat = "identity", fill = "skyblue", color = "#5D6D7E") +
labs(
title = "Grafica N.1: Distribución general de Plantas Solares",
x = "Continente",
y = "Cantidad "
) +
theme_minimal() +
theme(
axis.text.x = element_text(angle = 45, hjust = 1, size = 10),
panel.grid.minor = element_blank(),
panel.grid.major.x = element_blank()
)grafico_datos_hi <- tabla_final_cont[-nrow(tabla_final_cont), ]
# 2. Generar la gráfica de porcentajes (hi)
ggplot(grafico_datos_hi, aes(x = reorder(Continentes, -hi), y = hi)) +
geom_bar(stat = "identity", fill = "skyblue", color = "#5D6D7E") +
labs(
title = "Gráfica N° 2:Distribución Porcentual de Plantas Solares",
x = "Continente",
y = "Porcentaje (%)"
) +
theme_minimal() +
theme(
# Rotación de etiquetas a 45 grados para evitar solapamiento
axis.text.x = element_text(angle = 45, hjust = 1, size = 10),
# Limpieza visual del panel
panel.grid.minor = element_blank(),
panel.grid.major.x = element_blank()
)## 5. Distribución en Proporciones (Escala 0 a 0.7)
grafico_datos_prop <- tabla_final_cont[-nrow(tabla_final_cont), ]
# 2. Creamos la columna de proporción (dividiendo hi entre 100)
grafico_datos_prop$proporcion <- grafico_datos_prop$hi / 100
# 3. Generar la gráfica
ggplot(grafico_datos_prop, aes(x = reorder(Continentes, -proporcion), y = proporcion)) +
geom_bar(stat = "identity", fill = "skyblue", color = "#5D6D7E") +
# Ajustamos el eje Y de 0 a 0.7 según tu requerimiento
scale_y_continuous(limits = c(0, 0.7), breaks = seq(0, 0.7, by = 0.1)) +
labs(
title = "Gráfica N° 3: Distribución de Probabilidad de Plantas Solares",
x = "Continente",
y = "Probabilidad"
) +
theme_minimal() +
theme(
# Rotación de etiquetas a 45 grados
axis.text.x = element_text(angle = 45, hjust = 1, size = 10),
panel.grid.minor = element_blank(),
panel.grid.major.x = element_blank()
)Si seleccionamos una planta solar, ¿cuál es la probabilidad de que NO esté en Asia ni en Europa ?
## La probabilidad calculada es: 0.1999
¿Cuál es la probabilidad de seleccionar una planta solar en Asia?
fila_asia <- which(grepl("Asia", tabla_final_cont$Continentes, ignore.case = TRUE))
fila_total <- which(grepl("TOTAL", tabla_final_cont$Continentes, ignore.case = TRUE))
# 2. Extraemos los valores ni usando esas posiciones
ni_asia <- tabla_final_cont$ni[fila_asia]
ni_total <- tabla_final_cont$ni[fila_total]
# 3. Calculamos la probabilidad
p_asia <- ni_asia / ni_total
cat("La probabilidad calculada es:", round(p_asia, 4))## La probabilidad calculada es: 0.4834