使用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类型时,我总是想出尺寸不匹配。
答案 0 :(得分:4)
语法[-.2 .1 .3 .5]
不会创建向量,它会创建一行矩阵。 cov
function实际上是在基础Julia中定义的,但它需要向量。因此,您只需要使用逗号语法在第一个位置创建向量([-.2, .1, .3, .5]
),或者您可以使用vec
函数将矩阵重新整形为一维向量。它默认使用"corrected" covariance,而Excel使用"未修正的"协方差。您可以使用第三个参数指定您不希望进行此更正。
julia> cov(vec(Supertech), vec(Slowpoke))
-0.0065
julia> cov(vec(Supertech), vec(Slowpoke), false)
-0.004875