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中做到这一点?
干杯, 克里斯
我有以下的值:如何计算两个值的差值,包括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中做到这一点?
干杯, 克里斯
对于随机变量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个差值)。它们在下面的xx
和ss
矩阵的上(或下)三角形中计算。 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
谢谢,这很有帮助! – Kris