Использование Julia 0.5. С учетом:Как создать простую ковариацию в Юлии на матрице
Supertech = [-.2 .1 .3 .5];
Slowpoke = [.05 .2 -.12 .09];
Как в мире я могу получить ковариацию. В Excel я просто говорю
=covariance.p(Supertech,Slowpoke)
, и это дает мне правильный ответ -0.004875
Для жизни меня я не могу понять, как получить эту работу, используя StatsBase.cov()
Я ве попытался положить это в матрицу, как:
X = [Supertech; Slowpoke]'
, который дает мне приятно:
4×2 Array{Float64,2}:
-0.2 0.05
0.1 0.2
0.3 -0.12
0.5 0.09
, но я не могу получить эту простую вещь для работы. При попытке использовать тип WeightedVector я продолжаю сталкиваться с несоответствиями размера.
Спасибо! Теперь ... Есть ли способ сделать это в векторном виде, так что, учитывая матрицу из векторов A = n, я могу просто сказать 'cov (A, false)' и получить векторный или 1-мерный массив назад все ковариации? – bauhaus9
Да, но он вернет матрицу ковариации (https://en.wikipedia.org/wiki/Covariance_matrix). Например, с матрицей с тремя столбцами она вернет матрицу 3x3, где элемент в '(i, j)' является ковариацией между столбцами 'i' и' j'. –
Хорошо, я все еще смущен. Здесь приведена модифицированная версия вышеприведенного кода, на этот раз с попыткой цикла для вычисления ковариации, которая работает: 'using StatsBase Supertech = [-.2; 0,1; 0,3; 0,5]; Slowpoke = [.05; 0,2; -.12; .09]; Х = Reshape ([Supertech; Slowpoke], 4,2) mlen = размер (X), [1] средства = mean_and_cov (Х) [1] covtmp = те (mlen) средства [1] для i = 1: mlen для j = 1: rank (X) covtmp [i] = covtmp [i] * (X [i, j] - означает [j]); конец конец mycov = sum (covtmp)/mlen; println («Корректная ковариация матрицы X =», mycov) println («В то время как cov (X) =", cov (X)) ' – bauhaus9