使用Excel计算协方差matrix
在Excel中,从A列到J列有10列数据,每列从第1行到第1000行有1000行。我想知道如何计算Excel中10列数据的10 x 10协方差matrix?
我的部分解决scheme是基于美元符号和复制公式:
首先我在一个单元格中input一个公式=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中input数字1,2,3 …… 10
- 在K2 … K11中input数字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中input的这个公式,复制到L2..U11中以获得你的10x10matrix
希望有所帮助