답변:
누적 분포 함수 가있는 경우 주어진 통계량 T에 대한 p- 값을 계산하는 것은 단순히 1 - F ( T ) 입니다. 이는 R에서 간단 합니다. 반면에 확률 밀도 함수 가있는 경우 F ( x ) = ∫ x − ∞ p ( t ) d t 입니다. 이 적분을 분석적으로 또는 수치 적으로 찾을 수 있습니다. R에서는 다음과 같이 보일 것입니다 :
dF <- function(x)dnorm(x)
pF <- function(q)integrate(dF,-Inf,q)$value
> pF(1)
[1] 0.8413448
> pnorm(1)
[1] 0.8413447
integrate더 나은 정확도를 위해 튜닝 할 수 있습니다 . 적분이 제대로 작동하지 않는 경우에는 밀도 함수의 대부분에서 작동해야하는 특정 경우에는 물론 실패 할 수 있습니다.
pF여러 매개 변수 값을 사용해보고 dF매번 다시 정의하지 않으려는 경우 물론 매개 변수를로 전달할 수 있습니다 .
dF <- function(x,mean=0,sd=1)dnorm(x,mean=mean,sd=sd)
pF <- function(q,mean=0,sd=1)integrate(dF,-Inf,q,mean=mean,sd=sd)$value
> pF(1,1,1)
[1] 0.5
> pnorm(1,1,1)
[1] 0.5
물론 @suncoolsu에서 설명한대로 Monte-Carlo 방법을 사용할 수도 있습니다. 이는 통합을위한 또 다른 수치 방법 일뿐입니다.
dF. 즉 dF주어진 인수에 밀도 함수 값을 반환한다.
예, 임의의 분포를 사용하여 모든 통계량에 대한 p- 값을 얻을 수 있습니다. 이론적으로 그리고 실제적으로이 공식에 의해 (단면) p- 값을 계산할 수 있습니다.
여기에서 유일하게 가정하는 것은-당신 은 T 의 null 분포 를 알고 있습니다 (표준 R 난수 생성기 형식이 아닐 수도 있음). null 분포를 아는 한 p- 값을 계산할 수 있습니다.