Estoy buscando una distribución donde la densidad de probabilidad disminuya rápidamente después de un punto alejado de la media, o en mis propias palabras, una "distribución en forma de meseta".
Algo entre el gaussiano y el uniforme.
Estoy buscando una distribución donde la densidad de probabilidad disminuya rápidamente después de un punto alejado de la media, o en mis propias palabras, una "distribución en forma de meseta".
Algo entre el gaussiano y el uniforme.
Respuestas:
Es posible que esté buscando una distribución conocida bajo los nombres de distribución generalizada normal (versión 1) , Subbotin o distribución de potencia exponencial. Está parametrizado por ubicación , escala y forma con pdfσ β
Como puede observar, para se parece y converge a la distribución de Laplace, con converge a la normalidad y cuando a la distribución uniforme.β = 2 β = ∞
Si está buscando un software que lo tenga implementado, puede verificar la normalp
biblioteca para R (Mineo y Ruggieri, 2005). Lo bueno de este paquete es que, entre otras cosas, implementa la regresión con errores generalizados de distribución normal, es decir, minimiza la norma .
Mineo, AM y Ruggieri, M. (2005). Una herramienta de software para la distribución de potencia exponencial: el paquete normalp. Revista de software estadístico, 12 (4), 1-24.
El comentario de @ StrongBad es una muy buena sugerencia. La suma de un RV uniforme y un RV gaussiano puede darle exactamente lo que está buscando si elige los parámetros correctamente. Y en realidad tiene una solución de forma cerrada razonablemente agradable.
El pdf de esta variable viene dado por la expresión:
es el "radio" de la RV uniforme de media cero. σ es la desviación estándar de la RV gaussiana de media cero.
Hay un número infinito de distribuciones "en forma de meseta".
¿Buscabas algo más específico que "entre el gaussiano y el uniforme"? Eso es algo vago.
Aquí hay una fácil: siempre puedes pegar un medio normal en cada extremo de un uniforme:
Puede controlar el "ancho" del uniforme en relación con la escala de lo normal para que pueda tener mesetas más anchas o más estrechas, dando una clase completa de distribuciones, que incluyen el gaussiano y el uniforme como casos limitantes.
La densidad es:
Quizás podríamos llamar a esta densidad un "uniforme de cola gaussiana".
Vea mi distribución "Torre del Diablo" aquí [1]:
La distribución "slip-dress" es aún más interesante.
Es fácil construir distribuciones que tengan la forma que desee.
[1]: Westfall, PH (2014)
"Kurtosis as Peakedness, 1905 - 2014. RIP" Enm
. Stat. 68 (3): 191–195. doi: 10.1080 / 00031305.2014.917055
pdf de acceso público: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4321753/pdf/nihms-599845.pdf
Otro ( EDITAR : lo simplifiqué ahora. EDITAR2 : lo simplifiqué aún más, aunque ahora la imagen realmente no refleja esta ecuación exacta):
Aquí hay un código de muestra en R:
f = function(x, a, b, alpha){
y = log((cosh(2*alpha*pi*a)+cosh(2*alpha*pi*x))/(cosh(2*alpha*pi*b)+cosh(2*alpha*pi*x)))
y = y/pi/alpha/6
return(y)
}
f
Es nuestra distribución. Vamos a trazarlo para una secuencia dex
plot(0, type = "n", xlim = c(-5,5), ylim = c(0,0.4))
x = seq(-100,100,length.out = 10001L)
for(i in 1:10){
y = f(x = x, a = 2, b = 1, alpha = seq(0.1,2, length.out = 10L)[i]); print(paste("integral =", round(sum(0.02*y), 3L)))
lines(x, y, type = "l", col = rainbow(10, alpha = 0.5)[i], lwd = 4)
}
legend("topright", paste("alpha =", round(seq(0.1,2, length.out = 10L), 3L)), col = rainbow(10), lwd = 4)
Salida de consola:
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = NaN" #I suspect underflow, inspecting the plots don't show divergence at all
#[1] "integral = NaN"
#[1] "integral = NaN"
Y trama:
Podría cambiar a
y b
, aproximadamente, el inicio y el final de la pendiente, respectivamente, pero luego se necesitaría una mayor normalización, y no lo calculé (es por eso que estoy usando a = 2
y b = 1
en la trama).
Si está buscando algo muy simple, con una meseta central y los lados de una distribución triangular, puede combinar, por ejemplo, N distribuciones triangulares, N dependiendo de la relación deseada entre la meseta y el descenso. Por qué triángulos, porque sus funciones de muestreo ya existen en la mayoría de los idiomas. Usted ordena al azar de uno de ellos.
En R eso daría:
library(triangle)
rplateau = function(n=1){
replicate(n, switch(sample(1:3, 1), rtriangle(1, 0, 2), rtriangle(1, 1, 3), rtriangle(1, 2, 4)))
}
hist(rplateau(1E5), breaks=200)
Aquí hay una bonita: el producto de dos funciones logísticas.
(1/B) * 1/(1+exp(A*(x-B))) * 1/(1+exp(-A*(x+B)))
Esto tiene el beneficio de no ser por partes.
B ajusta el ancho y A ajusta la inclinación de la caída. A continuación se muestran B = 1: 6 con A = 2. Nota: No me he tomado el tiempo para descubrir cómo normalizar esto correctamente.