R

Aún más sobre propagación de errores (y rv)

[Menos mal que se me ha ocurrido buscar en mi propio blog sobre el asunto y descubrir —no lo recordaba— que ya había tratado el asunto previamente en entradas como esta, esta o esta.]

El problema de la propagación de errores lo cuentan muy bien Iñaki Úcar y sus coautores aquí. Por resumirlo: tienes una cantidad, $latex X$ conocida solo aproximadamente en concreto, con cierto error e interesa conocer y acotar el error de una expresión $latex f(X)$.

Mi apuesta para el larguísimo plazo: Julia

  • Larguísimo, arriba, significa algo así como 10 o 20 años. Vamos, como cuando comencé con R allá por el 2001.
  • R es, reconozcámoslo, un carajal. Pocas cosas mejores que esta para convencerse.
  • No dejo de pensar en aquello que me dijo un profesor en 2001: que R no podría desplazar a SAS porque no tenía soporte modelos mixtos. Yo no sabía qué eran los modelos mixtos en esa época pero, desde entonces, vine a entender y considerar que “tener soporte para modelos mixtos” venía a ser como aquello que convertía a un lenguaje para el análisis de datos en una alternativa viable y seria a lo existente. Y mirad esto.
  • Obviamente, lo de los modelos mixtos no es más que una metáfora. Realmente significa algo así como “el sistema X tiene muchas cosas y su alternativa, Y, es un mero juguete”. Pero no hay nada que impida que Y comience a implementar todo aquello que le falta. Además, mucho más rápida y eficientemente. P.e., ¿cuánto tardó R en dotarse de su gramática de los gráficos? Pues bien, Juilia ya los tiene. (¿Cómo se dice leapfrog en español?)
  • Dicho de otra manera, R ha sido el estado del arte en computación estadística en los últimos años. Ha avanzado por prueba y error. Pero ahora, cualquier rival ya sabe qué tiene que hacer exactamente para llegar a donde está R.
  • Julia corre sobre LLVM. Es decir, que se beneficia automáticamente de cualquier mejora realizada sobre la máquina virtual (si es que se me permite llamar así a LLVM).
  • Esta semana he estado programando en C unas rutinas que tienen que ser llamadas desde R. Pero, ¿no sería el mundo más hermoso no tener que cambiar de lenguaje para tener rendimiento de C?
  • Arriba comparo R y Julia como extremos de un arco (en el que a la izquierda de R quedan aún irrelevancias como SAS o SPSS). Python ocupa una posición intermedia entre ambos. Desde un punto de vista meramente técnico, si alguna dimensión es Python mejor que R, Julia es todavía mejor que Python. Salvo, de nuevo, la cantidad de flecos y cascabeles de los que ya dispone Python y que todavía no están presentes en Julia. Pero, como se ha dicho arriba, desde la perspectiva del larguísimo plazo, es una objeción irrelevante que apunta a un estado transitorio de las cosas.

Y supongo que podría seguir.

PCA robusto

Esta semana he descubierto el PCA robusto. En la frase anterior he conjugado el verbo en cursiva porque lo he pretendido usar con un significado que matiza el habitual: no es que haya tropezado con él fortuitamente, sino que el PCA robusto forma parte de esa inmensa masa de conocimiento estadístico que ignoro pero que, llegado el caso, con un par de clicks, una lectura en diagonal y la descarga del software adecuado, puedo incorporarlo y usarlo a voluntad.

Todavía más sobre las proyecciones de población a largo plazo del INE

Ese es otro capítulo más de lo que se está convirtiendo en toda una saga en este blog: véase esto, esto, esto o los enlaces de todas esas entradas. El presente está motivado por parrafitos como

No obstante, en términos absolutos los aumentos se concentrarán, sobre todo, en la Comunidad de Madrid (donde residirán 614.049 personas más que ahora) […]

y otros del mismo cariz que pueden encontrarse en el documento España 2050 recientemente publicado.

Un viejo truco para que R vuele

R

Existe un viejo truco —mas no por ello conocido— para que R vuele. Lo aprendí en una conferencia de uno de los padres de R (aunque ya no recuerdo quién era) en la primera década del siglo. El problema que tenía entre manos era el de ajustar unos cuantos miles de regresiones logísticas. Además de hacer uso de los métodos de paralelización, aún muy rudimentarios en la época, uno de los trucos más efectivos que utilizaba era el de desnudar las funciones.

Sobre sumas de cuadrados de normales con varianzas desiguales

En mi entrada anterior mencioné cómo la suma de cuadrados de normales, aun cuando tengan varianzas desiguales, sigue siendo aproximadamente $latex \chi^2$. Es el resultado que subyace, por ejemplo, a la aproximación de Welch que usa R por defecto en t.test. Puede verse una discusión teórica sobre el asunto así como enlaces a la literatura relevante aquí.

Esta entrada es un complemento a la anterior que tiene lo que a la otra le faltan: gráficos. Al fin y al cabo, es un resultado que se prueba a ojo: efectivamente, la suma de […] tiene aspecto de $latex \chi^2$, determinemos su parámetro.

¿Dónde son más frecuentes las muestras de una distribución en dimensiones altas?

Esta es una cosa bastante contraintituiva. Uno diría que en la moda, pero no es exactamente así.

Veamos qué pasa con la distribución normal conforme aumenta la dimensión.

En una dimensión son más frecuentes los valores próximos al centro:

hist(abs(rnorm(10000)), breaks = 100,
    main = "distribución de la distancia al centro")

Pero en dimensiones más altas (p.e., 10), la cosa cambia:

library(mvtnorm)
muestra <- rmvnorm(10000, rep(0, 10),
    diag(rep(1, 10)))
distancias <- apply(muestra, 1,
    function(x) sqrt(sum(x^2)))
hist(distancias, breaks = 100,
     main = "distribución de la distancia al centro")

Hay mil motivos para criticar una regresión "trucha", pero una R² baja no es uno de ellos

Todo esto arranca con el tuit:

Esa gráfica, extraída de un documento de la OCDE, creo, fue uno de los argumentos esgrimidos por JR Rallo para defender cierta postura que no viene al caso. Lo relevante para estas páginas es que fue contestado y protestado por muchos —de algunos de los cuales, dada su autoproclamada condición de divulgadores científicos, cabría esperar más— en términos exclusivamente de lo pequeño de la R².

Separación perfecta en el modelo de Poisson

El asunto de la separación perfecta en el modelo logístico es sobradamente conocido. Solo quiero añadir al respecto dos cosas que no se suelen decir:

  • Es un dolor que solo duele a los frecuentistas que no usan regularización (y van quedando cada vez menos de esos).
  • Que no es malo sino bueno: ¿qué cosa mejor que tus datos puedan responder categóricamente las preguntas que les planteas (supuesto, claro, está, un N suficientemente grande).

Lo que es menos conocido es que el problema de la separación perfecta también puede afectar a la regresión de Poisson.

Análisis de eventos recurrentes

He sido fan del análisis de los eventos recurrentes desde antes incluso de saber que existía tal cosa formalmente.

Es una extensión del análisis de la supervivencia donde resucitas y vuelves a morirte a lo Sísifo. Es decir, en el análisis de la supervivencia, te mueres y ya; por eso, si quieres extender el análisis de la supervivencia a asuntos tales como compras de clientes es necesario usar el calzador muy heterodoxamente.