La distribución lognormal es la exponencial de una distribución normal. Su media, Wikipedia dixit, es $latex \exp(\mu + \sigma^2 /2)$.
Dada una muestra de la distribución lognormal (y supuesto, por simplificar, $latex \mu=0$), podemos calcular
- su media y
- una estimación de su $latex \sigma$ y calcular $latex \exp(\sigma^2 /2)$
y uno pensaría que los valores deberían ser similares. Mas pero sin embargo,
library(ggplot2)
set.seed(123)
sigmas <- seq(1, 10, by = 0.1)
res <- sapply(sigmas, function(sigma){
a <- exp(rnorm(1e6, 0, sigma))
mean(a) / exp(var(log(a))/2)
})
tmp <- data.frame(sigmas = sigmas, medias = res)
ggplot(tmp, aes(x = sigmas, y = medias)) +
geom_point() + geom_smooth()
El código es
library(httr)
library(plyr)
base.url <- "http://www.infobolsa.es/1/wtdb/ChartIntraday"
res <- POST(base.url,
body = list(mv = "M SAN",
date = "20160518",
compressionMult = 1,
isSession = 1))
dat <- content(res, as = "parsed",
type = "application/json")
dat <- dat$answer$LST$TV$T09
dat <- ldply(dat, unlist)
Los viejos del lugar recordarán esto, donde agrupo trayectorias usando k-medias a pelo.
El paquete kmlShape
usa la distancia de Fréchet para hacer algo parecido: buscar trayectorias geométricamente similares.
El código es
library(kmlShape)
library(tseries)
library(zoo)
library(XML)
library(reshape)
library(ggplot2)
foo <- function(
simbolo, final = Sys.time(),
profundidad = 30 * 24 * 3600) {
precios <- get.hist.quote(
instrument= simbolo,
start = final - profundidad,
end = final, quote=c("AdjClose"),
provider="yahoo", origin="1970-01-01",
compression="d", retclass="zoo")
colnames(precios) <- simbolo
return(precios)
}
# lista de símbolos del ibex
tmp <- readHTMLTable("http://finance.yahoo.com/q/cp?s=%5EIBEX+Components")[[5]]
tmp <- as.character(tmp$V1[-(1:6)])
ibex <- do.call(merge,
sapply(simbolos, foo, simplify = F))
ibex.scaled <- data.frame(t(scale(ibex)))
tmp <- cldsWide(ibex.scaled)
res <- kmlShape(tmp, 4, toPlot = "none")
tmp <- data.frame(
id = rownames(ibex.scaled),
cluster = res@clusters, ibex.scaled)
tmp <- melt(tmp, id.vars = c("id", "cluster"))
tmp$fecha <- as.Date(tmp$variable, "X%Y.%m.%d")
ggplot(tmp, aes(x=fecha, y=value, group=id)) +
geom_line() + facet_wrap(~cluster)
Por su interés y oportunidad, reproduzco aquí y en su idioma original (la parque que nos es más relevante de) un breve editorial de Simon Baptist, economista jefe de The Economist Intelligence Unit.
Así reza:
This week we had some apparent good news with [Indian] GDP growth at the end of 2014 revised upward to 7.5% but, looking closer, a large part of the good performance is due to changes in the way that GDP is calculated. These changes are welcome, as they better reflect the structure of the current Indian economy, but remind me that the mind-numbingly boring issues of price deflators and sectoral weights are actually much more important to economic statistics than issues of reform or central bank behaviour. Although it is less exciting, we economic commentators really should spend more time focusing on where our numbers come from rather than breathlessly extolling changes that are smaller than the likely measurement error. Either way, really understanding the context of data and forecasts is critical to making good business decisions.
El otro día hablaba con una colega sobre una charla a la que habíamos asistido. Yo le decía que sí, que estaba bien, pero que todo lo que habían contado era mentira. Debí haber sido más preciso y decir que no era verdad, que es distinto. Pero las canapescas circunstancias no eran propicias para el distingo. Mi interlocutora me escuchaba, pienso, entre sorprendida e incrédula. Todavía está en la edad en la que hay que creérselo todo —sí, esa edad y esa obligación existe— y tiempo tendrá de dejarse envenenar por el nihilismo. Es lo suficientemente lista como para eso.
Trataré de usar pocas hoy. El otro día vi
aquí. Me recordó que uno de mis proyectos abandonados sine die es el de estimar la rentabilidad real de productos financieros en función del número de palabras en sus correspondientes folletos.
Nota: curioso el gráfico anterior. Una de las variables es un stock y la otra es un flujo.
Otra nota: ahora que veo el gráfico me acuerdo de esto. Superpones dos funciones más o menos monótonas en una gráfica de doble escala y ya tienes la entrada/artículo del día.