Я ищу распределение, в котором плотность вероятности быстро уменьшается после некоторой точки, находящейся вдали от среднего значения, или, по моим собственным словам, «распределение в форме плато».
Что-то среднее между гауссовым и униформой.
Я ищу распределение, в котором плотность вероятности быстро уменьшается после некоторой точки, находящейся вдали от среднего значения, или, по моим собственным словам, «распределение в форме плато».
Что-то среднее между гауссовым и униформой.
Ответы:
Возможно, вы ищете распределение, известное под названиями обобщенного нормального (версия 1) , распределения Subbotin или экспоненциального распределения мощности. Он параметризован местоположением , масштабом и формой с pdf
как вы можете заметить, для оно напоминает распределение Лапласа и сходится к нему, при оно сходится к нормальному, а когда к равномерному распределению.
Если вы ищете программное обеспечение, в котором оно реализовано, вы можете проверить normalp
библиотеку на R (Mineo and Ruggieri, 2005). Что приятно в этом пакете, так это то, что он, помимо прочего, реализует регрессию с обобщенными нормально распределенными ошибками, то есть минимизирует норму .
Mineo, AM & Ruggieri, M. (2005). Программный инструмент для экспоненциального распределения мощности: пакет normalp. Журнал статистического программного обеспечения, 12 (4), 1-24.
Комментарий @ StrongBad - действительно хорошее предложение. Сумма равномерного RV и гауссова RV может дать вам именно то, что вы ищете, если правильно выбрать параметры. И это на самом деле имеет довольно хорошее решение в закрытой форме.
PDF этой переменной дается выражением:
- это «радиус» равномерного среднего значения RV. σ - стандартное отклонение среднего значения по Гауссу.
Существует бесконечное количество «платообразных» распределений.
Вы хотели что-то более конкретное, чем «между гауссовой и униформой»? Это несколько расплывчато.
Вот один простой: вы всегда можете прикрепить половину нормальной на каждом конце униформы:
Вы можете контролировать «ширину» униформы относительно шкалы нормали, чтобы иметь более широкие или более узкие плато, предоставляя целый класс распределений, которые включают гауссову и униформу в качестве предельных случаев.
Плотность составляет:
где
При для фиксированного w мы приближаемся к униформе на ( µ - w / 2 , µ + w / 2 ), а при w → 0 для фиксированного σ мы приближаемся к N ( µ , σ 2 ) .
Вот несколько примеров (с в каждом случае):
Мы могли бы, возможно, назвать эту плотность «униформой с гауссовым хвостом».
Смотрите мое распределение "Башня дьявола" здесь [1]:
Распределение «слип-платья» еще интереснее.
Распределения, имеющие любую форму, легко создать.
[1]: Westfall, PH (2014)
"Kurtosis as Peakness, 1905 - 2014. RIP"
Am. Стат. 68 (3): 191–195. doi: 10.1080 / 00031305.2014.917055
публичный доступ pdf: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4321753/pdf/nihms-599845.pdf
Еще один ( РЕДАКТИРОВАТЬ : Я упростил это сейчас. РЕДАКТИРОВАТЬ 2 : Я упростил это еще дальше, хотя сейчас картина не отражает это точное уравнение):
Вот пример кода в 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
это наше распространение. Давайте построим это для последовательностиx
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)
Консольный вывод:
#[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"
И сюжет:
Вы можете изменить a
и b
, приблизительно, начало и конец склона соответственно, но тогда потребуется дальнейшая нормализация, и я не рассчитал ее (поэтому я использую a = 2
и b = 1
в сюжете).
Если вы ищете что-то очень простое, с центральным плато и сторонами распределения треугольника, вы можете, например, объединить N распределений треугольника, N в зависимости от желаемого соотношения между плато и спуском. Почему треугольники, потому что их функции выборки уже существуют в большинстве языков. Вы случайным образом сортируете одного из них.
В R это дало бы:
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)
Вот симпатичный: продукт двух логистических функций.
(1/B) * 1/(1+exp(A*(x-B))) * 1/(1+exp(-A*(x+B)))
Это дает преимущество не быть кусочным.
B регулирует ширину, а A регулирует крутизну падения. Ниже показаны B = 1: 6 с A = 2. Примечание: я не нашел время, чтобы выяснить, как правильно это нормализовать.