\(Variable\) \(de\) \(Estudio\): Pendiente del Terreno (°).
Se determina que esta variable es Cuantitativa Continua. La inclinación condiciona directamente la viabilidad topográfica y el costo de la obra civil del proyecto. Debido a la alta concentración de datos en relieves de baja inclinación, se opta por una Estrategia de Segmentación y Ajuste Exponencial:
\(Fase\) \(de\) \(Segmentación\): Se aisló el segmento de mayor acumulación (comprendido entre \(0.00\) y \(8.671\%\)), eliminando el ruido de los valores extremos para revelar el comportamiento real de las pendientes más frecuentes.
\(Modelo\) \(Aceptado\): Distribución Exponencial (Validado exitosamente mediante el Test de Pearson y la Prueba Chi-cuadrado \(\chi^2\). El modelo captura con alta precisión el decaimiento natural de la disponibilidad de terrenos a medida que aumenta la inclinación, garantizando un análisis físico confiable).
Importamos el archivo “Dataset_Mundial_Final.xls” desde una ruta local y lo almacenamos en el objeto Datos.
suppressPackageStartupMessages(library(tidyverse))
suppressPackageStartupMessages(library(readxl))
Datos <- read_excel("C:/Users/ASUS/OneDrive/Escritorio/ESTADÍSTICA/EXPO/ACTIVIDADES/Dataset_Mundial_Final.xls",
sheet = "Dataset_Mundial_Final")
str(Datos)## tibble [58,978 × 29] (S3: tbl_df/tbl/data.frame)
## $ OBJECTID : num [1:58978] 2 3 4 5 6 7 8 9 10 11 ...
## $ code : chr [1:58978] "00001-AFG-P" "00002-AFG-P" "00003-AFG-P" "00004-AFG-P" ...
## $ plant_name : chr [1:58978] "Badghis Solar Power Plant" "Balkh solar farm" "Behsood solar farm" "Dab Pal 4 solar farm" ...
## $ country : chr [1:58978] "Afghanistan" "Afghanistan" "Afghanistan" "Afghanistan" ...
## $ operational_status : chr [1:58978] "cancelled - inferred 4 y" "cancelled - inferred 4 y" "cancelled - inferred 4 y" "shelved - inferred 2 y" ...
## $ longitude : num [1:58978] 62.9 67.1 70.4 66.2 65.7 ...
## $ latitude : num [1:58978] 35.1 36.7 34.4 33.8 31.7 ...
## $ elevation : num [1:58978] 918 359 629 2288 1060 ...
## $ area : num [1:58978] 6.74 10.72 487.73 111.8 1929.96 ...
## $ size : chr [1:58978] "Small" "Small" "Small" "Small" ...
## $ slope : num [1:58978] 7.38 0.49 1.1 6.16 1.23 ...
## $ slope_type : chr [1:58978] "Moderado" "Plano o casi plano" "Plano o casi plano" "Moderado" ...
## $ curvature : num [1:58978] -0.024 0 0 0.045 -0.005 -0.005 -0.015 0 0 -0.009 ...
## $ curvature_type : chr [1:58978] "Superficies cóncavas / Valles" "Superficies planas o intermedias" "Superficies planas o intermedias" "Superficies convexas / Crestas" ...
## $ aspect : num [1:58978] 96.8 358.5 36.2 305.8 248.4 ...
## $ aspect_type : chr [1:58978] "East" "North" "Northeast" "Northwest" ...
## $ dist_to_road : num [1:58978] 7037.1 92.7 112.1 1705.3 115.8 ...
## $ ambient_temperature : num [1:58978] 14.4 17.88 21.32 8.86 19.64 ...
## $ ghi : num [1:58978] 5.82 5.58 5.8 6.75 6.62 ...
## $ humidity : num [1:58978] 47.7 42.3 36.4 37.3 24.2 ...
## $ wind_speed : num [1:58978] 0.039 0.954 0.234 0.943 0.37 ...
## $ wind_direction : num [1:58978] 187.5 207.4 255.6 160.3 97.7 ...
## $ dt_wind : chr [1:58978] "South" "Southwest" "West" "South" ...
## $ solar_aptitude : num [1:58978] 0.72 0.635 0.685 0.659 0.819 0.819 0.818 0.642 0.63 0.374 ...
## $ solar_aptitude_rounded: num [1:58978] 7 6 7 7 8 8 8 6 6 4 ...
## $ solar_aptittude_class : chr [1:58978] "Alta" "Alta" "Alta" "Alta" ...
## $ capacity : num [1:58978] 32 40 60 3000 100 100 36 50 25 100 ...
## $ optimal_tilt : num [1:58978] 30 31 31.1 33 31 ...
## $ pv_potential : num [1:58978] 4.61 4.41 4.57 5.42 5.17 ...
Extraemos la variable de curvatura (curvature), omitimos las celdas en blanco y verificamos el tamaño muestral.
La tabla de frecuencias de la Pendiente se organizó mediante la regla de Sturges para definir el número de intervalos óptimo. El ancho de clase se ajustó al rango total de los datos, permitiendo una clasificación sistemática y precisa de la inclinación del terreno y la variabilidad del relieve en la muestra.
suppressPackageStartupMessages({
library(gt)
library(dplyr)
})
slope_global <- na.omit(Datos$slope)
n_total <- length(slope_global)
K_slope <- floor(1 + 3.322 * log10(n_total))
min_abs <- min(slope_global)
max_abs <- max(slope_global)
breaks_slope <- seq(min_abs, max_abs, length.out = K_slope + 1)
lim_inf_s <- breaks_slope[1:K_slope]
lim_sup_s <- breaks_slope[2:(K_slope+1)]
MC_s <- (lim_inf_s + lim_sup_s) / 2
ni_s <- as.vector(table(cut(slope_global, breaks = breaks_slope, right = FALSE, include.lowest = TRUE)))
hi_s <- (ni_s / n_total) * 100
df_temp <- data.frame(
Li = lim_inf_s,
Ls = lim_sup_s,
MC = MC_s,
ni = ni_s,
hi = hi_s
)
primera_con_datos <- min(which(df_temp$ni > 0))
ultima_con_datos <- max(which(df_temp$ni > 0))
df_tabla_final <- df_temp[primera_con_datos:ultima_con_datos, ]
df_tabla_final %>%
gt() %>%
tab_header(
title = md("**TABLA N\u00ba 1: DISTRIBUCI\u00d3N DE FRECUENCIAS DE PENDIENTE**"),
) %>%
cols_label(
Li = "Lim. Inf",
Ls = "Lim. Sup",
MC = "Marca Clase (Xi)",
ni = "ni",
hi = "hi (%)"
) %>%
fmt_number(columns = c(Li, Ls, MC), decimals = 3) %>%
fmt_number(columns = hi, decimals = 2) %>%
cols_align(align = "center", columns = everything()) %>%
tab_style(
style = list(cell_fill(color = "#F2F2F2"), cell_text(weight = "bold", color = "#333333")),
locations = cells_column_labels()
) %>%
tab_options(
table.width = pct(100),
data_row.padding = px(5),
table.border.top.style = "solid",
table.border.top.color = "black",
table.border.bottom.style = "solid",
table.border.bottom.color = "black"
)| TABLA Nº 1: DISTRIBUCIÓN DE FRECUENCIAS DE PENDIENTE | ||||
| Lim. Inf | Lim. Sup | Marca Clase (Xi) | ni | hi (%) |
|---|---|---|---|---|
| 0.000 | 2.168 | 1.084 | 47810 | 81.06 |
| 2.168 | 4.335 | 3.251 | 6545 | 11.10 |
| 4.335 | 6.503 | 5.419 | 2375 | 4.03 |
| 6.503 | 8.671 | 7.587 | 1059 | 1.80 |
| 8.671 | 10.838 | 9.754 | 577 | 0.98 |
| 10.838 | 13.006 | 11.922 | 259 | 0.44 |
| 13.006 | 15.173 | 14.090 | 140 | 0.24 |
| 15.173 | 17.341 | 16.257 | 83 | 0.14 |
| 17.341 | 19.509 | 18.425 | 50 | 0.08 |
| 19.509 | 21.676 | 20.592 | 25 | 0.04 |
| 21.676 | 23.844 | 22.760 | 24 | 0.04 |
| 23.844 | 26.012 | 24.928 | 11 | 0.02 |
| 26.012 | 28.179 | 27.095 | 14 | 0.02 |
| 28.179 | 30.347 | 29.263 | 3 | 0.01 |
| 30.347 | 32.514 | 31.431 | 1 | 0.00 |
| 32.514 | 34.682 | 33.598 | 2 | 0.00 |
Se segmentó la Pendiente en el rango de mayor densidad (\(0.00\) a \(8.671\)) para aplicar la regla de Sturges sobre un subconjunto más homogéneo. Este ajuste eliminó la distorsión de los relieves extremos, aumentando la resolución estadística y facilitando la ubicación de las zonas más aptas para la infraestructura.
suppressPackageStartupMessages({
library(gt)
library(dplyr)
})
slope_global <- na.omit(Datos$slope)
slope_filtrada <- slope_global[slope_global >= 0.00 & slope_global <= 8.671]
n_total <- length(slope_filtrada)
K_slope <- floor(1 + 3.322 * log10(n_total))
min_abs <- 0.00
max_abs <- 8.671
breaks_slope <- seq(min_abs, max_abs, length.out = K_slope + 1)
lim_inf_s <- breaks_slope[1:K_slope]
lim_sup_s <- breaks_slope[2:(K_slope+1)]
MC_s <- (lim_inf_s + lim_sup_s) / 2
ni_s <- as.vector(table(cut(slope_filtrada, breaks = breaks_slope, right = FALSE, include.lowest = TRUE)))
hi_s <- (ni_s / n_total) * 100
df_temp <- data.frame(
Li = lim_inf_s,
Ls = lim_sup_s,
MC = MC_s,
ni = ni_s,
hi = hi_s
)
df_temp %>%
gt() %>%
tab_header(
title = md("**TABLA N\u00ba 2: DISTRIBUCI\u00d3N DE FRECUENCIAS DE PENDIENTE**"),
) %>%
cols_label(
Li = "Lim. Inf",
Ls = "Lim. Sup",
MC = "Marca Clase (Xi)",
ni = "ni",
hi = "hi (%)"
) %>%
fmt_number(columns = c(Li, Ls, MC), decimals = 3) %>%
fmt_number(columns = hi, decimals = 2) %>%
cols_align(align = "center", columns = everything()) %>%
tab_style(
style = list(cell_fill(color = "#F2F2F2"), cell_text(weight = "bold", color = "#333333")),
locations = cells_column_labels()
) %>%
tab_options(
table.width = pct(100),
data_row.padding = px(5),
table.border.top.style = "solid",
table.border.top.color = "black",
table.border.bottom.style = "solid",
table.border.bottom.color = "black"
)| TABLA Nº 2: DISTRIBUCIÓN DE FRECUENCIAS DE PENDIENTE | ||||
| Lim. Inf | Lim. Sup | Marca Clase (Xi) | ni | hi (%) |
|---|---|---|---|---|
| 0.000 | 0.542 | 0.271 | 25870 | 44.77 |
| 0.542 | 1.084 | 0.813 | 11723 | 20.29 |
| 1.084 | 1.626 | 1.355 | 6374 | 11.03 |
| 1.626 | 2.168 | 1.897 | 3843 | 6.65 |
| 2.168 | 2.710 | 2.439 | 2509 | 4.34 |
| 2.710 | 3.252 | 2.981 | 1765 | 3.05 |
| 3.252 | 3.794 | 3.523 | 1276 | 2.21 |
| 3.794 | 4.335 | 4.065 | 995 | 1.72 |
| 4.335 | 4.877 | 4.606 | 764 | 1.32 |
| 4.877 | 5.419 | 5.148 | 659 | 1.14 |
| 5.419 | 5.961 | 5.690 | 522 | 0.90 |
| 5.961 | 6.503 | 6.232 | 430 | 0.74 |
| 6.503 | 7.045 | 6.774 | 314 | 0.54 |
| 7.045 | 7.587 | 7.316 | 313 | 0.54 |
| 7.587 | 8.129 | 7.858 | 232 | 0.40 |
| 8.129 | 8.671 | 8.400 | 200 | 0.35 |
Este histograma permite visualizar intuitivamente dónde se concentran las pendientes del terreno, revelando la forma y el sesgo de la distribución. Esta claridad gráfica ayuda a prever la complejidad del movimiento de tierras y valida que el modelo matemático elegido se ajusta correctamente a la realidad del relieve.
slope_completa <- na.omit(Datos$slope)
slope_segmento <- slope_completa[slope_completa >= 0.00 & slope_completa <= 8.671]
n_seg <- length(slope_segmento)
K_sturges <- floor(1 + 3.322 * log10(n_seg))
cortes_seg <- seq(0.00, 8.671, length.out = K_sturges + 1)
par(mar = c(6, 5, 4, 2))
h_slope_seg <- hist(slope_segmento, breaks = cortes_seg, plot = FALSE, right = FALSE)
h_slope_seg$counts <- (h_slope_seg$counts / n_seg) * 100
plot(h_slope_seg,
main = "Gr\u00e1fica N\u00ba 1: Distribuci\u00f3n de Frecuencias de Pendiente",
xlab = "Pendiente del Terreno (°)",
ylab = "Porcentaje (%)",
col = "#B0C4DE",
border = "white",
axes = FALSE,
ylim = c(0, max(h_slope_seg$counts) * 1.2))
axis(2, las = 2, cex.axis = 0.7)
axis(1, at = cortes_seg, labels = sprintf("%.3f", cortes_seg), las = 2, cex.axis = 0.6)
grid(nx = NA, ny = NULL, col = "#D7DBDD", lty = "dotted")
legend("topright",
legend = "Datos Emp\u00edricos",
fill = "#B0C4DE",
border = "white",
bty = "n",
cex = 0.8)Para ganar precisión, se estratificó la curvatura en su rango más denso (\(-0.035\) a \(0.049\)), permitiendo que el modelo t-Student se ajuste mejor a los datos centrales. Estas conjeturas, validadas con pruebas de bondad de ajuste, garantizan un análisis geomorfológico sólido y técnicamente confiable.
suppressPackageStartupMessages(library(MASS))
slope_completa <- na.omit(Datos$slope)
n_total_global <- length(slope_completa)
slope_segmento <- slope_completa[slope_completa >= 0.00 & slope_completa <= 8.671]
n_seg <- length(slope_segmento)
ajuste_e <- suppressWarnings(fitdistr(slope_segmento, "exponential"))
rate_e <- ajuste_e$estimate["rate"]
K_sturges <- floor(1 + 3.322 * log10(n_seg))
cortes_seg <- seq(0.00, 8.671, length.out = K_sturges + 1)
par(mar = c(8, 5, 4, 2))
h_slope_seg <- hist(slope_segmento, breaks = cortes_seg, plot = FALSE, right = FALSE)
h_slope_seg$counts <- (h_slope_seg$counts / n_total_global) * 100
plot(h_slope_seg,
main = "Gr\u00e1fica N\u00ba 2: Distribuci\u00f3n de Frecuencias de Pendiente",
xlab = "",
ylab = "Porcentaje (%)",
col = "#B0C4DE", border = "white", axes = FALSE,
ylim = c(0, max(h_slope_seg$counts) * 1.3))
mtext("Pendiente del Terreno (°)", side = 1, line = 6, cex = 0.8)
x_curva <- seq(0.00, 8.671, length.out = 300)
y_densidad <- dexp(x_curva, rate = rate_e)
ancho_barra <- cortes_seg[2] - cortes_seg[1]
y_curva_hi <- y_densidad * ancho_barra * 100 * (n_seg / n_total_global)
lines(x_curva, y_curva_hi, col = "#C0392B", lwd = 4)
axis(2, las = 2, cex.axis = 0.7)
axis(1, at = cortes_seg, labels = sprintf("%.3f", cortes_seg), las = 2, cex.axis = 0.6)
grid(nx = NA, ny = NULL, col = "#D7DBDD", lty = "dotted")
legend("topright",
legend = c("Datos Emp\u00edricos", "Modelo Exponencial"),
col = c("#B0C4DE", "#C0392B"), lwd = c(8, 4), bty = "n", cex = 0.8)K_val <- length(cortes_seg) - 1
probs_e <- numeric(K_val)
for(i in 1:K_val) {
probs_e[i] <- pexp(cortes_seg[i+1], rate = rate_e) -
pexp(cortes_seg[i], rate = rate_e)
}
probs_e <- probs_e / sum(probs_e)
n_base <- 100
Fo_c <- as.vector(table(cut(slope_segmento, breaks = cortes_seg, right = FALSE))) * (n_base / n_seg)
Fe_c <- probs_e * n_base
chi_calc <- sum((Fo_c - Fe_c)^2 / Fe_c)
chi_crit <- qchisq(0.99, max(1, K_val - 1 - 1))
resultado_chi <- if(chi_calc < chi_crit) "APROBADO" else "RECHAZADO"
pearson_val <- cor(Fo_c, Fe_c) * 100
cat("\n--- RESULTADOS DE VALIDACI\u00d3N PENDIENTE (SLOPE) ---\n")##
## --- RESULTADOS DE VALIDACIÓN PENDIENTE (SLOPE) ---
## Modelo: Exponencial | Rango: 0.00 a 8.671
## Prueba Chi-cuadrado: APROBADO
## Chi-calculado: 12.48 | Chi-crítico: 29.14
## Correlación de Pearson: 97.49 %
library(knitr)
suppressPackageStartupMessages(library(MASS))
slope_seg <- na.omit(Datos$slope[Datos$slope >= 0.00 & Datos$slope <= 8.671])
n_seg <- length(slope_seg)
ajuste_e <- suppressWarnings(
fitdistr(slope_seg, "exponential")
)
rate_e <- ajuste_e$estimate["rate"]
K_val <- floor(1 + 3.322 * log10(n_seg))
cortes_seg <- seq(0.00, 8.671, length.out = K_val + 1)
probs_e <- numeric(K_val)
for(i in 1:K_val) {
probs_e[i] <- pexp(cortes_seg[i+1], rate = rate_e) - pexp(cortes_seg[i], rate = rate_e)
}
probs_e <- probs_e / sum(probs_e)
Fo_c <- as.vector(table(cut(slope_seg, breaks = cortes_seg, right = FALSE))) * (100 / n_seg)
Fe_c <- probs_e * 100
pear_c <- cor(Fo_c, Fe_c) * 100
chi_c <- sum((Fo_c - Fe_c)^2 / Fe_c)
crit_c <- qchisq(0.99, max(1, K_val - 1 - 1))
res_c <- if(chi_c < crit_c) "APROBADO" else "RECHAZADO"
resumen_pendiente <- data.frame(
"Segmento" = "Zona de Acumulaci\u00f3n (0.00 a 8.671)",
"Modelo" = "Exponencial",
"Pearson (%)" = round(pear_c, 2),
"Chi-Calc" = round(chi_c, 2),
"Chi-Crit" = round(crit_c, 2),
"Estado" = res_c
)
resumen_pendiente[nrow(resumen_pendiente) + 1, ] <- c("Autor: Fernando Neira", "", "", "", "", "")
kable(resumen_pendiente,
format = "markdown",
align = "llcccc",
caption = "Tabla No. 3: Resumen de validaci\u00f3n del modelo de probabilidad (Variable Pendiente)")| Segmento | Modelo | Pearson…. | Chi.Calc | Chi.Crit | Estado |
|---|---|---|---|---|---|
| Zona de Acumulación (0.00 a 8.671) | Exponencial | 97.49 | 12.48 | 29.14 | APROBADO |
| Autor: Fernando Neira |
Tras validar que el comportamiento de la pendiente del terreno se ajusta con precisión a un modelo de distribución Exponencial, procedemos a proyectar los escenarios operativos y de diseño estructural para la implementación de los parques solares:
\(Pregunta\) \(1\) : ¿Cuál es la probabilidad teórica de encontrar una zona con una pendiente entre \(0.00\) y \(2.50\)?
\(Pregunta\) \(2\) : Si se instalan \(350\) soportes estructurales en el área de estudio, ¿cuántos de estos caerán en un rango de pendiente aceptable (entre \(0.00\) y \(5.00\)), donde la inclinación permite anclarlos directamente sin gastar en nivelación del terreno?
suppressPackageStartupMessages(library(MASS))
slope_completa <- na.omit(Datos$slope)
n_total_global <- length(slope_completa)
slope_segmento <- slope_completa[slope_completa >= 0.00 & slope_completa <= 8.671]
n_seg <- length(slope_segmento)
ajuste_e <- suppressWarnings(fitdistr(slope_segmento, "exponential"))
rate_e <- ajuste_e$estimate["rate"]
K_sturges <- floor(1 + 3.322 * log10(n_seg))
cortes_seg <- seq(0.00, 8.671, length.out = K_sturges + 1)
ancho_barra <- cortes_seg[2] - cortes_seg[1]
x_curva <- seq(0.00, 8.671, length.out = 300)
y_curva_hi <- dexp(x_curva, rate = rate_e) * ancho_barra * 100 * (n_seg / n_total_global)
par(mar = c(6, 5, 4, 2))
plot(x_curva, y_curva_hi, type = "n",
main = "Gr\u00e1fica N\u00ba 2: Zonas de Probabilidad (Modelo Exponencial)",
xlab = "Pendiente del Terreno (°)",
ylab = "Densidad de Probabilidad",
axes = FALSE,
ylim = c(0, max(y_curva_hi) * 1.2))
x_q2 <- seq(0.00, 5.00, length.out = 100)
y_q2 <- dexp(x_q2, rate = rate_e) * ancho_barra * 100 * (n_seg / n_total_global)
polygon(c(0.00, x_q2, 5.00), c(0, y_q2, 0), col = "#D4E6F1", border = NA)
x_q1 <- seq(0.00, 2.50, length.out = 100)
y_q1 <- dexp(x_q1, rate = rate_e) * ancho_barra * 100 * (n_seg / n_total_global)
polygon(c(0.00, x_q1, 2.50), c(0, y_q1, 0), col = "#5DADE2", border = NA)
lines(x_curva, y_curva_hi, col = "#C0392B", lwd = 3)
axis(2, las = 2, cex.axis = 0.7)
axis(1, at = cortes_seg, labels = sprintf("%.3f", cortes_seg), las = 2, cex.axis = 0.6)
grid(nx = NA, ny = NULL, col = "#D7DBDD", lty = "dotted")
legend("topright",
legend = c("Curva Exponencial",
"P 1: Ideal (0 a 2.5)",
"P 2: Aceptable (0 a 5.0)"),
col = c("#C0392B", "#5DADE2", "#D4E6F1"),
lwd = c(3, 8, 8), bty = "n", cex = 0.8)\(Respuesta\) \(1\): Hay un \(86.93\)% de probabilidad de que el terreno tenga una “Inclinación Ideal” (\(0.000\) a \(2.500\)). Esta condición garantiza la estabilidad natural de los seguidores solares, asegurando una instalación segura y eficiente.
\(Respuesta\) \(2\): De \(350\) estructuras, \(344\) se ubicarán en el “Intervalo Aceptable” (\(0.000\) a \(5.000\)). Esto permite instalarlas con pernos convencionales, eliminando costos extras por nivelación del suelo.
El TLC establece que, dada una muestra suficientemente grande (\(n\) > \(30\)), la distribución de las medias muestrales seguirá una distribución Normal. Esto nos permite estimar la Media Poblacional (\(\mu\)) verdadera utilizando intervalos de confianza.Los postulados de confianza empírica sugieren:
\(P(\bar{x} - E < \mu < \bar{x} + E) \approx 68\%\)
\(P(\bar{x} - 2E < \mu < \bar{x} + 2E) \approx 95\%\)
\(P(\bar{x} - 3E < \mu < \bar{x} + 3E) \approx 99\%\)
Donde el Margen de Error (E) se define como: \[E = \frac{\sigma}{\sqrt{n}}\]
suppressPackageStartupMessages({
library(gt)
library(dplyr)
library(MASS)
})
slope_variable <- na.omit(Datos$slope)
slope_variable <- slope_variable[slope_variable >= 0.00 & slope_variable <= 8.671]
x_bar_s <- mean(slope_variable)
sigma_s <- sd(slope_variable)
n_s <- length(slope_variable)
error_est_s <- sigma_s / sqrt(n_s)
margen_error_s <- 2 * error_est_s
lim_inf_s <- x_bar_s - margen_error_s
lim_sup_s <- x_bar_s + margen_error_s
tabla_tlc_s <- data.frame(
Parametro = "Pendiente Promedio (Slope)",
Lim_Inferior = lim_inf_s,
Media_Muestral = x_bar_s,
Lim_Superior = lim_sup_s,
Error_Estandar = paste0("+/- ", sprintf("%.3f", margen_error_s)),
Confianza = "95% (2*E)"
)
tabla_tlc_s %>%
gt() %>%
tab_header(
title = md("**ESTIMACI\u00d3N DE LA MEDIA POBLACIONAL**"),
subtitle = "Aplicaci\u00f3n del Teorema del L\u00edmite Central (Pendiente)"
) %>%
cols_label(
Parametro = "Par\u00e1metro",
Lim_Inferior = "L\u00edmite Inferior",
Media_Muestral = "Media Calculada",
Lim_Superior = "L\u00edmite Superior",
Error_Estandar = "Error Estimado"
) %>%
fmt_number(
columns = c(Lim_Inferior, Media_Muestral, Lim_Superior),
decimals = 3
) %>%
tab_style(
style = list(cell_fill(color = "#F4ECF7"), cell_text(color = "#5B2C6F", weight = "bold")),
locations = cells_body(columns = Media_Muestral)
)| ESTIMACIÓN DE LA MEDIA POBLACIONAL | |||||
| Aplicación del Teorema del Límite Central (Pendiente) | |||||
| Parámetro | Límite Inferior | Media Calculada | Límite Superior | Error Estimado | Confianza |
|---|---|---|---|---|---|
| Pendiente Promedio (Slope) | 1.216 | 1.228 | 1.241 | +/- 0.013 | 95% (2*E) |
La variable Pendiente fue modelada mediante una Distribución Exponencial, reflejando alta precisión en el relieve del terreno. Con una media muestral de \(1.228\) y aplicando el Teorema del Límite Central, se estima que la media poblacional se sitúa entre [\(1.216\); \(1.241\)] con un \(95\%\) de confianza. Estos resultados permiten estandarizar el diseño de los soportes estructurales y optimizar los costos de nivelación de la planta solar (\(\mu = 1.228 \pm 0.013\)).