La distribución exponencial es una distribución especialmente importante en estadística. Sirve para modelizar el tiempo que transcurre entre dos eventos independientes, y durante los cuales transcurren, por término medio, el mismo tiempo. También se la reconoce por ser la otra cara de la moneda de los procesos de Poisson, de los que hablaré en otro momento.
La distribución exponencial es una distribución continua (digámoslo rápido: el tiempo que transcurre entre dos eventos es un número real, con potencialmente infinitos decimales), que se define por la fórmula (vía wikipedia):
Esto básicamente quiere decir que la distribución exponencial empieza a operar a partir de cero (los tiempos negativos tampoco tienen sentido aquí), y su forma es:
Para los diferentes valores, vemos que a medida que el valor de λ aumenta, la función de densidad se hace más picuda, lo cual significa que la probabilidad se concentra en los primeros intervalos de tiempo. En realidad, el valor de λ determina la media y varianza de esta distribución.
Por su lado, la función de distribución (es decir, el acumulado anterior, que se obtiene calculando la integral de la fórmula anterior), es:
Y su fórmula:
Lo cual puedes comprobar si integras la función anterior.
[math]x=\frac{-ln(u)}{\lambda}[/math]
[d3-link]
[/d3-link]
Puedes ver la forma que tiene un histograma (D3.js) al simular 500 valores de una Exponencial (con valor λ=0.5):[d3-source canvas="chart"]
var
svg = null,
bars = null,
generator = function() {
var
lambda = 0.5,
simulations = 500,
barWidth = 9,
barsScale = d3.scale.linear()
.domain([0, 10 / lambda])
.range([0,29]);
barXScale = d3.scale.linear()
.domain([0, 10 / lambda])
.range([0,270]);
var dataset = exponentialGen(lambda, simulations, barsScale),
barYScale = d3.scale.linear()
.domain([0, d3.max(dataset, function(d) { return d;})])
.range([270, 0]),
yAxis = d3.svg.axis()
.scale(barYScale)
.orient("left")
.ticks(5),
xAxis = d3.svg.axis()
.scale(barXScale)
.orient("bottom")
.ticks(4);
if (svg !== null) {
bars = svg.selectAll("rect")
.data(dataset);
bars.enter();
} else {
svg = d3.select(".chart")
.append("svg")
.attr("width", 400)
.attr("height", 300);
bars = svg.selectAll("rect")
.data(dataset)
.enter()
.append("rect");
}
svg.selectAll("g.axis").remove();
svg.append("g")
.attr("class", "axis")
.attr("transform", "translate(30,0)")
.call(yAxis);
svg.append("g")
.attr("class", "axis")
.attr("transform", "translate(30,270)")
.call(xAxis);
bars.attr("x", function(d,i) {
return 32 + i * (barWidth + 1);
})
.attr("y", function(d) {
return 270-d;
})
.attr("width", barWidth)
.attr("height", function(d) {
return d;
})
.attr("fill", "blue");
},
exponentialGen = function(lambda, simulations, barXScale) {
var datum = [];
for(var row = 0; row < 30; row++) {
datum.push(0);
}
for(var i = 0; i < simulations; i++) {
var u = Math.random();
var barNumber = barXScale(-Math.log(u)/lambda);
datum[Math.floor(barNumber)]++;
}
return datum;
};
generator();
[/d3-source]
© 2007 and beyond Mario Alberich, licensed under CC-BY-SA unless stated otherwise.