2014-02-25 112 views
0

我從一本名爲「使用R發現統計量」的書中學習統計學和R ...雖然它的信息量很大,但它似乎跳過了一些區域,即使它沒有提示統計數據或R是必需的。因此,對於這個問題:pth標準正態分佈的分位數 - R

如何使用Dichotomy(或分成兩半)方法計算標準正態分佈的pth分位數? (並假定不使用qnorm())。那就是:

pnorm(x) = p 
    pnorm(x)-p = 0 
    f (x)  = 0 

更新:

二分法是你採取的間隔[a,b],其在該間隔的結束點取的不同 符號的值,並且具有單個根x[a,b]的方法。你然後一半,如果找到F(x1),並且如果f(x1) != 0它給你[a,x1][x1,b] ...其中序列x1, x2,...,收斂到0

回答

1

笨拙,但這個工程:

tolerance <- 1e-6 
interval <- c(-1000,1000) 
quantile <- 0.2 

while(interval[2]-interval[1] > tolerance) { 
    cat('current interval: ',interval,'\n') 
    interval.left <- c(interval[1],mean(interval)) 
    interval.right <- c(mean(interval),interval[2]) 
    if(sum(sign(pnorm(interval.left)-quantile))==0) { 
    interval <- interval.left 
    } else { 
    interval <- interval.right 
    } 
} 
mean(interval) 
qnorm(quantile) 
+0

真棒!感謝您抽出寶貴時間發佈。我認爲這是一個很好的實現。 :d – Reanimation