Вычислить ковариационную матрицу с помощью Excel - PullRequest
2 голосов
/ 27 сентября 2011

В Excel у меня есть 10 столбцов данных от столбца A до столбца J, и у каждого столбца есть 1000 строк от строки 1 до строки 1000. Интересно, как вычислить ковариационную матрицу 10 x 10 из 10 столбцов данных в Excel?

Мое частичное решение основано на знаках доллара и копирующих формулах:

Сначала я ввожу в ячейку формулу =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) вместо.

Спасибо!

1 Ответ

4 голосов
/ 27 сентября 2011

Чтобы сделать формулу "защищенной от копирования", вы можете использовать функцию =OFFSET() в сочетании с индексами строк и столбцов. Пример:

  • in L1 ... U1 введите цифры 1, 2, 3, ... 10
  • in 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

Надеюсь, это поможет

...