Codigo - Multivariate Methods: Maldicion de la dimensionalidad
ANOVA para bloques completos.
Scripts multivariados
Maldicion de la dimensionalidad
ANOVA para bloques completos.
# --- La Maldición de la Dimensionalidad: El problema del Matamoscas ---
# Autor: Modelo de IA
# Descripción: Este script calcula y grafica cómo la probabilidad de
# atrapar una mosca en un espacio de lado 1 con un matamoscas
# de lado 0.8 disminuye drásticamente al aumentar las dimensiones.
# --- 1. Limpiar el entorno y cargar librerías necesarias ---
rm(list = ls())
graphics.off()
library(ggplot2)
library(dplyr)
# --- 2. Definir los parámetros del problema ---
lado_espacio <- 1 # El espacio total tiene lado 1 (Longitud, Área, Volumen...)
lado_matamoscas <- 0.8 # El matamoscas tiene lado 0.8
# --- 3. Calcular la probabilidad de éxito ---
# La probabilidad de atrapar la mosca es el cociente de volúmenes.
# Volumen del matamoscas / Volumen del espacio total.
# Para un hipercubo, el volumen es lado^dimension.
# Como el espacio total es 1^d = 1, la probabilidad es simplemente (lado_matamoscas)^d.
dimensiones <- 1:25 # Vamos a probar desde 1 hasta 25 dimensiones
# Calculamos la probabilidad para cada dimensión
probabilidades <- lado_matamoscas^dimensiones
# --- 4. Crear un data frame para graficar con ggplot2 ---
df_resultados <- data.frame(Dimension = dimensiones, Probabilidad = probabilidades)
# --- 5. Visualizar los resultados ---
# Creamos el gráfico
p <- ggplot(df_resultados, aes(x = Dimension, y = Probabilidad)) +
geom_line(color = "blue", linewidth = 1) + # Línea azul para la tendencia
geom_point(color = "red", size = 2) + # Puntos rojos para cada dimensión
scale_x_continuous(breaks = seq(0, 25, 5)) + # Personalizar eje X
scale_y_continuous(limits = c(0, 1), breaks = seq(0, 1, 0.1)) + # Eje Y de 0 a 1
labs(
title = "La Maldición de la Dimensionalidad: El Problema del Matamoscas",
subtitle = paste("Probabilidad de atrapar la mosca en un espacio de lado 1 con un matamoscas de lado",
lado_matamoscas),
x = "Número de Dimensiones",
y = "Probabilidad de Atrapar la Mosca (Volumen Relativo)",
caption = "La probabilidad decae exponencialmente: P = (0.8)^d"
) +
theme_minimal() +
# Añadir una anotación para ver el valor en 3D
annotate("point", x = 3, y = 0.8^3, color = "darkgreen", size = 3) +
annotate("text", x = 5, y = 0.8^3,
label = paste("3D: Prob =", round(0.8^3, 3)),
hjust = 0, color = "darkgreen")
# Mostrar el gráfico
print(p)
# --- 6. Mostrar los primeros valores para que se vea la caída ---
cat("\n--- Probabilidades de atrapamosca en las primeras dimensiones ---\n")
df_resultados %>%
filter(Dimension <= 10) %>%
print()
# --- 7. Reflexión: ¿Qué significa esto en la práctica? ---
cat("\n--- Interpretación ---\n")
cat("En 1 dimensión (una línea de 1m), un matamoscas de 0.8m cubre el 80% del espacio. ¡Muy fácil!\n")
cat("En 2 dimensiones (un cuadrado de 1x1), cubres un 64% (0.8*0.8). Sigue siendo factible.\n")
cat("En 3 dimensiones (una habitación de 1x1x1), cubres un 51.2%. Justo la mitad.\n")
cat("En 10 dimensiones, la probabilidad es de", round(0.8^10, 5), ". ¡Menos del 11%!\n")
cat("En 20 dimensiones, la probabilidad es prácticamente 0 (", round(0.8^20, 10), ").\n")
cat("\nConclusión: En espacios de alta dimensión, todo está 'lejos' o en los bordes.\n")
cat("El volumen se concentra en una fina cáscara cerca de la superficie.\n")Lenguaje: RDescargar script
Notebooks de analisis multivariado
ANOVA en bloques
Implementacion de disenos en bloques.
Comparaciones multiples en RCBD
Contrastes post-hoc para tratamientos.
Repositorios de metodos multivariados
Repositorio disenos en bloques
Material de RCBD con ejemplos.
Banco de practicas RCBD
Ejercicios y guias de interpretacion.