2016-12-14 46 views
3

我不知道我怎麼會具有R告訴我SD(如qnorm一個參數()內建R中)正態分佈,其95%的極限值已知?作爲一個例子,我知道我的法線的兩個95%極限值分別是158和168。因此,在下面的R代碼SD顯示爲「x」。 如果 「Y」(在這個簡單的qnorm()功能的回答)需要爲(158,168),然後可以告訴[R我應該是什麼X確定正態分佈給予其位數信息

y <- qnorm(c(.025,.975), 163, x) 
+0

你的問題是不清楚。爲了讓我們能夠回答您的問題,請輸入'dput(variableName)'並將控制檯輸出複製並粘貼到您的問題中,以包含您的數據樣本。另外,顯示你想要的輸出應該是什麼樣子。有關如何在'R'中創建可重複示例的更多信息(並使其更有可能您的問題得到解答),請查看[本文](http://stackoverflow.com/questions/5963269/how-to-make-一個偉大-R重現-例子)。 – Barker

回答

5

正態分佈

假設的一般程序,我們有一個正態分佈X ~ N(mu, sigma),未知平均mu和未知的標準偏差sigma。而我們的目標是解決musigma,給出了兩個分位數方程:

Pr(X < q1) = alpha1 
Pr(X < q2) = alpha2 

我們認爲標準化:Z = (X - mu)/sigma,使

Pr(Z < (q1 - mu)/sigma) = alpha1 
Pr(Z < (q2 - mu)/sigma) = alpha2 

換句話說,

(q1 - mu)/sigma = qnorm(alpha1) 
(q2 - mu)/sigma = qnorm(alpha2) 

的RHS明確已知,我們定義beta1 = qnorm(alpha1),beta2 = qnorm(alpha2)。現在,上面簡化爲2個線性方程系統:

mu + beta1 * sigma = q1 
mu + beta2 * sigma = q2 

該系統具有係數矩陣:

1 beta1 
1 beta2 

與行列式beta2 - beta1。奇點的唯一情況是beta2 = beta1。只要系統不是單一的,我們就可以使用solve來解決musigma

想想奇點狀況的含義。對於正態分佈,qnorm是嚴格單調的。所以beta1 = beta2alpha1 = alpha2相同。但這可以很容易地避免,因爲它是在你的規格下,所以在下面我不會檢查奇點。

結束語以上爲估計功能:

est <- function(q, alpha) { 
    beta <- qnorm(alpha) 
    setNames(solve(cbind(1, beta), q), c("mu", "sigma")) 
    } 

讓我們有一個測試:

x <- est(c(158, 168), c(0.025, 0.975)) 
#  mu  sigma 
#163.000000 2.551067 

## verification 
qnorm(c(0.025, 0.975), x[1], x[2]) 
# [1] 158 168 

我們也可以做一些隨心所欲:

x <- est(c(1, 5), c(0.1, 0.4)) 
#  mu sigma 
#5.985590 3.890277 

## verification 
qnorm(c(0.1, 0.4), x[1], x[2]) 
# [1] 1 5