2015-04-12 73 views
3

我有以下的值:如何計算兩個值的差值,包括R中的標準偏差?

x <- c(20.00740, 38.108416, 56.832884) #x0 of peaks 
sx <- c(0.1435, 0.011667, 0.027201) # std. error of x0 

欲計算與錯誤傳播各峯之間的差。我應該收到兩個差異值與標準。錯誤。我如何在R中做到這一點?

乾杯, 克里斯

回答

5

對於隨機變量X和Y使用的事實,E(XY)= EX - EY,SD(X)= SQRT(VAR(X))和VAR(XY)= VAR (X)+ var(Y)。最後一個等式假設X和Y不相關。現在,如果我們標記峯A,B,C,則存在A-B,A-C和B-C這三個差值,而不是2(如果區分A-B和B-A等,則存在6個差值)。它們在下面的xxss矩陣的上(或下)三角形中計算。 xx[upper.tri(xx)]ss[upper.tri(xx)]會提取上三角值。

xx <- outer(x, x, "-"); xx 
##   [,1]  [,2]  [,3] 
## [1,] 0.00000 -18.10102 -36.82548 
## [2,] 18.10102 0.00000 -18.72447 
## [3,] 36.82548 18.72447 0.00000 

ss <- sqrt(outer(sx^2, sx^2, "+")) * !diag(length(sx)); ss 
##   [,1]  [,2]  [,3] 
## [1,] 0.0000000 0.14397350 0.14605528 
## [2,] 0.1439735 0.00000000 0.02959752 
## [3,] 0.1460553 0.02959752 0.00000000 
+0

謝謝,這很有幫助! – Kris