2011-05-09 4 views
4

(R에) 내가 예를 들어, 현재 수준에서 qnorm/pnrom을 계산할 때의 부동 소수점 제한을 늘 관심을 가질만한 :qnorm/pnorm에 부동 소수점 정밀도 추가?

x <- pnorm(10) # 1 
qnorm(x) # Inf 
qnorm(.9999999999999999444) # The highst limit I've found that still return a <<Inf number 

은 (적절한 시간에 따라) 가능해야인가요 ? 그렇다면 어떻게? 선행

감사, 탈

인수가 위 꼬리에 방법입니다 경우

답변

10

, 당신은 1-P를 계산하여 더 나은 정밀도를 얻을 수 있어야합니다. 이처럼 :

> x = pnorm(10, lower.tail=F) 
> qnorm(x, lower.tail=F) 
10 

내가 기대 (I 확실히 모르는 불구하고)이 pnorm() 함수는 포인트 크기를 떠 하드웨어가 지원하는 어떤 붙어있는 C 나 포트란 루틴를 가리키고 있음을 알 수있다. 정확도가 필요하지 않도록 문제를 재 배열하는 것이 더 나을 것입니다.

> qnorm(pnorm(100, low=F, log=T), low=F, log=T) 
100 

죄송 이것이 당신이 찾고있는 정확하게되지 않습니다 : 당신이 정말 정말 큰 Z-값을 처리하는 경우

그런 다음, 당신은 = T를 log.p 사용할 수 있습니다. 하지만 pnorm은 더 높은 확장 성을 나타낼 것이라고 생각합니다. 즉, pnorm은 높은 z 값 (빠르게 e^(- x^2))에 1을 빠르게 쳤습니다.

+0

정확히 내가 무엇을 찾고 있었습니까, 오웬 감사합니다! –