Cantor 배포판에서 샘플링하는 방법?


19

Cantor 배포판 에서 샘플링하는 가장 좋은 방법은 무엇입니까 ? cdf 만 있고 뒤집을 수 없습니다.


4
실제로, 누군가 수학에 그것을 물었다 : math.stackexchange.com/questions/1115907/…
RUser4512

다음은 흥미로운 후속 질문입니다. 표준 편차는 무엇입니까? 모멘트 생성 기능은 무엇입니까? 그들은 균일 (0,1) 분포 에 대한 대응 물과 어떻게 비교 됩니까? :-)
whuber

5
I는 무한 루프처럼 너희들은 여기로 연결하는 math.stackexchange 포스트를 참조하여 만들었습니다 : P
Tasos Papastylianou

답변:


23

간편함 : 균일 (0,1) 분포 에서 표본을 추출하고 각 "1"을 "2"로 해석하여 2 진에서 3 진으로 다시 코딩합니다. (이것은 역 확률 변환 접근법입니다. 실제로 CDF를 반전시킵니다!)

그림

다음은 R거의 모든 컴퓨팅 환경으로 쉽게 이식 할 수있는 방식으로 작성된 구현입니다.

binary.to.ternary <- function(x) {
  y <- 0
  x <- round(2^52 * x)
  for (i in 1:52) {
    y <- y + 2*(x %% 2)
    y <- y/3
    x <- floor(x/2)
  }
  y
}

n <- 1000
x <- runif(n)
y <- binary.to.ternary(x)
plot(ecdf(y), pch=".")

3
올해 초 나는에 약간 풀러 구현을 시작 github.com/Henrygb/CantorDist.R 기능 rCantor(), qCantor(), pCantor()그리고 덜 의미dCantor()
헨리

1
@ 헨리 무엇을 dcantor구현할 것인가? Tim이 지적한 것처럼이 분포는 밀도가 없습니다. 이산 원자도 없습니다. 연속적이지만 절대적으로 연속적인 분포가 아닌 전형적인 예입니다. ( qcantor매트릭스 곱셈을 이용한 덕분에 BTW 구현 이 빠릅니다.)
whuber

1
실제 분포에 대한 유한 근사 만 처리한다는 점을 명심해야합니다. 10 자리 3 자리 정밀도 숫자 (실제로 더 길어질 것임)가 있고 숫자가 더 확장되는 변수를 "표시"하기 위해 0.0222020002를 생성했다고 가정합니다. 동일한 주석이 연속 rv를 갖는 모든 실제 값 rv에 적용되는 반면, 유한 길이 근사치가 나타낼 수있는 모든 "표현 된"값도 "세트에 있음"입니다. 실제 Cantor 분포에서는 10 자리 시퀀스의 거의 모든 "연속"이 세트에 없습니다. ... ctd
Glen_b-복지국 Monica

1
@ whuber 나는 난수를 생성하는 모든 방법이 두 번째 문장에서 유한 정밀도임을 분명히 인정했습니다. 당신이 그것을 반복하기로 선택한 것과 당신이 그것을 강조한 사실은 당신이 나의 실제 요점을 놓쳤다는 것을 암시합니다. 유한 정밀도에 대한 연속 변이를 나타낼 때, 그러한 유한 근사 나타낼 있는 실제 값은 우리가 생성하고자하는 "세트 내"입니다. 이와 같은 변수를 유한 정밀도로 나타낼 때 유한 근사와 같은 실제 값은 거의 모두 세트에 없습니다. 오히려 다른 경우입니다. ... ctd
Glen_b-복지국 모니카

1
ctd ... 귀하의 게시물에 대한 비판은 암시되지 않았습니다. 독자들이 간과 할 수 있고 고려해 볼 수있는 시점이었으며, 특히 시조 세트에서 시뮬레이션하여 Cantor 세트의 속성을 유추하려고하는 경우입니다.
Glen_b-복지 주 모니카
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.