Cuidado con los $

R

El otro tropezamos con el siguiente artefacto:

a <- list(aa = 12, bb = 14)
is.null(a$a)
#[1] FALSE
a$a
#[1] 12

No es un bug de R, por que la documentación reza:

x$name is equivalent to x[[“name”, exact = FALSE]]

Y se pueden constrastar:

a[["a", exact = FALSE]]
a[["a", exact = TRUE]]

Comentarios:

  • Odio muchísimo los bugs que no son bugs porque están documentados en el la nota ‡2.a.(c), párrafo §23.3 de la sección 14 de un manual oscuro.
  • Odio mucho al os gilipollas que se complacen en mandarte a leer manuales.
  • Odio mucho las violaciones del principio de mínima sorpresa.
  • Soy consciente de que R es, fundamentalmente, una plataforma de análisis interactivo y no (o solo subsidiariamente) un lenguaje de programación.
  • Soy consciente de que muchos de los defaults de R se decidieron antes de que se popularizasen los completadores de comandos.

Un artículo que está esperando a ser escrito

Alguno de mis lectores, supongo, estará metido en ese mundo de ir escribiendo cosas y cosechado méritos, impactos y anecosas para salir del precariado y pillar moscosos. Que dejen de leer. Es una orden.

A aquellos que tengan tiempo y talento los invito a escribir el artículo titulado Temperaturas umbrales de disparo de la mortalidad atribuible al frío y al calor en España en el periodo 2007-2017.

Se trata, esencialmente, de aggiornar metodológica, gráfica y sintácticamente esta cosa viejuna y manifiestamente mejorable en todas las dimensiones concebibles.

¿Cómo se mide el número medio de días para pagar una factura?

[Esta entrada tiene una errata de la que doy fe aquí.]

Pues casi seguro que mal. Por eso hay que enfrentarse a noticia como esta con escepticismo. En el cuerpo del artículo aparece el gráfico

Que invita a preguntarse cosas como: ¿habrán tenido en cuenta las facturas aún no pagadas? (Es decir, las censuradas, en la nomenclatura del análisis de la supervivencia). Si se ignoran, el tiempo se estará infraestimando seriamente.

La magnitud de la sequía

Cuando tienes una serie temporal al uso (sin entrar a definir qué es eso), uno puede aplicar descomposiciones tmabién al uso, como stl, para extraer tendencia y estacionalidad, de la forma

como en esta entrada previa.

Lluvia.

La serie de la lluvia es otra cosa. Uno ve si llueve o no llueve (típicamente no). Lo que uno no ve es la probabilidad, que varía a lo largo del año, de que llueva. Pasa lo mismo con monedas (uno ve caras o cruces, no la probabilidad de cara), clientes que compran (uno ve si compra o no, no la probabilidad de compra), etc. Pero la probabilidad existe y en estimarla consiste frecuentemente el trabajo de algunos.

Simpson, de nuevo: ahora con la mortalidad

La tasa de mortalidad ha crecido sustancialmente en los dos últimos años (tres, de hecho: el INE no publica datos para el 2017 todavía, pero yo los he y fe doy):

Sin embargo, la tasa de mortalidad para cada cohorte de edad decrece. Muestro las de las cohortes de edades múltiplas de cinco:

De nuevo, Simpson.

Nota: las cifras vienen expresadas en defunciones por cada 1000 habitantes. Los datos salen de aquí.

De nuevo, la falacia del fiscal (aplicada a fiscales que fenecen)

Cosas altamente improbables ocurren a diario. Es altamente improbable que no ocurran eventos altamente improbables.

A veces te ocurre un evento altamente improbable cerca de ti, como, por ejemplo, que el número de tu billete de lotería coincide con el que cantan el día 22 de diciembre unos niños en la tele. Y todo bien. A veces, van y se mueren un par de críos en el sitio donde trabajas y te empapelan malamente.

Antropocentrismo cansino

Es muy cansino. No hay debate sobre big data, inteligencia artificial o similar en el que no pase: de repente lo captura alguien (con pinta de no haber tirado una maldita línea de código en la vida) llevándoselo al tema con el que asustan a las porteras: ¡oh, oh, oh, la protección de datos!, ¡la nueva normativa europea! Que si Facebook sabe lo que hiciste, que si Google conoce tus amigos, que si…

Neutralidad de la red: ¿importa?

Mi opinión, en tanto que nadie me dé argumentos para reconsiderarla, es que no.

La neutralidad de la red es un principio por el cual los sistemas que gestionan internet (rúters, etc.) deben tratar por igual a todos los paquetes que les llegan, sin discriminarlos por origen, contenido, protocolo, etc. Estupendo.

Se oponen a ella proveedores de servicios de internet, que dizque quieren lanzar ofertas como las que denuncia este tuit en términos hiperdramáticos:

Más sobre correlaciones espurias y más sobre correlación y causalidad

Hoy toca esto:

Se trata de una invitación para leer el artículo Los picos de contaminación coinciden con un aumento radical en los ingresos hospitalarios, un cúmulo de desafueros epilogados por el ya habitual

Los resultados de esta investigación tienen puntos en común con la metodología científica aunque en ningún momento tendrán la misma validez ni tampoco es su intención que la tenga.

dbf · xlsx · pdf

R

Me escriben pidiendo consejo sobre cómo leer datos contenidos en (una serie larga de) ficheros en formatos .dbf, .xlsx (con un formato extraño) y .pdf.

.dbf

No tengo ni curiosidad por averiguar de dónde proceden. Simplemente,

library(foreign)
res <-read.dbf("R0010.DBF")

funciona de maravilla.

.xlsx

Estos sí que sé de dónde vienen (y me guardo la opinión). El problema aquí no era leer directamente tablas contenidas en hojas sino ir extrayendo celdas y rangos de hojas. Así que:

Arqueólogos bayesianos

Se ve que hay arqueólogos bayesianos. Un problema con el que se encuentran es que tropiezan con cacharros antiguos y quieren estimar su antigüedad.

Así que prueban distintos métodos (¿químicos?), cada uno de los cuales con su precisión, y acaban recopilando una serie de estimaciones y errores. Obviamente, tienen que combinarlas de alguna manera.

El modelo más simple es

$$ M_i \sim N(\mu, \sigma_i)$$

donde $latex \mu$ es la antigüedad (desconocida) del artefacto y los $latex \sigma_i$ son las varianzas distintas de los distintos métodos de medida, que arrojan las estimaciones $latex M_i$.

La viejunísima escuela

Leí esto. Me asaltó la pregunta obvia, la manifiesta, la fundamental, la sine qua non.

Si queréis, echadle un vistazo y podréis descubrirla por vosotros mismos. Y para evitar el spoiler de un golpe de vista involutario al párrafo siguiente, intercalo la foto de un lindo gatito.

Pues sí, el señor Escohotado afirma que:

En el año dos mil tres un profesor de Harvard, McCormick, un medievalista, digitalizó, escaneó todos los documentos medievales del siglo VI al siglo XIII, los pasó por un programa adecuado y les preguntó cosas tan sencillas como ¿cuántas veces aparece la palabra “negotiator”?

¿Primeros principios para la estadística descriptiva?

Hay disciplinas que parecen puras colecciones de anécdotas, recetarios ad hoc y listas de contraejemplos. Tal se ha predicado, por ejemplo, de la economía conductual.

Pero, ¿pueden reconstruirse a partir de primeros principios? Si se ha ensayado con la economía conductual, ¿por qué no intentarlo con nuestra modestísima estadística descriptiva?

Un caso particular: cuando de una variable aleatoria calculo y escribo o represento su media y su desviación estándar, de alguna manera estoy modelizándola como una distribución normal. Esta modelización puede ser explícita, aunque casi siempre es implícita. Si la variable aleatoria tiene una distribución muy alejada de la normal, habrá quien proteste: que si la media es engañosa, que si… Pero, ¿por qué habría de ser engañosa en este caso y no en otro? Precisamente por la (incorrecta) modelización implícita: estaría usando lo de la normal donde no aplica.