R

Python y R: una perspectiva markoviana

R

Hoy he visto

aquí y he escrito

m <- matrix(c(74, 15, 10, 1, 11, 50, 38, 1,
            5, 4, 90, 1, 17, 4, 19, 60),
            4, 4, byrow = TRUE)
m <- m / 100

luego

m %*% m %*% m %*% m %*% m %*% m %*% m %*% m %*% m %*% m %*% m %*% m %*% m%*% m%*% m%*% m%*% m%*% m%*% m %*% m %*% m %*% m %*% m %*% m %*% m %*% m %*% m %*% m %*% m %*% m %*% m%*% m%*% m%*% m%*% m%*% m%*% m
#          [,1]      [,2]      [,3]       [,4]
#[1,] 0.1926676 0.1133218 0.6696203 0.02439024
#[2,] 0.1926647 0.1133206 0.6696245 0.02439024
#[3,] 0.1926638 0.1133202 0.6696258 0.02439024
#[4,] 0.1926675 0.1133218 0.6696205 0.02439025

y finalmente

Gelmaneando

Hoy, gelmaneo así:

bar <- function(n, reps = 1e4){
  foo <- function(n){
    x <- rnorm(n)
    tmp <- t.test(x)
    c(tmp$p.value, abs(mean(x)))
  }

  res <- replicate(reps, foo(n))
  tmp <- t(res)
  tmp <- tmp[tmp[,1] < 0.05,]
  tmp[,2]
}

res <- lapply(c(3, 10, 20, 50, 100), bar)
sapply(res, mean)
#[1] 0.8662636 0.6583157 0.4934551 0.3240322 0.2337086

Resumo:

  • Fabrico un montón de errores de tipo I. Recuérdese: error de tipo I implica artículo publicado.
  • Hago variar el número de sujetos (3, 10, etc.), n.
  • Mido el tamaño (promedio) del efecto, E; el estudio de su distribución, ejercicio para el lector.

Y efectivamente, E es función decreciente de n.

Micromapas

Vienen a ser la versión geo de las sparklines. Por ejemplo,

Notas:

  • El gráfico anterior no es mío. El código (y datos) con el que se generó tampoco. Son de Susana Huedo, exalumna.
  • Está basado (todo hay que decirlo) en código de terceros y debería acordarme de cuál de ellos. Pero no es el caso.

Syberia tiene muy buena pinta [pero...]

R

Echadle un vistazo a Syberia (y me contáis qué tal os va). Tiene muy buena pinta y puede ser útil para produccionalizar código.

[Esto es casi todo; lo que sigue es omitible.]

Sin embargo y sin que necesariamente haga desmerecer a Syberia como tal, en la página arriba enlazada se lee:

In the viewpoint of the author, R is syntactic sugar around LISP, which enables arbitrary computation; Syberia is an attempt to support this conjecture by allowing the construction of arbitrary software projects within the R programming language, thereby finally outgrowing its long-overdue misconception as a statistical tool.

Hoy, como excepción, gritaré y justificaré: ¡Malditos logaritmos!

Dados unos números positivos hay que justificar por que no tomar logaritmos y no al revés. La carga de la prueba recae sobre quien no lo hace.

No obstante:

Tenía unos datos (para cada $latex t$) que siguen (me lo juran) un modelo teórico

$$ \log y \sim k \exp(-at)$$

Existen dos opciones para encontrar los parámetros deseados $latex k$ y $latex a$. El primero, tomando logaritmos y aplicando lm. El segundo, ajustando un modelo no lineal con, p.e., nls.

¿Les dará un patatús a mis excolegas?

R

En Gaussianos publicaron este problema:

En un triángulo acutángulo ABC tenemos que AH, AD y AM son, respectivamente, la altura, la bisectriz y la mediana que parten desde A, estando H, D y M en el lado BC. Si las longitudes de AB, AC y MD son, respectivamente, 11, 8 y 1, calcula la longitud del segmento DH.

El gráfico, construido por uno de los respondedores, Ignacio Larrosa Cañestro, es este:

¿Cómo preambuláis vuestros .Rmd?

R

Yo nunca me había preocupado demasiado de eso (salvo en las presentaciones, para la que uso revealjs y que son otra historia), pero el otro día me pasaron y vi el efecto de

---
title: "Mi título"
author: "Yo Me Mí Conmigo"
date: '`r format(Sys.Date(), "%B %d, %Y")`'
output:
  html_document:
    toc: true
    toc_float:
      collapsed: false
      smooth_scroll: false
    theme: united
    highlight: tango
---

y las cosas van a cambiar para siempre.