평균에서 어느 지점을 벗어난 후 확률 밀도가 빠르게 감소하는 분포를 찾고 있습니다.
가우시안과 유니폼 사이에 뭔가 있습니다.
평균에서 어느 지점을 벗어난 후 확률 밀도가 빠르게 감소하는 분포를 찾고 있습니다.
가우시안과 유니폼 사이에 뭔가 있습니다.
답변:
일반 정규 (버전 1) , 서브 보틴 분포 또는 지수 전력 분포 의 이름으로 알려진 분포를 찾고있을 수 있습니다 . pdf 로 위치 , 스케일 및 모양 로 매개 변수화됩니다.
알다시피, 경우, Laplace 분포와 유사하고 수렴합니다. 는 정상으로 수렴하고 때 균일 한 분포입니다.
구현 된 소프트웨어를 찾고 있다면 normalp
R 라이브러리를 확인할 수 있습니다 (Mineo and Ruggieri, 2005). 이 패키지의 장점은 무엇보다도 표준을 최소화하는 된 정규 분포 오류로 회귀를 구현 것입니다.
Mineo, AM, & Ruggieri, M. (2005). 지수 전력 분배를위한 소프트웨어 도구 : normalp 패키지. 통계 소프트웨어 저널, 12 (4), 1-24.
@StrongBad의 의견은 정말 좋은 제안입니다. 균일 한 RV와 가우스 RV의 합은 매개 변수를 올바르게 선택하면 원하는 것을 정확하게 얻을 수 있습니다. 그리고 실제로는 폐쇄 형 솔루션 이 상당히 좋습니다.
이 변수의 pdf는 다음 표현식으로 제공됩니다.
는 제로 평균 균일 한 RV의 "반경"이다. 는 제로 평균 가우스 RV의 표준 편차입니다.
무한한 "평판 모양"분포가 있습니다.
"가우시안과 유니폼 사이"보다 더 구체적인 것이 있었습니까? 다소 모호합니다.
다음은 쉬운 방법 중 하나입니다. 유니폼의 각 끝에서 항상 절반의 노멀을 붙일 수 있습니다.
법선의 스케일을 기준으로 유니폼의 "폭"을 제어 할 수 있으므로 고원을 넓거나 좁힐 수 있으며 가우스와 유니폼을 제한 사례로 포함하는 전체 분포 등급을 제공 할 수 있습니다.
밀도는 다음과 같습니다
여기서
마찬가지로 고정위한 , 우리가 균일 한 접근 등 및 고정 용 우리는 접근 .
다음은 몇 가지 예입니다 ( 각각 경우).
아마도이 밀도를 "가우스 꼬리 제복"이라고 부를 수 있습니다.
여기 [1]에서 "Devil 's tower"배포판을보십시오 :
들어, ; , ; 및 ,.
"슬립 드레스"배포는 훨씬 더 흥미 롭습니다.
원하는 모양의 분포를 쉽게 구성 할 수 있습니다.
[1] : Westfall, PH (2014)
"정점으로의 첨도, 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
좋은 답변이 많이 있습니다. 여기에 제시된 솔루션은 (i) 특히 간단한 기능적 형태를 가지고 있으며 (ii) 결과 분포가 반드시 특수한 형태가 아닌 고원 모양의 pdf를 생성한다는 두 가지 특징이 있습니다. 나는 이것이 이미 문헌에 이름이 있는지 확실하지 않지만, pdf 가진 고원 분포라고 부릅니다 .
어디에:
다음은 매개 변수 다른 값에 대한 pdf 플롯입니다 .
.
모수 가 커짐에 따라 밀도는 Uniform (-1,1) 분포를 향합니다. 다음 플롯은 표준 표준 (회색 점선)과 비교됩니다.
다른 하나 ( EDIT : 지금 단순화했습니다. EDIT2 : 훨씬 단순화 시켰지만 그림에는 실제로이 정확한 방정식이 반영되지 않았습니다) :
Clunky는 알고 있지만 여기서는 가 증가함에 따라 줄에 접근 한다는 사실을 이용했습니다 .x
기본적으로 전환이 얼마나 부드러운 지 제어 할 수 있습니다 ( ). 경우 및 I는 (1 합) 유효한 확률 밀도의 보장. 다른 값을 선택하면 다시 정규화해야합니다.a = 2 b = 1
다음은 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)