R의 밀도 함수에서 확률 밀도 함수를 찾고 추정하는 방법


17

X알 수없는 분포와 같은 변수가 있다고 가정하십시오 . Mathematica에서는 SmoothKernelDensity함수 를 사용하여 추정 밀도 함수를 가질 수 있습니다.이 추정 밀도 함수는 함수와 함께 "밀도"가 결과라고 가정하는 형태 PDF와 같은 값의 확률 밀도 함수를 계산 하는 데 사용할 수 있습니다 . R에 이러한 기능이 있으면 좋을 것입니다 .Mathematica에서 작동하는 방식입니다.XPDF[density,X]SmoothKernelDensity

http://reference.wolfram.com/mathematica/ref/SmoothKernelDistribution.html

예를 들어 (Mathematica 함수를 기반으로) :

data = RandomVariate[NormalDistribution[], 100]; #generates 100 values from N(0,1)

density= SmoothKernelDistribution[data]; #estimated density

PDF[density, 2.345] returns 0.0588784 

PDF에 대한 자세한 정보를 찾을 수 있습니다.

http://reference.wolfram.com/mathematica/ref/PDF.html

나는 density(X)R을 사용하여 밀도 함수를 플롯 ecdf(X)할 수 있고 경험적 누적 분포 함수를 얻을 수 있음을 알고 있습니다 .Mathematica 에 대해 설명 한 것을 기반으로 R에서 동일한 작업을 수행 할 수 있습니까?

도움과 아이디어에 감사드립니다.


density(x)이미 언급했듯이 pdf의 추정치를 제공하지만 적합성은 밀도를 원하는 목적에 따라 다릅니다. 예를 들어, 분산은 편향되어 있습니다 (컨볼 루션을 수행 할 때 데이터 분산에 커널 분산을 추가하면 그 자체는 편향되지 않은 추정치입니다). 이러한 바이어스 분산 트레이드 오프는 어디에나 있습니다. 예를 들어, 로그 스플라인 밀도 추정과 같은 다른 대안이 있지만, 그 적합성은 부분적으로 원하는 것으로 결정됩니다.
Glen_b-복귀 모니카

@Glen_b 분포에서 다른 값의 확률을 찾기 위해 추정 밀도를 사용하고 싶습니다. 예를 들어 0에서 10 사이의 데이터 벡터가 있습니다.이 데이터 세트에는 0에서 10 사이의 고유 한 값이 70 개만 있습니다. 밀도를 플로팅 할 수 있습니다. 이제 랜덤 샘플링에서 관찰 된 데이터에없는 X = 7.5를 가질 확률을 찾는데 관심이 있다고 가정합니다. 나는 그것이 ecdf(X)7.5의 등가 백분위 수 를 제공하지만 내가 찾고있는 것이 아닙니다.
Amin

" X = 7.5 일 확률을 찾는 중 "-문제가 있습니다! 연속 분포 (이 경우 실제 답변이 "0")이거나 그렇지 않은 경우 (밀도가 없으므로 밀도 추정을 사용하지 않아야 함)입니다.
Glen_b-복원 모니카

1
ecdf (또는 더 일반적으로 cdf)의 정의에 유의하십시오. P ( a < X b )를ecdf(b)-ecdf(a) 추정 합니다. 물론 연속 변수를 사용하면 < 와 의 구분 이 중요하지 않습니다. 경우 별개이며, 그럼 수 추정 0.75있는 값의 샘플 비율을 계산함으로써. (<엑스)<엑스 (엑스=7.5)
Glen_b-복원 모니카

1
죄송합니다. 오류입니다. 7.5의 값의 샘플 비율을 의미합니다. 마지막 몇 단어를 입력하면서 아들이 나를 산만하게했습니다. 관찰되지 않은 사건의 확률에 대한 표본 추정치는 0입니다. 사전 신청을 하시겠습니까? 점 추정치 대신 비율에 대한 신뢰 구간을 원하십니까? 실제 문제는 아직 R 문제가 아니며 실제 문제가 무엇인지 정확하게 설명하고 있습니다. 질문을 편집하거나 새 질문을 게시해야합니다.
Glen_b-복지 주 모니카

답변:


35

?densityapprox이미 선형 보간을 수행 하는 데 사용한다고 지적합니다 . 적절한 기능 ?approxapproxfun생성 한다고 지적 합니다.

x <- log(rgamma(150,5))
df <- approxfun(density(x))
plot(density(x))
xnew <- c(0.45,1.84,2.3)
points(xnew,df(xnew),col=2)

여기에 이미지 설명을 입력하십시오

사용하여 integrate샘플에서의 최소값 이하로 적절한 거리에서 시작 (배수 - 아마도 4 말 또는 5 -에서 사용되는 대역폭이 df일반적으로 적절한 거리 할 것), 하나는 CDF에 대응하는 좋은 근사치를 구할 수 df.


이것은 흥미 롭다. 그것은 df(2.3)추정 밀도 함수의 값 을 제공하는 것으로 보이지만 Mathematica에서 x=2.3하는 PDF것은 위의 곡선 아래 영역을 제공하는 것입니다 x=2.3. 나는 이것에 대해 잘 모르겠습니다. 이것은 단지 내 추측입니다 .Mathematica에서 내가 한 것을 재현 할 수 있습니까?
Amin

위의 함수는 커널 확률로 "확률 밀도 함수"... "x에서 평가"를 추정합니다. 당신은 그것을 원하거나 원하지 않습니다. 당신이하지 않으면, 당신은 당신이 무엇을 설명해야 '이 문제를 재현'단지로, 통계적 측면에서 - 싶습니다.
Glen_b-복원 모니카

나는 실수로 고의로 밀도가 확률이 아니라는 것을 홍보했다고 생각합니다. 난 당신이 생각 misleading.If 할 말은하지 않았다 PDF티카 당신이 그때 나는 내 대답을 가지고 있다고 생각 (즉, 주어진 X 값에 대한 밀도 함수의 값을 찾는) 당신의 대답에 설명 된 것을 않습니다. 단어를 사용하는 데 많은 혼란이 있습니다!
Amin

2
PDF페이지가 말한 것에서 , 그것은 내가하는 것과 같은 종류를 반환하지만,이 경우 계산에 사용되는 방법은 다소 정확할 것입니다 (그러나 그러한 목적을 위해 추가 정확도는 거의 가치가 없습니다). 확률 / 밀도 구별에 대한 자세한 내용은 herehere을 참조 하십시오 .
Glen_b-복지 모니카
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.