在Excel中,我从A列到J列有10列数据,每列从第1行到第1000行有1000行。我想知道如何在Excel中计算10列数据的10 x 10协方差矩阵吗?

我的部分解决方案基于美元符号和复制公式:

首先,我在单元格中输入公式=covar($A1:$A1000,A1:A1000)

然后,我将公式复制并粘贴到第一个单元格右侧的单元格中,从而得到=covar($A1:$A1000,B1:B1000) ... =covar($A1:$A1000,J1:J1000)

现在我不知道如何获取=covar(B1:B1000,A1:A1000) ... =covar(J1:J1000,A1:A1000),因为如果我将公式复制并粘贴到第一个单元格下面的单元格中,我将得到=covar($A2:$A1001,A2:A1001),...,=covar($A1000:$A2001,A1000:A2001)代替。

谢谢!

最佳答案

要使公式为“防复制”,可以将=OFFSET()函数与行和列索引结合使用。例:


在L1 ... U1中输入数字1,2,3,... 10
在K2 ... K11中输入数字1,2,3,... 10
现在对10列A ... J列之一进行防复制引用。这可以通过以下方式获得:

=OFFSET($A$1:$A$1000,0,L$1-1)跟随水平索引
=OFFSET($A$1:$A$1000,0,$K2-1)跟随垂直索引

最后,您将上面的2合并为

=COVAR(OFFSET($A$1:$A$1000,0,L$1-1),OFFSET($A$1:$A$1000,0,$K2-1))

在L2中输入的此公式,复制到L2..U11中以获得10x10矩阵


希望能有所帮助

关于excel - 使用Excel计算协方差矩阵,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7564537/

10-11 18:08