...

1 IDENTIFICACION Y JUSTIFICACIÓN DE LA VARIABLE

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.”

2 CARGAR DATOS

Importamos el archivo “Mundial.csv” desde una ruta local y lo almacena en el objeto datos, usando espacios o tabulaciones como separador.

# Importación de datos

## setwd("C:/Users/ronal/OneDrive/Desktop")

datos <- read.csv("Mundial.csv", header = TRUE, sep = ",", dec = ".")
View(datos)

3 EXTRAER LA VARIABLE

Extraemos la variable países, omitimos las celdas en blanco o valores iguales a cero y verificamos el tamaño muestral

country <- na.omit(datos$country)
country <- country[country != ""]
n_paises <- length(country)

4 TABLA DE FRECUENCIA

# 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")
Tabla N°1: Tabla de frecuencia de Plantas Solares
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

5 GRÁFICAS

5.1 Gráfica de distribución de frecuencia(ni)

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()
  )

5.2 Gráfica de distribución de frecuencia(hi)

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()
  )

6 MODELO DE PROBABILIDAD

## 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