Estadística

Mínimos cuadrados con restricciones

Sí, había restricciones. No me preguntéis por qué, pero los coeficientes tenían que ser positivos y sumar uno. Es decir, buscaba la combinación convexa de cuatro vectores que más se aproximase a y en alguna métrica razonable. Y lo resolví así:

# prepare constrained optimization

y <- dat.clean$actual
x <- t(dat.clean[,2:5])

# target function: L2 first, then other metrics

L2 <- function(coef){
  sum(abs((y - colSums(x * coef)))^1.5)
}

# restrictions: coefs > 0, sum(coefs) ~ 1

ui <- rbind(diag(4), c(-1,-1,-1,-1), c(1,1,1,1))
ci <- c(0,0,0,0,-1.000001,0.999999)

theta <- rep(0.25, 4)

best.coef <- constrOptim(theta, L2,
  grad = NULL, ui = ui, ci = ci)

coefs <- best.coef$par

Objetos aparte de x e y, hay:

Errores de tipo M y de tipo S

A los estadísticos se nos acusa en ocasiones de contestar preguntas tontas en las que nadie está interesado.

(Nota: de alguna manera conseguí el artículo al que se refiere el enlace anterior; pero ahora no veo que exista ninguna copia libre por ahí. Si alguien la consigue, por el bien del resto de los lectores, que me avise o que lo haga saber en los comentarios).

A lo que iba. Muchos estadísticos tienen el cerebro reprogramado para tratar de no cometer los llamados errores de tipo I y errores de tipo II (y para ello tratan de estimar una cosa de dudosa utilidad, $latex P(D|H)$, donde $latex D$ son los datos y $latex H$ es cierta hipótesis (que, generalmente, a nadie interesa y que es más difícil de plantear correctamente de lo que parecería).

¿Dónde estudiar el curso puente hacia la licenciatura en estadística?

Casi siempre que escribo aquí lo hago para contar algo. Creo que por primera vez creo que voy a usar esta plataforma para pedir consejo a mis lectores.

El caso es el siguiente. Tengo un conocido —que me ha pedido que no divulgue su nombre— que estudió en su día la diplomatura de estadística. Lleva años trabajando distintas cosas más o menos próximas al asunto de sus estudios e incluso hizo un máster de algo. Pero el bendito plan Bolonia lo ha desdiplomado: me cuenta que todo lo que cursó de COU en adelante es papel mojado.

"Accurate", acurado, preciso y todas esas cosas

Tenía un profesor de estadística que traducía accurate por acurado. Aún recuerdo esas sesiones insoportables con aquel señor que era lo contrario que Hans Rosling.

No hace mucho vine a descubrir que acurado existe en español. No obstante, significa otra cosa: cuidadoso y esmerado.

Algunos amigos me recomendaban preciso. La verdad, me gusta esta traducción. Pero bien podría ser un falso amigo. En inglés, precision tiene que ver con la varianza y accurate con el sesgo.

El primer DataBeers de Madrid, el martes en MartinaCocina

Este martes 6 de mayo tendrá lugar el primer encuentro de DataBeers de Madrid. A las 19:30 de la tarde, en MartinaCocina (plaza de Cascorro, 11), habrá minicharlas relacionadas con el mundo de los datos y cervezas.

mad_data_beers

El programa, que incluye a algunos viejos conocidos, es el siguiente:

Todo el mundo habla de cadenas de Markov

Todo el mundo habla últimamente de cadenas de Markov. ¿No os habéis dado cuenta? ¿O seré yo el que saca a relucir el asunto venga o no al caso? Sea que se haya puesto de moda o que esté mi misma obsesión por el asunto sesgando mi impresión sobre sobre (me encanta escribir dos preposiciones seguidas) lo que la gente habla, es el caso que el otro día me comprometí a escribir sobre

Reponderación de componentes: un ejemplo

Esta entrada es la continuación de La escala natural de la varianza. En ella vimos cómo los componentes de un PCA pueden tener un peso que pudiera no guardar relación con su importancia práctica.

Si uno quiere trabajar con las principales componentes de un PCA sobre unos datos, puede que la escala sea irrelevante (p.e., si quiere utilizar modelos lineales). Pero hay casos egregios en los que no sucede así.

Una cosa que me irrita de muchos artículos de estadística

Hay una cosa que encuentro irritante en muchos artículos de estadística. Supongamos que existe una técnica A y que invento una técnica B. Entonces escribo un artículo en el que hablo de A, describo B, pruebo si procede algún teorema y, finalmente, me dispongo a compararlo con A.

Naturalmente, tanto A como B tienen hipótesis de partida: que las observaciones sean iid, que sean normales,…

Lo natural sería crear datos artificiales de acuerdo con las hipótesis subyacentes de A y comparar sobre ellos ambas técnicas. Además, tal vez, crear conjuntos de datos estresados para comparar A y B fuera del área de confort de A. Pero siempre utilizando datos en los que se conoce la verdad, es decir, el nivel de ruido, la intensidad de la señal, la correlación entre las variables, etc. Eso solo se consigue con datos artificiales, creados por nosotros.

La escala natural de la varianza

Supongo que lo que voy a contar hoy es conocido de muchos de mis lectores. Desafortunadamente, uno tropieza con más frecuencia de lo deseable con quienes no lo son. (Eso sí, uno de los mayores placeres de esta vida es coincidir con alguien que te reconoce y te dice: “¿tú tienes un blog que se llama datanalytics, ¿verdad?”; pero esa es otra historia).

Al grano.

Supongamos que tenemos un sistema con sensores que miden la temperatura (5) y la presión (2) en diversos puntos. Los dejamos recoger datos durante 100 periodos y obtenemos

Análisis factorial e ideas que se resisten a morir

Estoy escribiendo mucho sobre métodos de reducción de la dimensionalidad estos días. Digamos que son gajes del oficio. Espero no resultar repetitivo.

La cuestión que me empuja a escribir hoy es que algunos a mi alrededor insisten, insisten e insisten en las bondades del análisis factorial y lo oportuno de su aplicación a un problema sobre el que no voy a dar más detalles. Es una técnica que jamás estudié propiamente y con la que el poco contacto que he tenido se ha limitado a echar una mano a algunos clientes en el pasado en algún análisis.

The Elements of Statistical Craftsmanship

En How Statistics lifts the fog of war in Syria se describe una solución al problema de estimar el número de víctimas en cierto lance de la guerra de Siria. Lo complicado del problema es que existen diversos recuentos independientes y las víctimas pueden aparecer en todos, alguno o ninguno.

Me llama la atención que el método utilizado sea el de los bosques aleatorios (en particular, el randomForest de R). No sabría cómo utilizarlo para resolver este problema. Tampoco he tenido tiempo para entrar en los detalles.

Varimax: lo que se gana, lo que se pierde

Hoy hablaremos de exploratory factorial analysis y en particular aprovecharé para dejar constancia de que dejo resuelta una duda que siempre me ha dado pereza resolver: qué se pierde —lo que se gana ya nos lo han contado por doquier— al realizar una rotación varimax.

Comencemos. Primero, voy a realizar un análisis factorial (exploratorio) basándome en ?varimax:

fa <- factanal( ~., 2, data = swiss, rotation = "none")
fa

# Call:
#   factanal(x = ~., factors = 2, data = swiss, rotation = "none")
#
# Uniquenesses:
#   Fertility      Agriculture      Examination        Education         Catholic Infant.Mortality
# 0.420            0.492            0.270            0.005            0.061            0.960
#
# Loadings:
#   Factor1 Factor2
# Fertility        -0.674   0.356
# Agriculture      -0.648   0.297
# Examination       0.713  -0.471
# Education         0.997
# Catholic         -0.178   0.953
# Infant.Mortality -0.104   0.169
#
# Factor1 Factor2
# SS loadings      2.419   1.373
# Proportion Var   0.403   0.229
# Cumulative Var   0.403   0.632
#
# Test of the hypothesis that 2 factors are sufficient.
# The chi square statistic is 20.99 on 4 degrees of freedom.
# The p-value is 0.000318

Usando factanal he creado dos factores sobre el conjunto de datos swiss y he optado por no usar nigún tipo de rotación.

Componentes principales para quienes cursaron álgebra de primero con aprovechamiento

Quienes cursaron su álgebra de primero con aprovechamiento —los que no, pueden ponerse al día en 3:47 minutos— aprendieron que una matriz $latex X$ puede descomponerse de la forma

$$ \mathbf{X} = \mathbf{UDV}$$

donde $latex \mathbf{U}$ y $latex \mathbf{V}$ son matrices ortonormales y $latex \mathbf{D}$ es diagonal. Si los elementos de la diagonal de $latex \mathbf{D}$ son $latex d_1>d_2>\dots$ y los últimos son pequeños, entonces

$$ \mathbf{X} \approx \mathbf{UD_0V}$$

donde $latex \mathbf{D_0}$ es la matriz en la que se han sustituido los $latex d_i$ despreciables por ceros. Si $latex \mathbf{D_0}$ tiene m elementos diagonales no nulos, solo hay m columnas de $latex \mathbf{U}$ y m filas de $latex \mathbf{V}$ que juegan un papel efectivo en la proximación anterior. Por lo tanto se puede reescribir de la forma