...

1 IDENTIFICACION Y JUSTIFICACIÓN DE LA VARIABLE

“Aunque la variable Dirección del Viento predominante, es de naturaleza cualitativa nominal, para fines del presente análisis estadístico se ha procedido a realizar una recalificación a escala ordinal.”Se transformó la variable Dirección del Viento predominante mediante un ordenamiento descendente de frecuencias (\(n_i\)). Esta jerarquización se justifica por la siguiente razon: Priorización Climática: Permite identificar a \(X_1\) como la dirección predominante (Moda), estableciendo una escala de importancia para la ingeniería solar.

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 Dirección del viento predominante, omitimos las celdas en blanco o valores iguales a cero y verificamos el tamaño muestral

# 1. Extracción y procesamiento de la variable dt_wind
tabla_viento_base <- datos %>%
  filter(!is.na(dt_wind) & dt_wind != "") %>% 
  group_by(dt_wind) %>%
  summarise(ni = n()) %>%
  arrange(desc(ni))

4 TABLA DE FRECUENCIA

En este apartado se cuantifican la dirección del viento por categoría predominante y se asigna un identificador numérico (\(X_i\)) a cada subtipo de direccion del viento.

# 1. Extracción, Limpieza y Traducción de la variable dt_wind
tabla_viento_base <- datos %>%
  filter(!is.na(dt_wind) & dt_wind != "") %>%
  group_by(dt_wind) %>%
  summarise(ni = n()) %>%
  arrange(desc(ni)) %>%
  # Traducción de los puntos cardinales al español
  mutate(dt_wind = case_when(
    dt_wind == "North"     ~ "Norte",
    dt_wind == "South"     ~ "Sur",
    dt_wind == "East"      ~ "Este",
    dt_wind == "West"      ~ "Oeste",
    dt_wind == "Northeast" ~ "Noreste",
    dt_wind == "Northwest" ~ "Noroeste",
    dt_wind == "Southeast" ~ "Sureste",
    dt_wind == "Southwest" ~ "Suroeste",
    TRUE ~ dt_wind # Por si hay algún valor que no coincida
  ))

# 2. Construcción de la tabla con ID (Xi) y Porcentaje (hi)
tabla_viento_final <- tabla_viento_base %>%
  mutate(
    ID = row_number(), 
    hi = round((ni / sum(ni)) * 100, 2)
  ) %>%
  select(ID, dt_wind, ni, hi) 

# 3. Creación de la fila de TOTAL 
fila_total_v <- data.frame(
  ID = NA,
  dt_wind = "**TOTAL**",
  ni = sum(tabla_viento_final$ni),
  hi = 100.00
)

# 4. Unión de la tabla con el total
tabla_render_viento <- rbind(tabla_viento_final, fila_total_v)

# 5. Visualización de la tabla en el reporte
knitr::kable(tabla_render_viento, 
             caption = "Tabla 1: Tabla de distribución de Frecuencias de la Dirección del Viento predominante",
             col.names = c("Xi", "Punto Cardinal", "Frecuencia (ni)", "Porcentaje (hi %)"),
             align = "clcc")
Tabla 1: Tabla de distribución de Frecuencias de la Dirección del Viento predominante
Xi Punto Cardinal Frecuencia (ni) Porcentaje (hi %)
1 Suroeste 21042 35.68
2 Oeste 11472 19.45
3 Sureste 10675 18.10
4 Este 8118 13.76
5 Sur 7327 12.42
6 Noreste 160 0.27
7 Norte 153 0.26
8 Noroeste 31 0.05
NA TOTAL 58978 100.00

5 GRÁFICA DE BARRAS

# Generación de la gráfica de barras para frecuencias absolutas (ni)
grafica_viento_data <- tabla_render_viento[!is.na(tabla_render_viento$ID), ]

ggplot(grafica_viento_data, aes(x = factor(ID), y = ni)) +
  geom_bar(stat = "identity", fill = "skyblue", color = "black") +
  theme_minimal() +
  labs(
    title = "Gráfica N° 1: Distribución General de la Dirección del Viento Predominante",
    x = "Dirección del Viento (Xi)",
    y = "Cantidad "
  ) 

6 CONJETURA DE MODELO GEOMÉTRICO

Se seleccionó el modelo geométrico debido a que la distribución de frecuencias de las direcciones del viento, una vez ordenadas por su importancia (Moda), presenta un decaimiento sucesivo. Este comportamiento visual, donde la dirección predominante concentra la mayoría de los eventos y las demás disminuyen progresivamente, sugiere un ajuste a una distribución geométrica.

# 1. Limpieza de datos 
tabla_mod_viento <- tabla_render_viento[!is.na(tabla_render_viento$ID), ]

# 2. Estimación del parámetro p basado en la media observada
media_viento <- sum(tabla_mod_viento$ID * tabla_mod_viento$ni) / sum(tabla_mod_viento$ni)
p_est_viento <- 1 / media_viento

# 3. Cálculo de frecuencias relativas teóricas (Modelo %)
# Fórmula: P(X=k) = p * (1-p)^(k-1)
tabla_mod_viento$hi_modelo <- (p_est_viento * (1 - p_est_viento)^(tabla_mod_viento$ID - 1)) * 100

# 4. Preparación de datos para la comparación 
library(tidyr)
df_comp_viento <- pivot_longer(tabla_mod_viento, 
                               cols = c("hi", "hi_modelo"), 
                               names_to = "Origen", 
                               values_to = "Valor")

# Ajuste de etiquetas para la leyenda
df_comp_viento$Origen <- ifelse(df_comp_viento$Origen == "hi", "Realidad", "Modelo")

# 5. Generación de la Gráfica N° 4
ggplot(df_comp_viento, aes(x = factor(ID), y = Valor, fill = Origen)) +
  geom_bar(stat = "identity", position = "dodge", color = "black") +
  
  scale_fill_manual(values = c("Modelo" = "skyblue", "Realidad" = "dodgerblue4")) +
  
  theme_minimal() +
  labs(
    title = "Gráfica N° 4: Modelo de probabilidad geométrico de dirección del viento predominante",
    x = "Dirección del Viento",
    y = "Probabilidad ",
    fill = "Leyenda"
  )

7 TEST DE PEARSON

# 1. Definir Fo (Frecuencias Observadas - Realidad)
Fo_viento <- tabla_mod_viento$hi

# 2. Definir Fe (Frecuencias Esperadas - Modelo Geométrico)
Fe_viento <- tabla_mod_viento$hi_modelo

# 3. Cálculo de la Correlación de Pearson
Correlacion_Viento <- cor(Fo_viento, Fe_viento) * 100

# 4. Mostrar el resultado en el documento
cat("La correlación de Pearson (afinidad) entre la Realidad y el Modelo es:", 
    round(Correlacion_Viento, 2), "%")
## La correlación de Pearson (afinidad) entre la Realidad y el Modelo es: 94.35 %

8 TEST CHI-CUADRADO

# 1. Definición de parámetros básicos
k_viento <- length(tabla_mod_viento$ni) 
n_total_viento <- sum(tabla_mod_viento$ni)

# 2. Grados de libertad (k - 1 - parámetros estimados)
grados_lib_viento <- k_viento - 2 

# 3. Nivel de significancia
nivel_sign_viento <- 0.001

# 4. Preparación de Frecuencias Porcentuales (Fo y Fe)
Fo_p_viento <- tabla_mod_viento$hi
Fe_p_viento <- tabla_mod_viento$hi_modelo

# 5. Cálculo del estadístico Chi-Cuadrado (x2)
x2_viento <- sum((Fe_p_viento - Fo_p_viento)^2 / Fe_p_viento)

# 6. Determinación del Umbral (Valor Crítico)
umbral_viento <- qchisq(1 - nivel_sign_viento, grados_lib_viento)

# 7. Resultado del Test
modelo_viento_aceptado <- x2_viento < umbral_viento

# --- Visualización de Resultados ---
cat("Estadístico Chi-Cuadrado calculado:", round(x2_viento, 4), "\n")
## Estadístico Chi-Cuadrado calculado: 20.4291
cat("Umbral de Aceptación (Valor Crítico):", round(umbral_viento, 4), "\n")
## Umbral de Aceptación (Valor Crítico): 22.4577
cat("¿El modelo es aceptado bajo este umbral?:", modelo_viento_aceptado, "\n")
## ¿El modelo es aceptado bajo este umbral?: TRUE

9 CÁLCULO DE PROBABILIDADES

Para demostrar la utilidad práctica del análisis realizado sobre las condiciones climáticas de las plantas solares, se plantean y resuelven dos interrogantes.

¿Cuál es la probabilidad teórica de que, al registrar una nueva planta, el viento provenga de la dirección predominante suroeste (ID 1)?

# La probabilidad teórica del primer evento en el modelo geométrico es p
prob_teorica_viento_id1 <- p_est_viento

cat("Respuesta: La probabilidad teórica es del", round(prob_teorica_viento_id1 * 100, 2), "%")
## Respuesta: La probabilidad teórica es del 40.01 %

Si se analizan 500 nuevas ubicaciones y se mantiene la distribución observada, ¿en cuántas de ellas se espera que el viento sople desde la segunda dirección más frecuente oeste (ID 2)?

# Obtenemos la frecuencia relativa real (hi) para el ID 2 de la tabla de vientos
hi_viento_id2 <- tabla_mod_viento$hi[tabla_mod_viento$ID == 2]

# Cálculo de la cantidad esperada para una muestra de N = 500
n_proyeccion_v <- 500
cantidad_esperada_v <- (hi_viento_id2 / 100) * n_proyeccion_v

cat("Respuesta: Se esperarían aproximadamente", round(cantidad_esperada_v, 0), "plantas con esta dirección de viento.")
## Respuesta: Se esperarían aproximadamente 97 plantas con esta dirección de viento.

10 CONCLUSIONES

La variable Dirección del Viento predominante presenta un comportamiento que se ajusta satisfactoriamente al modelo geométrico tras ordenar sus categorías por frecuencia. Esta estructura permite predecir, por ejemplo, ¿Cuál es la probabilidad de que, al registrar una nueva planta, el viento provenga de la dirección predominante suroeste (ID 1)?la probabilidad es de un 40.01 %.