sólo quería llevar a cabo una simulación real como complemento a la respuesta (con razón) aceptado . Aunque en R, el código es tan simple como ser (pseudo) -seudocódigo.
Una pequeña diferencia entre el Wolfram MathWorld formula en la respuesta aceptada y otra, quizás más común, ecuaciones es el hecho de que la ley de potencia exponenten
(que por lo general se denota como alfa) no lleva un signo negativo explícito. Por lo tanto, el valor alfa elegido debe ser negativo, y típicamente entre 2 y 3.
x0
y x1
representan los límites inferior y superior de la distribución.
así que aquí está:
x1 = 5 # Maximum value
x0 = 0.1 # It can't be zero; otherwise X^0^(neg) is 1/0.
alpha = -2.5 # It has to be negative.
y = runif(1e5) # Number of samples
x = ((x1^(alpha+1) - x0^(alpha+1))*y + x0^(alpha+1))^(1/(alpha+1))
hist(x, prob = T, breaks=40, ylim=c(0,10), xlim=c(0,1.2), border=F,
col="yellowgreen", main="Power law density")
lines(density(x), col="chocolate", lwd=1)
lines(density(x, adjust=2), lty="dotted", col="darkblue", lwd=2)
o representan en escala logarítmica:
h = hist(x, prob=T, breaks=40, plot=F)
plot(h$count, log="xy", type='l', lwd=1, lend=2,
xlab="", ylab="", main="Density in logarithmic scale")
Aquí está el resumen de los datos:
> summary(x)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.1000 0.1208 0.1584 0.2590 0.2511 4.9388
¿Funciona esto cuando los límites son 0 e infinito? – Peaceful
Pequeño detalle adicional: ** y ** es una variación uniforme en el rango [0,1]. –
La respuesta de dmckee proporciona el contexto faltante que es necesario para comprender la derivación en el artículo de Wolfram. – SigmaX